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/wp-admin/js
File: customize-controls.js
[4000] Fix | Delete
// Don't want to fire focus and click at same time.
[4001] Fix | Delete
toggleFreeze = true;
[4002] Fix | Delete
setTimeout(function () {
[4003] Fix | Delete
toggleFreeze = false;
[4004] Fix | Delete
}, 400);
[4005] Fix | Delete
});
[4006] Fix | Delete
[4007] Fix | Delete
this.setting.bind( update );
[4008] Fix | Delete
update( this.setting() );
[4009] Fix | Delete
},
[4010] Fix | Delete
[4011] Fix | Delete
/**
[4012] Fix | Delete
* Render the control from its JS template, if it exists.
[4013] Fix | Delete
*
[4014] Fix | Delete
* The control's container must already exist in the DOM.
[4015] Fix | Delete
*
[4016] Fix | Delete
* @since 4.1.0
[4017] Fix | Delete
*/
[4018] Fix | Delete
renderContent: function () {
[4019] Fix | Delete
var control = this, template, standardTypes, templateId, sectionId;
[4020] Fix | Delete
[4021] Fix | Delete
standardTypes = [
[4022] Fix | Delete
'button',
[4023] Fix | Delete
'checkbox',
[4024] Fix | Delete
'date',
[4025] Fix | Delete
'datetime-local',
[4026] Fix | Delete
'email',
[4027] Fix | Delete
'month',
[4028] Fix | Delete
'number',
[4029] Fix | Delete
'password',
[4030] Fix | Delete
'radio',
[4031] Fix | Delete
'range',
[4032] Fix | Delete
'search',
[4033] Fix | Delete
'select',
[4034] Fix | Delete
'tel',
[4035] Fix | Delete
'time',
[4036] Fix | Delete
'text',
[4037] Fix | Delete
'textarea',
[4038] Fix | Delete
'week',
[4039] Fix | Delete
'url'
[4040] Fix | Delete
];
[4041] Fix | Delete
[4042] Fix | Delete
templateId = control.templateSelector;
[4043] Fix | Delete
[4044] Fix | Delete
// Use default content template when a standard HTML type is used,
[4045] Fix | Delete
// there isn't a more specific template existing, and the control container is empty.
[4046] Fix | Delete
if ( templateId === 'customize-control-' + control.params.type + '-content' &&
[4047] Fix | Delete
_.contains( standardTypes, control.params.type ) &&
[4048] Fix | Delete
! document.getElementById( 'tmpl-' + templateId ) &&
[4049] Fix | Delete
0 === control.container.children().length )
[4050] Fix | Delete
{
[4051] Fix | Delete
templateId = 'customize-control-default-content';
[4052] Fix | Delete
}
[4053] Fix | Delete
[4054] Fix | Delete
// Replace the container element's content with the control.
[4055] Fix | Delete
if ( document.getElementById( 'tmpl-' + templateId ) ) {
[4056] Fix | Delete
template = wp.template( templateId );
[4057] Fix | Delete
if ( template && control.container ) {
[4058] Fix | Delete
control.container.html( template( control.params ) );
[4059] Fix | Delete
}
[4060] Fix | Delete
}
[4061] Fix | Delete
[4062] Fix | Delete
// Re-render notifications after content has been re-rendered.
[4063] Fix | Delete
control.notifications.container = control.getNotificationsContainerElement();
[4064] Fix | Delete
sectionId = control.section();
[4065] Fix | Delete
if ( ! sectionId || ( api.section.has( sectionId ) && api.section( sectionId ).expanded() ) ) {
[4066] Fix | Delete
control.notifications.render();
[4067] Fix | Delete
}
[4068] Fix | Delete
},
[4069] Fix | Delete
[4070] Fix | Delete
/**
[4071] Fix | Delete
* Add a new page to a dropdown-pages control reusing menus code for this.
[4072] Fix | Delete
*
[4073] Fix | Delete
* @since 4.7.0
[4074] Fix | Delete
* @access private
[4075] Fix | Delete
*
[4076] Fix | Delete
* @return {void}
[4077] Fix | Delete
*/
[4078] Fix | Delete
addNewPage: function () {
[4079] Fix | Delete
var control = this, promise, toggle, container, input, title, select;
[4080] Fix | Delete
[4081] Fix | Delete
if ( 'dropdown-pages' !== control.params.type || ! control.params.allow_addition || ! api.Menus ) {
[4082] Fix | Delete
return;
[4083] Fix | Delete
}
[4084] Fix | Delete
[4085] Fix | Delete
toggle = control.container.find( '.add-new-toggle' );
[4086] Fix | Delete
container = control.container.find( '.new-content-item-wrapper' );
[4087] Fix | Delete
input = control.container.find( '.create-item-input' );
[4088] Fix | Delete
title = input.val();
[4089] Fix | Delete
select = control.container.find( 'select' );
[4090] Fix | Delete
[4091] Fix | Delete
if ( ! title ) {
[4092] Fix | Delete
input.addClass( 'invalid' );
[4093] Fix | Delete
return;
[4094] Fix | Delete
}
[4095] Fix | Delete
[4096] Fix | Delete
input.removeClass( 'invalid' );
[4097] Fix | Delete
input.attr( 'disabled', 'disabled' );
[4098] Fix | Delete
[4099] Fix | Delete
// The menus functions add the page, publish when appropriate,
[4100] Fix | Delete
// and also add the new page to the dropdown-pages controls.
[4101] Fix | Delete
promise = api.Menus.insertAutoDraftPost( {
[4102] Fix | Delete
post_title: title,
[4103] Fix | Delete
post_type: 'page'
[4104] Fix | Delete
} );
[4105] Fix | Delete
promise.done( function( data ) {
[4106] Fix | Delete
var availableItem, $content, itemTemplate;
[4107] Fix | Delete
[4108] Fix | Delete
// Prepare the new page as an available menu item.
[4109] Fix | Delete
// See api.Menus.submitNew().
[4110] Fix | Delete
availableItem = new api.Menus.AvailableItemModel( {
[4111] Fix | Delete
'id': 'post-' + data.post_id, // Used for available menu item Backbone models.
[4112] Fix | Delete
'title': title,
[4113] Fix | Delete
'type': 'post_type',
[4114] Fix | Delete
'type_label': api.Menus.data.l10n.page_label,
[4115] Fix | Delete
'object': 'page',
[4116] Fix | Delete
'object_id': data.post_id,
[4117] Fix | Delete
'url': data.url
[4118] Fix | Delete
} );
[4119] Fix | Delete
[4120] Fix | Delete
// Add the new item to the list of available menu items.
[4121] Fix | Delete
api.Menus.availableMenuItemsPanel.collection.add( availableItem );
[4122] Fix | Delete
$content = $( '#available-menu-items-post_type-page' ).find( '.available-menu-items-list' );
[4123] Fix | Delete
itemTemplate = wp.template( 'available-menu-item' );
[4124] Fix | Delete
$content.prepend( itemTemplate( availableItem.attributes ) );
[4125] Fix | Delete
[4126] Fix | Delete
// Focus the select control.
[4127] Fix | Delete
select.focus();
[4128] Fix | Delete
control.setting.set( String( data.post_id ) ); // Triggers a preview refresh and updates the setting.
[4129] Fix | Delete
[4130] Fix | Delete
// Reset the create page form.
[4131] Fix | Delete
container.slideUp( 180 );
[4132] Fix | Delete
toggle.slideDown( 180 );
[4133] Fix | Delete
} );
[4134] Fix | Delete
promise.always( function() {
[4135] Fix | Delete
input.val( '' ).removeAttr( 'disabled' );
[4136] Fix | Delete
} );
[4137] Fix | Delete
}
[4138] Fix | Delete
});
[4139] Fix | Delete
[4140] Fix | Delete
/**
[4141] Fix | Delete
* A colorpicker control.
[4142] Fix | Delete
*
[4143] Fix | Delete
* @class wp.customize.ColorControl
[4144] Fix | Delete
* @augments wp.customize.Control
[4145] Fix | Delete
*/
[4146] Fix | Delete
api.ColorControl = api.Control.extend(/** @lends wp.customize.ColorControl.prototype */{
[4147] Fix | Delete
ready: function() {
[4148] Fix | Delete
var control = this,
[4149] Fix | Delete
isHueSlider = this.params.mode === 'hue',
[4150] Fix | Delete
updating = false,
[4151] Fix | Delete
picker;
[4152] Fix | Delete
[4153] Fix | Delete
if ( isHueSlider ) {
[4154] Fix | Delete
picker = this.container.find( '.color-picker-hue' );
[4155] Fix | Delete
picker.val( control.setting() ).wpColorPicker({
[4156] Fix | Delete
change: function( event, ui ) {
[4157] Fix | Delete
updating = true;
[4158] Fix | Delete
control.setting( ui.color.h() );
[4159] Fix | Delete
updating = false;
[4160] Fix | Delete
}
[4161] Fix | Delete
});
[4162] Fix | Delete
} else {
[4163] Fix | Delete
picker = this.container.find( '.color-picker-hex' );
[4164] Fix | Delete
picker.val( control.setting() ).wpColorPicker({
[4165] Fix | Delete
change: function() {
[4166] Fix | Delete
updating = true;
[4167] Fix | Delete
control.setting.set( picker.wpColorPicker( 'color' ) );
[4168] Fix | Delete
updating = false;
[4169] Fix | Delete
},
[4170] Fix | Delete
clear: function() {
[4171] Fix | Delete
updating = true;
[4172] Fix | Delete
control.setting.set( '' );
[4173] Fix | Delete
updating = false;
[4174] Fix | Delete
}
[4175] Fix | Delete
});
[4176] Fix | Delete
}
[4177] Fix | Delete
[4178] Fix | Delete
control.setting.bind( function ( value ) {
[4179] Fix | Delete
// Bail if the update came from the control itself.
[4180] Fix | Delete
if ( updating ) {
[4181] Fix | Delete
return;
[4182] Fix | Delete
}
[4183] Fix | Delete
picker.val( value );
[4184] Fix | Delete
picker.wpColorPicker( 'color', value );
[4185] Fix | Delete
} );
[4186] Fix | Delete
[4187] Fix | Delete
// Collapse color picker when hitting Esc instead of collapsing the current section.
[4188] Fix | Delete
control.container.on( 'keydown', function( event ) {
[4189] Fix | Delete
var pickerContainer;
[4190] Fix | Delete
if ( 27 !== event.which ) { // Esc.
[4191] Fix | Delete
return;
[4192] Fix | Delete
}
[4193] Fix | Delete
pickerContainer = control.container.find( '.wp-picker-container' );
[4194] Fix | Delete
if ( pickerContainer.hasClass( 'wp-picker-active' ) ) {
[4195] Fix | Delete
picker.wpColorPicker( 'close' );
[4196] Fix | Delete
control.container.find( '.wp-color-result' ).focus();
[4197] Fix | Delete
event.stopPropagation(); // Prevent section from being collapsed.
[4198] Fix | Delete
}
[4199] Fix | Delete
} );
[4200] Fix | Delete
}
[4201] Fix | Delete
});
[4202] Fix | Delete
[4203] Fix | Delete
/**
[4204] Fix | Delete
* A control that implements the media modal.
[4205] Fix | Delete
*
[4206] Fix | Delete
* @class wp.customize.MediaControl
[4207] Fix | Delete
* @augments wp.customize.Control
[4208] Fix | Delete
*/
[4209] Fix | Delete
api.MediaControl = api.Control.extend(/** @lends wp.customize.MediaControl.prototype */{
[4210] Fix | Delete
[4211] Fix | Delete
/**
[4212] Fix | Delete
* When the control's DOM structure is ready,
[4213] Fix | Delete
* set up internal event bindings.
[4214] Fix | Delete
*/
[4215] Fix | Delete
ready: function() {
[4216] Fix | Delete
var control = this;
[4217] Fix | Delete
// Shortcut so that we don't have to use _.bind every time we add a callback.
[4218] Fix | Delete
_.bindAll( control, 'restoreDefault', 'removeFile', 'openFrame', 'select', 'pausePlayer' );
[4219] Fix | Delete
[4220] Fix | Delete
// Bind events, with delegation to facilitate re-rendering.
[4221] Fix | Delete
control.container.on( 'click keydown', '.upload-button', control.openFrame );
[4222] Fix | Delete
control.container.on( 'click keydown', '.upload-button', control.pausePlayer );
[4223] Fix | Delete
control.container.on( 'click keydown', '.thumbnail-image img', control.openFrame );
[4224] Fix | Delete
control.container.on( 'click keydown', '.default-button', control.restoreDefault );
[4225] Fix | Delete
control.container.on( 'click keydown', '.remove-button', control.pausePlayer );
[4226] Fix | Delete
control.container.on( 'click keydown', '.remove-button', control.removeFile );
[4227] Fix | Delete
control.container.on( 'click keydown', '.remove-button', control.cleanupPlayer );
[4228] Fix | Delete
[4229] Fix | Delete
// Resize the player controls when it becomes visible (ie when section is expanded).
[4230] Fix | Delete
api.section( control.section() ).container
[4231] Fix | Delete
.on( 'expanded', function() {
[4232] Fix | Delete
if ( control.player ) {
[4233] Fix | Delete
control.player.setControlsSize();
[4234] Fix | Delete
}
[4235] Fix | Delete
})
[4236] Fix | Delete
.on( 'collapsed', function() {
[4237] Fix | Delete
control.pausePlayer();
[4238] Fix | Delete
});
[4239] Fix | Delete
[4240] Fix | Delete
/**
[4241] Fix | Delete
* Set attachment data and render content.
[4242] Fix | Delete
*
[4243] Fix | Delete
* Note that BackgroundImage.prototype.ready applies this ready method
[4244] Fix | Delete
* to itself. Since BackgroundImage is an UploadControl, the value
[4245] Fix | Delete
* is the attachment URL instead of the attachment ID. In this case
[4246] Fix | Delete
* we skip fetching the attachment data because we have no ID available,
[4247] Fix | Delete
* and it is the responsibility of the UploadControl to set the control's
[4248] Fix | Delete
* attachmentData before calling the renderContent method.
[4249] Fix | Delete
*
[4250] Fix | Delete
* @param {number|string} value Attachment
[4251] Fix | Delete
*/
[4252] Fix | Delete
function setAttachmentDataAndRenderContent( value ) {
[4253] Fix | Delete
var hasAttachmentData = $.Deferred();
[4254] Fix | Delete
[4255] Fix | Delete
if ( control.extended( api.UploadControl ) ) {
[4256] Fix | Delete
hasAttachmentData.resolve();
[4257] Fix | Delete
} else {
[4258] Fix | Delete
value = parseInt( value, 10 );
[4259] Fix | Delete
if ( _.isNaN( value ) || value <= 0 ) {
[4260] Fix | Delete
delete control.params.attachment;
[4261] Fix | Delete
hasAttachmentData.resolve();
[4262] Fix | Delete
} else if ( control.params.attachment && control.params.attachment.id === value ) {
[4263] Fix | Delete
hasAttachmentData.resolve();
[4264] Fix | Delete
}
[4265] Fix | Delete
}
[4266] Fix | Delete
[4267] Fix | Delete
// Fetch the attachment data.
[4268] Fix | Delete
if ( 'pending' === hasAttachmentData.state() ) {
[4269] Fix | Delete
wp.media.attachment( value ).fetch().done( function() {
[4270] Fix | Delete
control.params.attachment = this.attributes;
[4271] Fix | Delete
hasAttachmentData.resolve();
[4272] Fix | Delete
[4273] Fix | Delete
// Send attachment information to the preview for possible use in `postMessage` transport.
[4274] Fix | Delete
wp.customize.previewer.send( control.setting.id + '-attachment-data', this.attributes );
[4275] Fix | Delete
} );
[4276] Fix | Delete
}
[4277] Fix | Delete
[4278] Fix | Delete
hasAttachmentData.done( function() {
[4279] Fix | Delete
control.renderContent();
[4280] Fix | Delete
} );
[4281] Fix | Delete
}
[4282] Fix | Delete
[4283] Fix | Delete
// Ensure attachment data is initially set (for dynamically-instantiated controls).
[4284] Fix | Delete
setAttachmentDataAndRenderContent( control.setting() );
[4285] Fix | Delete
[4286] Fix | Delete
// Update the attachment data and re-render the control when the setting changes.
[4287] Fix | Delete
control.setting.bind( setAttachmentDataAndRenderContent );
[4288] Fix | Delete
},
[4289] Fix | Delete
[4290] Fix | Delete
pausePlayer: function () {
[4291] Fix | Delete
this.player && this.player.pause();
[4292] Fix | Delete
},
[4293] Fix | Delete
[4294] Fix | Delete
cleanupPlayer: function () {
[4295] Fix | Delete
this.player && wp.media.mixin.removePlayer( this.player );
[4296] Fix | Delete
},
[4297] Fix | Delete
[4298] Fix | Delete
/**
[4299] Fix | Delete
* Open the media modal.
[4300] Fix | Delete
*/
[4301] Fix | Delete
openFrame: function( event ) {
[4302] Fix | Delete
if ( api.utils.isKeydownButNotEnterEvent( event ) ) {
[4303] Fix | Delete
return;
[4304] Fix | Delete
}
[4305] Fix | Delete
[4306] Fix | Delete
event.preventDefault();
[4307] Fix | Delete
[4308] Fix | Delete
if ( ! this.frame ) {
[4309] Fix | Delete
this.initFrame();
[4310] Fix | Delete
}
[4311] Fix | Delete
[4312] Fix | Delete
this.frame.open();
[4313] Fix | Delete
},
[4314] Fix | Delete
[4315] Fix | Delete
/**
[4316] Fix | Delete
* Create a media modal select frame, and store it so the instance can be reused when needed.
[4317] Fix | Delete
*/
[4318] Fix | Delete
initFrame: function() {
[4319] Fix | Delete
this.frame = wp.media({
[4320] Fix | Delete
button: {
[4321] Fix | Delete
text: this.params.button_labels.frame_button
[4322] Fix | Delete
},
[4323] Fix | Delete
states: [
[4324] Fix | Delete
new wp.media.controller.Library({
[4325] Fix | Delete
title: this.params.button_labels.frame_title,
[4326] Fix | Delete
library: wp.media.query({ type: this.params.mime_type }),
[4327] Fix | Delete
multiple: false,
[4328] Fix | Delete
date: false
[4329] Fix | Delete
})
[4330] Fix | Delete
]
[4331] Fix | Delete
});
[4332] Fix | Delete
[4333] Fix | Delete
// When a file is selected, run a callback.
[4334] Fix | Delete
this.frame.on( 'select', this.select );
[4335] Fix | Delete
},
[4336] Fix | Delete
[4337] Fix | Delete
/**
[4338] Fix | Delete
* Callback handler for when an attachment is selected in the media modal.
[4339] Fix | Delete
* Gets the selected image information, and sets it within the control.
[4340] Fix | Delete
*/
[4341] Fix | Delete
select: function() {
[4342] Fix | Delete
// Get the attachment from the modal frame.
[4343] Fix | Delete
var node,
[4344] Fix | Delete
attachment = this.frame.state().get( 'selection' ).first().toJSON(),
[4345] Fix | Delete
mejsSettings = window._wpmejsSettings || {};
[4346] Fix | Delete
[4347] Fix | Delete
this.params.attachment = attachment;
[4348] Fix | Delete
[4349] Fix | Delete
// Set the Customizer setting; the callback takes care of rendering.
[4350] Fix | Delete
this.setting( attachment.id );
[4351] Fix | Delete
node = this.container.find( 'audio, video' ).get(0);
[4352] Fix | Delete
[4353] Fix | Delete
// Initialize audio/video previews.
[4354] Fix | Delete
if ( node ) {
[4355] Fix | Delete
this.player = new MediaElementPlayer( node, mejsSettings );
[4356] Fix | Delete
} else {
[4357] Fix | Delete
this.cleanupPlayer();
[4358] Fix | Delete
}
[4359] Fix | Delete
},
[4360] Fix | Delete
[4361] Fix | Delete
/**
[4362] Fix | Delete
* Reset the setting to the default value.
[4363] Fix | Delete
*/
[4364] Fix | Delete
restoreDefault: function( event ) {
[4365] Fix | Delete
if ( api.utils.isKeydownButNotEnterEvent( event ) ) {
[4366] Fix | Delete
return;
[4367] Fix | Delete
}
[4368] Fix | Delete
event.preventDefault();
[4369] Fix | Delete
[4370] Fix | Delete
this.params.attachment = this.params.defaultAttachment;
[4371] Fix | Delete
this.setting( this.params.defaultAttachment.url );
[4372] Fix | Delete
},
[4373] Fix | Delete
[4374] Fix | Delete
/**
[4375] Fix | Delete
* Called when the "Remove" link is clicked. Empties the setting.
[4376] Fix | Delete
*
[4377] Fix | Delete
* @param {Object} event jQuery Event object
[4378] Fix | Delete
*/
[4379] Fix | Delete
removeFile: function( event ) {
[4380] Fix | Delete
if ( api.utils.isKeydownButNotEnterEvent( event ) ) {
[4381] Fix | Delete
return;
[4382] Fix | Delete
}
[4383] Fix | Delete
event.preventDefault();
[4384] Fix | Delete
[4385] Fix | Delete
this.params.attachment = {};
[4386] Fix | Delete
this.setting( '' );
[4387] Fix | Delete
this.renderContent(); // Not bound to setting change when emptying.
[4388] Fix | Delete
}
[4389] Fix | Delete
});
[4390] Fix | Delete
[4391] Fix | Delete
/**
[4392] Fix | Delete
* An upload control, which utilizes the media modal.
[4393] Fix | Delete
*
[4394] Fix | Delete
* @class wp.customize.UploadControl
[4395] Fix | Delete
* @augments wp.customize.MediaControl
[4396] Fix | Delete
*/
[4397] Fix | Delete
api.UploadControl = api.MediaControl.extend(/** @lends wp.customize.UploadControl.prototype */{
[4398] Fix | Delete
[4399] Fix | Delete
/**
[4400] Fix | Delete
* Callback handler for when an attachment is selected in the media modal.
[4401] Fix | Delete
* Gets the selected image information, and sets it within the control.
[4402] Fix | Delete
*/
[4403] Fix | Delete
select: function() {
[4404] Fix | Delete
// Get the attachment from the modal frame.
[4405] Fix | Delete
var node,
[4406] Fix | Delete
attachment = this.frame.state().get( 'selection' ).first().toJSON(),
[4407] Fix | Delete
mejsSettings = window._wpmejsSettings || {};
[4408] Fix | Delete
[4409] Fix | Delete
this.params.attachment = attachment;
[4410] Fix | Delete
[4411] Fix | Delete
// Set the Customizer setting; the callback takes care of rendering.
[4412] Fix | Delete
this.setting( attachment.url );
[4413] Fix | Delete
node = this.container.find( 'audio, video' ).get(0);
[4414] Fix | Delete
[4415] Fix | Delete
// Initialize audio/video previews.
[4416] Fix | Delete
if ( node ) {
[4417] Fix | Delete
this.player = new MediaElementPlayer( node, mejsSettings );
[4418] Fix | Delete
} else {
[4419] Fix | Delete
this.cleanupPlayer();
[4420] Fix | Delete
}
[4421] Fix | Delete
},
[4422] Fix | Delete
[4423] Fix | Delete
// @deprecated
[4424] Fix | Delete
success: function() {},
[4425] Fix | Delete
[4426] Fix | Delete
// @deprecated
[4427] Fix | Delete
removerVisibility: function() {}
[4428] Fix | Delete
});
[4429] Fix | Delete
[4430] Fix | Delete
/**
[4431] Fix | Delete
* A control for uploading images.
[4432] Fix | Delete
*
[4433] Fix | Delete
* This control no longer needs to do anything more
[4434] Fix | Delete
* than what the upload control does in JS.
[4435] Fix | Delete
*
[4436] Fix | Delete
* @class wp.customize.ImageControl
[4437] Fix | Delete
* @augments wp.customize.UploadControl
[4438] Fix | Delete
*/
[4439] Fix | Delete
api.ImageControl = api.UploadControl.extend(/** @lends wp.customize.ImageControl.prototype */{
[4440] Fix | Delete
// @deprecated
[4441] Fix | Delete
thumbnailSrc: function() {}
[4442] Fix | Delete
});
[4443] Fix | Delete
[4444] Fix | Delete
/**
[4445] Fix | Delete
* A control for uploading background images.
[4446] Fix | Delete
*
[4447] Fix | Delete
* @class wp.customize.BackgroundControl
[4448] Fix | Delete
* @augments wp.customize.UploadControl
[4449] Fix | Delete
*/
[4450] Fix | Delete
api.BackgroundControl = api.UploadControl.extend(/** @lends wp.customize.BackgroundControl.prototype */{
[4451] Fix | Delete
[4452] Fix | Delete
/**
[4453] Fix | Delete
* When the control's DOM structure is ready,
[4454] Fix | Delete
* set up internal event bindings.
[4455] Fix | Delete
*/
[4456] Fix | Delete
ready: function() {
[4457] Fix | Delete
api.UploadControl.prototype.ready.apply( this, arguments );
[4458] Fix | Delete
},
[4459] Fix | Delete
[4460] Fix | Delete
/**
[4461] Fix | Delete
* Callback handler for when an attachment is selected in the media modal.
[4462] Fix | Delete
* Does an additional Ajax request for setting the background context.
[4463] Fix | Delete
*/
[4464] Fix | Delete
select: function() {
[4465] Fix | Delete
api.UploadControl.prototype.select.apply( this, arguments );
[4466] Fix | Delete
[4467] Fix | Delete
wp.ajax.post( 'custom-background-add', {
[4468] Fix | Delete
nonce: _wpCustomizeBackground.nonces.add,
[4469] Fix | Delete
wp_customize: 'on',
[4470] Fix | Delete
customize_theme: api.settings.theme.stylesheet,
[4471] Fix | Delete
attachment_id: this.params.attachment.id
[4472] Fix | Delete
} );
[4473] Fix | Delete
}
[4474] Fix | Delete
});
[4475] Fix | Delete
[4476] Fix | Delete
/**
[4477] Fix | Delete
* A control for positioning a background image.
[4478] Fix | Delete
*
[4479] Fix | Delete
* @since 4.7.0
[4480] Fix | Delete
*
[4481] Fix | Delete
* @class wp.customize.BackgroundPositionControl
[4482] Fix | Delete
* @augments wp.customize.Control
[4483] Fix | Delete
*/
[4484] Fix | Delete
api.BackgroundPositionControl = api.Control.extend(/** @lends wp.customize.BackgroundPositionControl.prototype */{
[4485] Fix | Delete
[4486] Fix | Delete
/**
[4487] Fix | Delete
* Set up control UI once embedded in DOM and settings are created.
[4488] Fix | Delete
*
[4489] Fix | Delete
* @since 4.7.0
[4490] Fix | Delete
* @access public
[4491] Fix | Delete
*/
[4492] Fix | Delete
ready: function() {
[4493] Fix | Delete
var control = this, updateRadios;
[4494] Fix | Delete
[4495] Fix | Delete
control.container.on( 'change', 'input[name="background-position"]', function() {
[4496] Fix | Delete
var position = $( this ).val().split( ' ' );
[4497] Fix | Delete
control.settings.x( position[0] );
[4498] Fix | Delete
control.settings.y( position[1] );
[4499] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function