WordPress/wp-includes/customize/class-wp-widget-form-customize-control.php
Gary Pendergast aaf99e6913 Code is Poetry.
WordPress' code just... wasn't.
This is now dealt with.

Props jrf, pento, netweb, GaryJ, jdgrimes, westonruter, Greg Sherwood from PHPCS, and everyone who's ever contributed to WPCS and PHPCS.
Fixes #41057.


Built from https://develop.svn.wordpress.org/trunk@42343


git-svn-id: http://core.svn.wordpress.org/trunk@42172 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2017-11-30 23:11:00 +00:00

86 lines
2.0 KiB
PHP

<?php
/**
* Customize API: WP_Widget_Form_Customize_Control class
*
* @package WordPress
* @subpackage Customize
* @since 4.4.0
*/
/**
* Widget Form Customize Control class.
*
* @since 3.9.0
*
* @see WP_Customize_Control
*/
class WP_Widget_Form_Customize_Control extends WP_Customize_Control {
public $type = 'widget_form';
public $widget_id;
public $widget_id_base;
public $sidebar_id;
public $is_new = false;
public $width;
public $height;
public $is_wide = false;
/**
* Gather control params for exporting to JavaScript.
*
* @since 3.9.0
*
* @global array $wp_registered_widgets
*/
public function to_json() {
global $wp_registered_widgets;
parent::to_json();
$exported_properties = array( 'widget_id', 'widget_id_base', 'sidebar_id', 'width', 'height', 'is_wide' );
foreach ( $exported_properties as $key ) {
$this->json[ $key ] = $this->$key;
}
// Get the widget_control and widget_content.
require_once ABSPATH . '/wp-admin/includes/widgets.php';
$widget = $wp_registered_widgets[ $this->widget_id ];
if ( ! isset( $widget['params'][0] ) ) {
$widget['params'][0] = array();
}
$args = array(
'widget_id' => $widget['id'],
'widget_name' => $widget['name'],
);
$args = wp_list_widget_controls_dynamic_sidebar(
array(
0 => $args,
1 => $widget['params'][0],
)
);
$widget_control_parts = $this->manager->widgets->get_widget_control_parts( $args );
$this->json['widget_control'] = $widget_control_parts['control'];
$this->json['widget_content'] = $widget_control_parts['content'];
}
/**
* Override render_content to be no-op since content is exported via to_json for deferred embedding.
*
* @since 3.9.0
*/
public function render_content() {}
/**
* Whether the current widget is rendered on the page.
*
* @since 4.0.0
*
* @return bool Whether the widget is rendered.
*/
public function active_callback() {
return $this->manager->widgets->is_widget_rendered( $this->widget_id );
}
}