themotion-lemondropproductions/inc/class/themotion-general-control.php

188 lines
5.9 KiB
PHP

<?php
/**
* Repeater customizer control.
*
* @package themotion
*/
if ( ! class_exists( 'WP_Customize_Control' ) ) {
return null;
}
/**
* Repeater Customizer Control Class
*/
class Themotion_General_Repeater extends WP_Customize_Control {
/**
* Options for the Repeater customizer control
*
* @var array
*/
private $options = array();
/**
* Construct function for the Repeater control
*/
public function __construct( $manager, $id, $args = array() ) {
parent::__construct( $manager, $id, $args );
$this->options = $args;
}
/**
* Render the Repeater control
*/
public function render_content() {
$it = 0;
$this_default = json_decode( $this->setting->default );
$values = $this->value();
$json = json_decode( $values );
if ( ! is_array( $json ) ) {
$json = array( $values );
}
$options = $this->options;
if ( ! empty( $options['themotion_link_control'] ) ) {
$themotion_link_control = $options['themotion_link_control'];
} else {
$themotion_link_control = false;
}
if ( ! empty( $options['themotion_text_control'] ) ) {
$themotion_text_control = $options['themotion_text_control'];
} else {
$themotion_text_control = false;
}
?>
<span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>
<div class="themotion_general_control_repeater themotion_general_control_droppable">
<?php
if ( empty( $json ) ) {
?>
<div class="themotion_general_control_repeater_container">
<div class="themotion-customize-control-title"><?php esc_html_e( 'TheMotion', 'themotion' ) ?></div>
<div class="themotion-box-content-hidden">
<?php
if ( true == $themotion_text_control ) { ?>
<span class="customize-control-title"><?php esc_html_e( 'Text','themotion' )?></span>
<input type="text" class="themotion_text_control" placeholder="<?php esc_html_e( 'Text','themotion' ); ?>"/>
<?php
}
if ( true == $themotion_link_control ) { ?>
<span class="customize-control-title"><?php esc_html_e( 'Link', 'themotion' ) ?></span>
<input type="text" class="themotion_link_control"
placeholder="<?php esc_html_e( 'Link', 'themotion' ); ?>"/>
<?php
} ?>
<input type="hidden" class="themotion_box_id">
<button type="button" class="themotion_general_control_remove_field button"
style="display:none;"><?php esc_html_e( 'Delete field', 'themotion' ); ?></button>
</div>
</div>
<?php
} else {
if ( ! empty( $this_default ) && empty( $json ) ) {
foreach ( $this_default as $icon ) { ?>
<div class="themotion_general_control_repeater_container themotion_draggable">
<div
class="themotion-customize-control-title"><?php esc_html_e( 'TheMotion', 'themotion' ) ?></div>
<div class="themotion-box-content-hidden">
<?php
if ( true == $themotion_text_control ) { ?>
<span class="customize-control-title"><?php esc_html_e( 'Text','themotion' )?></span>
<input type="text" value="<?php if ( ! empty( $icon->text ) ) { echo esc_attr( $icon->text ); } ?>" class="themotion_text_control" placeholder="<?php esc_html_e( 'Text','themotion' ); ?>"/>
<?php
}
if ( true == $themotion_link_control ) { ?>
<span class="customize-control-title"><?php esc_html_e( 'Link', 'themotion' ) ?></span>
<input type="text" value="<?php if ( ! empty( $icon->link ) ) {
echo esc_url( $icon->link );
} ?>" class="themotion_link_control"
placeholder="<?php esc_html_e( 'Link', 'themotion' ); ?>"/>
<?php
} ?>
<input type="hidden" class="themotion_box_id" value="<?php if ( ! empty( $icon->id ) ) {
echo esc_attr( $icon->id );
} ?>">
<button type="button" class="themotion_general_control_remove_field button" <?php
if ( 0 == $it ) {
echo 'style="display:none;"';
} ?>><?php esc_html_e( 'Delete field', 'themotion' ); ?></button>
</div>
</div>
<?php
$it ++;
}
} else {
foreach ( $json as $icon ) {
?>
<div class="themotion_general_control_repeater_container themotion_draggable">
<div
class="themotion-customize-control-title"><?php esc_html_e( 'TheMotion', 'themotion' ) ?></div>
<div class="themotion-box-content-hidden">
<?php
if ( true == $themotion_text_control ) { ?>
<span class="customize-control-title"><?php esc_html_e( 'Text','themotion' )?></span>
<input type="text" value="<?php if ( ! empty( $icon->text ) ) { echo esc_attr( $icon->text ); } ?>" class="themotion_text_control" placeholder="<?php esc_html_e( 'Text','themotion' ); ?>"/>
<?php
}
if ( true == $themotion_link_control ) { ?>
<span class="customize-control-title"><?php esc_html_e( 'Link', 'themotion' ) ?></span>
<input type="text" value="<?php if ( ! empty( $icon->link ) ) {
echo esc_url( $icon->link );
} ?>" class="themotion_link_control"
placeholder="<?php esc_html_e( 'Link', 'themotion' ); ?>"/>
<?php
} ?>
<input type="hidden" class="themotion_box_id" value="<?php if ( ! empty( $icon->id ) ) {
echo esc_attr( $icon->id );
} ?>">
<button type="button" class="themotion_general_control_remove_field button" <?php
if ( 0 == $it ) {
echo 'style="display:none;"';
} ?>><?php esc_html_e( 'Delete field', 'themotion' ); ?></button>
</div>
</div>
<?php
$it ++;
}
}
} ?>
<input type="hidden"
id="themotion_<?php echo esc_attr( $options['section'] ); ?>_repeater_colector" <?php $this->link(); ?>
class="themotion_repeater_colector" value="<?php echo esc_textarea( $this->value() ); ?>"/>
</div>
<button type="button" class="button add_field themotion_general_control_new_field"
><?php esc_html_e( 'Add new field', 'themotion' ); ?></button>
<?php
}
}