98 lines
1.9 KiB
PHP
98 lines
1.9 KiB
PHP
|
<?php
|
||
|
/**
|
||
|
* Customize API: Wrapper class.
|
||
|
*
|
||
|
* @package GeneratePress
|
||
|
*/
|
||
|
|
||
|
/**
|
||
|
* Customize Wrapper Control class.
|
||
|
*
|
||
|
* @see WP_Customize_Control
|
||
|
*/
|
||
|
class GeneratePress_Customize_Wrapper_Control extends WP_Customize_Control {
|
||
|
/**
|
||
|
* Type.
|
||
|
*
|
||
|
* @access public
|
||
|
* @since 1.0.0
|
||
|
* @var string
|
||
|
*/
|
||
|
public $type = 'generate-wrapper-control';
|
||
|
|
||
|
/**
|
||
|
* Refresh the parameters passed to the JavaScript via JSON.
|
||
|
*
|
||
|
* @since 3.4.0
|
||
|
* @uses WP_Customize_Control::to_json()
|
||
|
*/
|
||
|
public function to_json() {
|
||
|
parent::to_json();
|
||
|
$this->json['choices'] = $this->choices;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Empty JS template.
|
||
|
*
|
||
|
* @access public
|
||
|
* @since 1.0.0
|
||
|
* @return void
|
||
|
*/
|
||
|
public function content_template() {}
|
||
|
|
||
|
/**
|
||
|
* Empty PHP template.
|
||
|
*
|
||
|
* @access public
|
||
|
* @since 1.0.0
|
||
|
* @return void
|
||
|
*/
|
||
|
public function render_content() {
|
||
|
$html_attributes = array(
|
||
|
'class' => 'generate-customize-control-wrapper',
|
||
|
'id' => $this->id,
|
||
|
'data-wrapper-type' => $this->choices['type'],
|
||
|
);
|
||
|
|
||
|
if ( ! empty( $this->choices['class'] ) ) {
|
||
|
$html_attributes['class'] .= ' ' . $this->choices['class'];
|
||
|
}
|
||
|
|
||
|
$attributes_string = '';
|
||
|
|
||
|
foreach ( $html_attributes as $attribute => $value ) {
|
||
|
$attributes_string .= $attribute . '="' . esc_attr( $value ) . '" ';
|
||
|
}
|
||
|
|
||
|
$this->toggleIdScript();
|
||
|
?>
|
||
|
<div <?php echo $attributes_string; // phpcs:ignore -- Escaped above. ?>>
|
||
|
<?php
|
||
|
foreach ( $this->choices['items'] as $wrapper ) {
|
||
|
?>
|
||
|
<div id="<?php echo esc_attr( $wrapper . '--wrapper' ); ?>"></div>
|
||
|
<?php
|
||
|
}
|
||
|
?>
|
||
|
</div>
|
||
|
<?php
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Add a script to toggle the wrapper.
|
||
|
*/
|
||
|
public function toggleIdScript() {
|
||
|
if ( ! empty( $this->choices['toggleId'] ) ) :
|
||
|
?>
|
||
|
<script>
|
||
|
var liElement = document.getElementById( 'customize-control-<?php echo esc_js( $this->id ); ?>' );
|
||
|
|
||
|
if ( liElement ) {
|
||
|
liElement.setAttribute('data-toggleId', '<?php echo esc_attr( $this->choices['toggleId'] ); ?>');
|
||
|
}
|
||
|
</script>
|
||
|
<?php
|
||
|
endif;
|
||
|
}
|
||
|
}
|