Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/clone/wp-inclu.../js
File: customize-preview.js
* @since 4.7.0
[500] Fix | Delete
* @access protected
[501] Fix | Delete
*
[502] Fix | Delete
* @param {HTMLFormElement} form Form.
[503] Fix | Delete
* @return {void}
[504] Fix | Delete
*/
[505] Fix | Delete
api.prepareFormPreview = function prepareFormPreview( form ) {
[506] Fix | Delete
var urlParser, stateParams = {};
[507] Fix | Delete
[508] Fix | Delete
if ( ! form.action ) {
[509] Fix | Delete
form.action = location.href;
[510] Fix | Delete
}
[511] Fix | Delete
[512] Fix | Delete
urlParser = document.createElement( 'a' );
[513] Fix | Delete
urlParser.href = form.action;
[514] Fix | Delete
[515] Fix | Delete
// Make sure forms in preview use HTTPS if parent frame uses HTTPS.
[516] Fix | Delete
if ( api.settings.channel && 'https' === api.preview.scheme.get() && 'http:' === urlParser.protocol && -1 !== api.settings.url.allowedHosts.indexOf( urlParser.host ) ) {
[517] Fix | Delete
urlParser.protocol = 'https:';
[518] Fix | Delete
form.action = urlParser.href;
[519] Fix | Delete
}
[520] Fix | Delete
[521] Fix | Delete
if ( 'GET' !== form.method.toUpperCase() || ! api.isLinkPreviewable( urlParser ) ) {
[522] Fix | Delete
[523] Fix | Delete
// Style form as unpreviewable only if previewing in iframe; if previewing on frontend, all forms will be allowed to work normally.
[524] Fix | Delete
if ( api.settings.channel ) {
[525] Fix | Delete
$( form ).addClass( 'customize-unpreviewable' );
[526] Fix | Delete
}
[527] Fix | Delete
return;
[528] Fix | Delete
}
[529] Fix | Delete
$( form ).removeClass( 'customize-unpreviewable' );
[530] Fix | Delete
[531] Fix | Delete
stateParams.customize_changeset_uuid = api.settings.changeset.uuid;
[532] Fix | Delete
if ( api.settings.changeset.autosaved ) {
[533] Fix | Delete
stateParams.customize_autosaved = 'on';
[534] Fix | Delete
}
[535] Fix | Delete
if ( ! api.settings.theme.active ) {
[536] Fix | Delete
stateParams.customize_theme = api.settings.theme.stylesheet;
[537] Fix | Delete
}
[538] Fix | Delete
if ( api.settings.channel ) {
[539] Fix | Delete
stateParams.customize_messenger_channel = api.settings.channel;
[540] Fix | Delete
}
[541] Fix | Delete
[542] Fix | Delete
_.each( stateParams, function( value, name ) {
[543] Fix | Delete
var input = $( form ).find( 'input[name="' + name + '"]' );
[544] Fix | Delete
if ( input.length ) {
[545] Fix | Delete
input.val( value );
[546] Fix | Delete
} else {
[547] Fix | Delete
$( form ).prepend( $( '<input>', {
[548] Fix | Delete
type: 'hidden',
[549] Fix | Delete
name: name,
[550] Fix | Delete
value: value
[551] Fix | Delete
} ) );
[552] Fix | Delete
}
[553] Fix | Delete
} );
[554] Fix | Delete
[555] Fix | Delete
// Prevent links from breaking out of preview iframe.
[556] Fix | Delete
if ( api.settings.channel ) {
[557] Fix | Delete
form.target = '_self';
[558] Fix | Delete
}
[559] Fix | Delete
};
[560] Fix | Delete
[561] Fix | Delete
/**
[562] Fix | Delete
* Watch current URL and send keep-alive (heartbeat) messages to the parent.
[563] Fix | Delete
*
[564] Fix | Delete
* Keep the customizer pane notified that the preview is still alive
[565] Fix | Delete
* and that the user hasn't navigated to a non-customized URL.
[566] Fix | Delete
*
[567] Fix | Delete
* @since 4.7.0
[568] Fix | Delete
* @access protected
[569] Fix | Delete
*/
[570] Fix | Delete
api.keepAliveCurrentUrl = ( function() {
[571] Fix | Delete
var previousPathName = location.pathname,
[572] Fix | Delete
previousQueryString = location.search.substr( 1 ),
[573] Fix | Delete
previousQueryParams = null,
[574] Fix | Delete
stateQueryParams = [ 'customize_theme', 'customize_changeset_uuid', 'customize_messenger_channel', 'customize_autosaved' ];
[575] Fix | Delete
[576] Fix | Delete
return function keepAliveCurrentUrl() {
[577] Fix | Delete
var urlParser, currentQueryParams;
[578] Fix | Delete
[579] Fix | Delete
// Short-circuit with keep-alive if previous URL is identical (as is normal case).
[580] Fix | Delete
if ( previousQueryString === location.search.substr( 1 ) && previousPathName === location.pathname ) {
[581] Fix | Delete
api.preview.send( 'keep-alive' );
[582] Fix | Delete
return;
[583] Fix | Delete
}
[584] Fix | Delete
[585] Fix | Delete
urlParser = document.createElement( 'a' );
[586] Fix | Delete
if ( null === previousQueryParams ) {
[587] Fix | Delete
urlParser.search = previousQueryString;
[588] Fix | Delete
previousQueryParams = api.utils.parseQueryString( previousQueryString );
[589] Fix | Delete
_.each( stateQueryParams, function( name ) {
[590] Fix | Delete
delete previousQueryParams[ name ];
[591] Fix | Delete
} );
[592] Fix | Delete
}
[593] Fix | Delete
[594] Fix | Delete
// Determine if current URL minus customized state params and URL hash.
[595] Fix | Delete
urlParser.href = location.href;
[596] Fix | Delete
currentQueryParams = api.utils.parseQueryString( urlParser.search.substr( 1 ) );
[597] Fix | Delete
_.each( stateQueryParams, function( name ) {
[598] Fix | Delete
delete currentQueryParams[ name ];
[599] Fix | Delete
} );
[600] Fix | Delete
[601] Fix | Delete
if ( previousPathName !== location.pathname || ! _.isEqual( previousQueryParams, currentQueryParams ) ) {
[602] Fix | Delete
urlParser.search = $.param( currentQueryParams );
[603] Fix | Delete
urlParser.hash = '';
[604] Fix | Delete
api.settings.url.self = urlParser.href;
[605] Fix | Delete
api.preview.send( 'ready', {
[606] Fix | Delete
currentUrl: api.settings.url.self,
[607] Fix | Delete
activePanels: api.settings.activePanels,
[608] Fix | Delete
activeSections: api.settings.activeSections,
[609] Fix | Delete
activeControls: api.settings.activeControls,
[610] Fix | Delete
settingValidities: api.settings.settingValidities
[611] Fix | Delete
} );
[612] Fix | Delete
} else {
[613] Fix | Delete
api.preview.send( 'keep-alive' );
[614] Fix | Delete
}
[615] Fix | Delete
previousQueryParams = currentQueryParams;
[616] Fix | Delete
previousQueryString = location.search.substr( 1 );
[617] Fix | Delete
previousPathName = location.pathname;
[618] Fix | Delete
};
[619] Fix | Delete
} )();
[620] Fix | Delete
[621] Fix | Delete
api.settingPreviewHandlers = {
[622] Fix | Delete
[623] Fix | Delete
/**
[624] Fix | Delete
* Preview changes to custom logo.
[625] Fix | Delete
*
[626] Fix | Delete
* @param {number} attachmentId Attachment ID for custom logo.
[627] Fix | Delete
* @return {void}
[628] Fix | Delete
*/
[629] Fix | Delete
custom_logo: function( attachmentId ) {
[630] Fix | Delete
$( 'body' ).toggleClass( 'wp-custom-logo', !! attachmentId );
[631] Fix | Delete
},
[632] Fix | Delete
[633] Fix | Delete
/**
[634] Fix | Delete
* Preview changes to custom css.
[635] Fix | Delete
*
[636] Fix | Delete
* @param {string} value Custom CSS..
[637] Fix | Delete
* @return {void}
[638] Fix | Delete
*/
[639] Fix | Delete
custom_css: function( value ) {
[640] Fix | Delete
$( '#wp-custom-css' ).text( value );
[641] Fix | Delete
},
[642] Fix | Delete
[643] Fix | Delete
/**
[644] Fix | Delete
* Preview changes to any of the background settings.
[645] Fix | Delete
*
[646] Fix | Delete
* @return {void}
[647] Fix | Delete
*/
[648] Fix | Delete
background: function() {
[649] Fix | Delete
var css = '', settings = {};
[650] Fix | Delete
[651] Fix | Delete
_.each( ['color', 'image', 'preset', 'position_x', 'position_y', 'size', 'repeat', 'attachment'], function( prop ) {
[652] Fix | Delete
settings[ prop ] = api( 'background_' + prop );
[653] Fix | Delete
} );
[654] Fix | Delete
[655] Fix | Delete
/*
[656] Fix | Delete
* The body will support custom backgrounds if either the color or image are set.
[657] Fix | Delete
*
[658] Fix | Delete
* See get_body_class() in /wp-includes/post-template.php
[659] Fix | Delete
*/
[660] Fix | Delete
$( document.body ).toggleClass( 'custom-background', !! ( settings.color() || settings.image() ) );
[661] Fix | Delete
[662] Fix | Delete
if ( settings.color() ) {
[663] Fix | Delete
css += 'background-color: ' + settings.color() + ';';
[664] Fix | Delete
}
[665] Fix | Delete
[666] Fix | Delete
if ( settings.image() ) {
[667] Fix | Delete
css += 'background-image: url("' + settings.image() + '");';
[668] Fix | Delete
css += 'background-size: ' + settings.size() + ';';
[669] Fix | Delete
css += 'background-position: ' + settings.position_x() + ' ' + settings.position_y() + ';';
[670] Fix | Delete
css += 'background-repeat: ' + settings.repeat() + ';';
[671] Fix | Delete
css += 'background-attachment: ' + settings.attachment() + ';';
[672] Fix | Delete
}
[673] Fix | Delete
[674] Fix | Delete
$( '#custom-background-css' ).text( 'body.custom-background { ' + css + ' }' );
[675] Fix | Delete
}
[676] Fix | Delete
};
[677] Fix | Delete
[678] Fix | Delete
$( function() {
[679] Fix | Delete
var bg, setValue, handleUpdatedChangesetUuid;
[680] Fix | Delete
[681] Fix | Delete
api.settings = window._wpCustomizeSettings;
[682] Fix | Delete
if ( ! api.settings ) {
[683] Fix | Delete
return;
[684] Fix | Delete
}
[685] Fix | Delete
[686] Fix | Delete
api.preview = new api.Preview({
[687] Fix | Delete
url: window.location.href,
[688] Fix | Delete
channel: api.settings.channel
[689] Fix | Delete
});
[690] Fix | Delete
[691] Fix | Delete
api.addLinkPreviewing();
[692] Fix | Delete
api.addRequestPreviewing();
[693] Fix | Delete
api.addFormPreviewing();
[694] Fix | Delete
[695] Fix | Delete
/**
[696] Fix | Delete
* Create/update a setting value.
[697] Fix | Delete
*
[698] Fix | Delete
* @param {string} id - Setting ID.
[699] Fix | Delete
* @param {*} value - Setting value.
[700] Fix | Delete
* @param {boolean} [createDirty] - Whether to create a setting as dirty. Defaults to false.
[701] Fix | Delete
*/
[702] Fix | Delete
setValue = function( id, value, createDirty ) {
[703] Fix | Delete
var setting = api( id );
[704] Fix | Delete
if ( setting ) {
[705] Fix | Delete
setting.set( value );
[706] Fix | Delete
} else {
[707] Fix | Delete
createDirty = createDirty || false;
[708] Fix | Delete
setting = api.create( id, value, {
[709] Fix | Delete
id: id
[710] Fix | Delete
} );
[711] Fix | Delete
[712] Fix | Delete
// Mark dynamically-created settings as dirty so they will get posted.
[713] Fix | Delete
if ( createDirty ) {
[714] Fix | Delete
setting._dirty = true;
[715] Fix | Delete
}
[716] Fix | Delete
}
[717] Fix | Delete
};
[718] Fix | Delete
[719] Fix | Delete
api.preview.bind( 'settings', function( values ) {
[720] Fix | Delete
$.each( values, setValue );
[721] Fix | Delete
});
[722] Fix | Delete
[723] Fix | Delete
api.preview.trigger( 'settings', api.settings.values );
[724] Fix | Delete
[725] Fix | Delete
$.each( api.settings._dirty, function( i, id ) {
[726] Fix | Delete
var setting = api( id );
[727] Fix | Delete
if ( setting ) {
[728] Fix | Delete
setting._dirty = true;
[729] Fix | Delete
}
[730] Fix | Delete
} );
[731] Fix | Delete
[732] Fix | Delete
api.preview.bind( 'setting', function( args ) {
[733] Fix | Delete
var createDirty = true;
[734] Fix | Delete
setValue.apply( null, args.concat( createDirty ) );
[735] Fix | Delete
});
[736] Fix | Delete
[737] Fix | Delete
api.preview.bind( 'sync', function( events ) {
[738] Fix | Delete
[739] Fix | Delete
/*
[740] Fix | Delete
* Delete any settings that already exist locally which haven't been
[741] Fix | Delete
* modified in the controls while the preview was loading. This prevents
[742] Fix | Delete
* situations where the JS value being synced from the pane may differ
[743] Fix | Delete
* from the PHP-sanitized JS value in the preview which causes the
[744] Fix | Delete
* non-sanitized JS value to clobber the PHP-sanitized value. This
[745] Fix | Delete
* is particularly important for selective refresh partials that
[746] Fix | Delete
* have a fallback refresh behavior since infinite refreshing would
[747] Fix | Delete
* result.
[748] Fix | Delete
*/
[749] Fix | Delete
if ( events.settings && events['settings-modified-while-loading'] ) {
[750] Fix | Delete
_.each( _.keys( events.settings ), function( syncedSettingId ) {
[751] Fix | Delete
if ( api.has( syncedSettingId ) && ! events['settings-modified-while-loading'][ syncedSettingId ] ) {
[752] Fix | Delete
delete events.settings[ syncedSettingId ];
[753] Fix | Delete
}
[754] Fix | Delete
} );
[755] Fix | Delete
}
[756] Fix | Delete
[757] Fix | Delete
$.each( events, function( event, args ) {
[758] Fix | Delete
api.preview.trigger( event, args );
[759] Fix | Delete
});
[760] Fix | Delete
api.preview.send( 'synced' );
[761] Fix | Delete
});
[762] Fix | Delete
[763] Fix | Delete
api.preview.bind( 'active', function() {
[764] Fix | Delete
api.preview.send( 'nonce', api.settings.nonce );
[765] Fix | Delete
[766] Fix | Delete
api.preview.send( 'documentTitle', document.title );
[767] Fix | Delete
[768] Fix | Delete
// Send scroll in case of loading via non-refresh.
[769] Fix | Delete
api.preview.send( 'scroll', $( window ).scrollTop() );
[770] Fix | Delete
});
[771] Fix | Delete
[772] Fix | Delete
/**
[773] Fix | Delete
* Handle update to changeset UUID.
[774] Fix | Delete
*
[775] Fix | Delete
* @param {string} uuid - UUID.
[776] Fix | Delete
* @return {void}
[777] Fix | Delete
*/
[778] Fix | Delete
handleUpdatedChangesetUuid = function( uuid ) {
[779] Fix | Delete
api.settings.changeset.uuid = uuid;
[780] Fix | Delete
[781] Fix | Delete
// Update UUIDs in links and forms.
[782] Fix | Delete
$( document.body ).find( 'a[href], area[href]' ).each( function() {
[783] Fix | Delete
api.prepareLinkPreview( this );
[784] Fix | Delete
} );
[785] Fix | Delete
$( document.body ).find( 'form' ).each( function() {
[786] Fix | Delete
api.prepareFormPreview( this );
[787] Fix | Delete
} );
[788] Fix | Delete
[789] Fix | Delete
/*
[790] Fix | Delete
* Replace the UUID in the URL. Note that the wrapped history.replaceState()
[791] Fix | Delete
* will handle injecting the current api.settings.changeset.uuid into the URL,
[792] Fix | Delete
* so this is merely to trigger that logic.
[793] Fix | Delete
*/
[794] Fix | Delete
if ( history.replaceState ) {
[795] Fix | Delete
history.replaceState( currentHistoryState, '', location.href );
[796] Fix | Delete
}
[797] Fix | Delete
};
[798] Fix | Delete
[799] Fix | Delete
api.preview.bind( 'changeset-uuid', handleUpdatedChangesetUuid );
[800] Fix | Delete
[801] Fix | Delete
api.preview.bind( 'saved', function( response ) {
[802] Fix | Delete
if ( response.next_changeset_uuid ) {
[803] Fix | Delete
handleUpdatedChangesetUuid( response.next_changeset_uuid );
[804] Fix | Delete
}
[805] Fix | Delete
api.trigger( 'saved', response );
[806] Fix | Delete
} );
[807] Fix | Delete
[808] Fix | Delete
// Update the URLs to reflect the fact we've started autosaving.
[809] Fix | Delete
api.preview.bind( 'autosaving', function() {
[810] Fix | Delete
if ( api.settings.changeset.autosaved ) {
[811] Fix | Delete
return;
[812] Fix | Delete
}
[813] Fix | Delete
[814] Fix | Delete
api.settings.changeset.autosaved = true; // Start deferring to any autosave once changeset is updated.
[815] Fix | Delete
[816] Fix | Delete
$( document.body ).find( 'a[href], area[href]' ).each( function() {
[817] Fix | Delete
api.prepareLinkPreview( this );
[818] Fix | Delete
} );
[819] Fix | Delete
$( document.body ).find( 'form' ).each( function() {
[820] Fix | Delete
api.prepareFormPreview( this );
[821] Fix | Delete
} );
[822] Fix | Delete
if ( history.replaceState ) {
[823] Fix | Delete
history.replaceState( currentHistoryState, '', location.href );
[824] Fix | Delete
}
[825] Fix | Delete
} );
[826] Fix | Delete
[827] Fix | Delete
/*
[828] Fix | Delete
* Clear dirty flag for settings when saved to changeset so that they
[829] Fix | Delete
* won't be needlessly included in selective refresh or ajax requests.
[830] Fix | Delete
*/
[831] Fix | Delete
api.preview.bind( 'changeset-saved', function( data ) {
[832] Fix | Delete
_.each( data.saved_changeset_values, function( value, settingId ) {
[833] Fix | Delete
var setting = api( settingId );
[834] Fix | Delete
if ( setting && _.isEqual( setting.get(), value ) ) {
[835] Fix | Delete
setting._dirty = false;
[836] Fix | Delete
}
[837] Fix | Delete
} );
[838] Fix | Delete
} );
[839] Fix | Delete
[840] Fix | Delete
api.preview.bind( 'nonce-refresh', function( nonce ) {
[841] Fix | Delete
$.extend( api.settings.nonce, nonce );
[842] Fix | Delete
} );
[843] Fix | Delete
[844] Fix | Delete
/*
[845] Fix | Delete
* Send a message to the parent customize frame with a list of which
[846] Fix | Delete
* containers and controls are active.
[847] Fix | Delete
*/
[848] Fix | Delete
api.preview.send( 'ready', {
[849] Fix | Delete
currentUrl: api.settings.url.self,
[850] Fix | Delete
activePanels: api.settings.activePanels,
[851] Fix | Delete
activeSections: api.settings.activeSections,
[852] Fix | Delete
activeControls: api.settings.activeControls,
[853] Fix | Delete
settingValidities: api.settings.settingValidities
[854] Fix | Delete
} );
[855] Fix | Delete
[856] Fix | Delete
// Send ready when URL changes via JS.
[857] Fix | Delete
setInterval( api.keepAliveCurrentUrl, api.settings.timeouts.keepAliveSend );
[858] Fix | Delete
[859] Fix | Delete
// Display a loading indicator when preview is reloading, and remove on failure.
[860] Fix | Delete
api.preview.bind( 'loading-initiated', function () {
[861] Fix | Delete
$( 'body' ).addClass( 'wp-customizer-unloading' );
[862] Fix | Delete
});
[863] Fix | Delete
api.preview.bind( 'loading-failed', function () {
[864] Fix | Delete
$( 'body' ).removeClass( 'wp-customizer-unloading' );
[865] Fix | Delete
});
[866] Fix | Delete
[867] Fix | Delete
/* Custom Backgrounds */
[868] Fix | Delete
bg = $.map( ['color', 'image', 'preset', 'position_x', 'position_y', 'size', 'repeat', 'attachment'], function( prop ) {
[869] Fix | Delete
return 'background_' + prop;
[870] Fix | Delete
} );
[871] Fix | Delete
[872] Fix | Delete
api.when.apply( api, bg ).done( function() {
[873] Fix | Delete
$.each( arguments, function() {
[874] Fix | Delete
this.bind( api.settingPreviewHandlers.background );
[875] Fix | Delete
});
[876] Fix | Delete
});
[877] Fix | Delete
[878] Fix | Delete
/**
[879] Fix | Delete
* Custom Logo
[880] Fix | Delete
*
[881] Fix | Delete
* Toggle the wp-custom-logo body class when a logo is added or removed.
[882] Fix | Delete
*
[883] Fix | Delete
* @since 4.5.0
[884] Fix | Delete
*/
[885] Fix | Delete
api( 'custom_logo', function ( setting ) {
[886] Fix | Delete
api.settingPreviewHandlers.custom_logo.call( setting, setting.get() );
[887] Fix | Delete
setting.bind( api.settingPreviewHandlers.custom_logo );
[888] Fix | Delete
} );
[889] Fix | Delete
[890] Fix | Delete
api( 'custom_css[' + api.settings.theme.stylesheet + ']', function( setting ) {
[891] Fix | Delete
setting.bind( api.settingPreviewHandlers.custom_css );
[892] Fix | Delete
} );
[893] Fix | Delete
[894] Fix | Delete
api.trigger( 'preview-ready' );
[895] Fix | Delete
});
[896] Fix | Delete
[897] Fix | Delete
})( wp, jQuery );
[898] Fix | Delete
[899] Fix | Delete
12
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function