HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux WebLive 5.15.0-79-generic #86-Ubuntu SMP Mon Jul 10 16:07:21 UTC 2023 x86_64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/html/wptoho/wp-content/themes/themify-ultra/themify/customizer/class-margin-control.php
<?php

defined( 'ABSPATH' ) || exit;

/**
 * Class to create a control to set the margin of an element.
 *
 * @since 1.0.0
 */
class Themify_Margin_Control extends Themify_Control {

    /**
     * Type of this control.
     * @access public
     * @var string
     */
    public $type = 'themify_margin';

    /**
     * Render the control's content.
     *
     * @since 1.0.0
     */
    public function render_content() {
        $v = $this->value();
        $values = json_decode( $v );
        wp_enqueue_script( 'json2' );

        // Same for all
        $same = isset( $values->same ) ? $values->same : 'same';

        // Units
        $current_unit = isset( $values->unit ) ? $values->unit : 'px';
        $units = array( 'px', '%', 'em' );

        if ( 'themify_padding' == $this->type ) {
            $property = __( 'Padding', 'themify' );
            $dimension_type = 'padding';
            // Sides
            $sides = array(
                'top'    => __( 'Padding Top', 'themify' ),
                'right'  => __( 'Padding Right', 'themify' ),
                'bottom' => __( 'Padding Bottom', 'themify' ),
                'left'   => __( 'Padding Left', 'themify' ),
            );
            $apply_to_all = __( 'Apply to all padding', 'themify' );
        } else {
            $property = __( 'Margin', 'themify' );
            $dimension_type = 'margin';
            // Sides
            $sides = array(
                'top'    => __( 'Margin Top', 'themify' ),
                'right'  => __( 'Margin Right', 'themify' ),
                'bottom' => __( 'Margin Bottom', 'themify' ),
                'left'   => __( 'Margin Left', 'themify' ),
            );
            $apply_to_all = __( 'Apply to all margin', 'themify' );
        }
                $label = $this->show_label && ! empty( $this->label );
        ?>

        <?php if ($label) : ?>
            <span class="customize-control-title themify-control-title themify-suba-toggle"><?php echo esc_html( $this->label ); ?></span>
        <?php endif; ?>
                <?php if ($label) : ?>                    
                    <ul class="themify-control-sub-accordeon">
                        <li>            
                <?php endif;?>
                    <?php
                    $first = true;
                    foreach ( $sides as $side => $side_label ) : ?>
                            <div class="themify-customizer-brick <?php if ( $first ) : echo 'useforall'; else : echo 'component'; endif; ?>">

                                    <!-- Margin/Padding Width -->
                                    <?php
                                    // Check width
                                    if ( 'same' == $same ) {
                                            $width = isset( $values->width ) ? $values->width : '';
                                    } else {
                                            $width = isset( $values->{$side} ) && isset( $values->{$side}->width ) ? $values->{$side}->width : '';
                                    }
                                    $id = $this->id . '_' . $dimension_type . '_' . $side;
                                    ?>
                                    <?php if ( 'margin' == $dimension_type ) : ?>
                                    <div class="auto-prop-combo js-hide-<?php echo esc_attr( $side ); ?> hcollapse">
                                            <?php endif; ?>

                                            <input type="text" class="dimension-width <?php echo esc_attr( $dimension_type ); ?>-width" data-side="<?php echo esc_attr( $side ); ?>" value="<?php echo esc_attr( $width ); ?>" id="<?php echo esc_attr( $id ); ?>" />
                                            <div class="custom-select">
                                                    <select class="dimension-unit <?php echo esc_attr( $dimension_type ); ?>-unit" data-side="<?php echo esc_attr( $side ); ?>">
                                                            <?php foreach ( $units as $unit ) : ?>
                                                                    <option value="<?php echo esc_attr( $unit ); ?>" <?php selected( $unit, $current_unit ); ?>><?php echo esc_html( $unit ); ?></option>
                                                            <?php endforeach; ?>
                                                    </select>
                                            </div>

                                    <?php if ( 'padding' == $dimension_type ) : ?>
                                            <label for="<?php echo esc_attr( $id ); ?>" class="dimension-row-label <?php if ( $first ) : echo 'same-label'; endif; ?>" <?php if ( $first ) : echo 'data-same="' . esc_attr( $property ) . '" data-notsame="' . esc_attr( $side_label ) . '"'; endif; ?>><?php echo esc_html( $side_label ); ?></label>
                                    <?php endif; ?>

                                    <?php if ( 'margin' == $dimension_type ) : ?>

                                    </div>

                                            <span class="auto-prop-label">
                                                    <?php
                                                    // CSS property value: auto
                                                    $auto = isset( $values->{$side} ) && isset( $values->{$side}->auto ) ? $values->{$side}->auto : '';
                                                    $auto_id = $this->id . '_' . $side . '_auto';
                                                    ?>
                                                    <label for="<?php echo esc_attr( $id ); ?>" class="dimension-row-label <?php if ( $first ) : echo 'same-label'; endif; ?>" <?php if ( $first ) : echo 'data-same="' . esc_attr( $property ) . '" data-notsame="' . esc_attr( $side_label ) . '"'; endif; ?>><?php echo esc_html( $side_label ); ?></label>
                                                    <input id="<?php echo esc_attr( $auto_id ); ?>" type="checkbox" class="auto-prop" <?php checked( $auto, 'auto' ); ?> value="auto" data-hide="js-hide-<?php echo esc_attr( $side ); ?>" data-side="<?php echo esc_attr( $side ); ?>"/>
                                                    <label for="<?php echo esc_attr( $auto_id ); ?>">
                                                            <?php _e( 'Auto', 'themify' ); ?>
                                                    </label>
                                    </span>
                                    <?php endif; ?>

                            </div>

                    <?php
                    $first = false;
                    endforeach; ?>

                    <div class="themify-customizer-brick collapse-same">
                            <!-- Apply the same settings to all sides -->
                            <?php $same_id = $this->id . '_same'; ?>
                            <input id="<?php echo esc_attr( $same_id ); ?>" type="checkbox" class="same" <?php checked( $same, 'same' ); ?> value="same"/>
                            <label for="<?php echo esc_attr( $same_id ); ?>">
                                    <?php echo esc_html( $apply_to_all ); ?>
                            </label>
                    </div>

                    <input <?php $this->link(); ?> value='<?php echo esc_attr( $v ); ?>' type="hidden" class="<?php echo esc_attr( $this->type ); ?>_control themify-customizer-value-field"/>
                <?php if ($label) : ?>
                        </li>
                    </ul>
                <?php endif;?>
        <?php
    }
}