function btnsx_content_sort(array $sorted, $tabs_id, $i) { $output = ''; $j = 0; foreach ($sorted as $og) { $og['id'] = $tabs_id . '-' . $i . '-' . $j; echo '<section id="' . esc_attr($og['id']) . '">'; echo '<ul id="" class="collapsible" data-collapsible="custom">'; // proceed only if elements are not empty if (isset($og['elements']) && $og['elements'] != NULL) { echo '<div class="row btnsx-collapsible-content-padding">'; // for each element in outer group generate form fields (outside collapsibles) foreach ($og['elements'] as $el) { $btnsx_form = new BtnsxFormElements(); $btnsx_form->input(array('type' => isset($el['type']) ? $el['type'] : NULL, 'cpt' => isset($el['cpt']) ? $el['cpt'] : NULL, 'id' => isset($el['id']) ? $el['id'] : NULL, 'placeholder' => isset($el['placeholder']) ? $el['placeholder'] : NULL, 'label' => isset($el['label']) ? $el['label'] : NULL, 'tooltip' => isset($el['tooltip']) ? $el['tooltip'] : NULL, 'name' => isset($el['name']) ? $el['name'] : NULL, 'class' => isset($el['class']) ? $el['class'] : NULL, 'multiselect' => isset($el['multiselect']) ? $el['multiselect'] : NULL, 'title' => isset($el['title']) ? $el['title'] : NULL, 'min' => isset($el['min']) ? $el['min'] : NULL, 'max' => isset($el['max']) ? $el['max'] : NULL, 'step' => isset($el['step']) ? $el['step'] : NULL, 'on_text' => isset($el['on_text']) ? $el['on_text'] : __('On', 'buttons-x'), 'off_text' => isset($el['off_text']) ? $el['off_text'] : __('Off', 'buttons-x'), 'data' => isset($el['data']) ? $el['data'] : NULL, 'value' => isset($el['value']) ? $el['value'] : NULL, 'options' => isset($el['options']) ? $el['options'] : array(), 'copy' => isset($el['copy']) ? $el['copy'] : NULL, 'copy_text' => isset($el['copy_text']) ? $el['copy_text'] : NULL, 'copy_ids' => isset($el['copy_ids']) ? $el['copy_ids'] : array(), 'pro' => isset($el['pro']) ? $el['pro'] : FALSE)); } echo '</div>'; } // proceed only if elements are not empty if (isset($og['inner_group']) && $og['inner_group'] != NULL) { // generate form fields inside collapsibles foreach ($og['inner_group'] as $ig) { $ig['id'] = isset($ig['id']) ? $ig['id'] : ''; $collapsible_header = isset($ig['id']) ? $ig['id'] . '_header' : ''; $collapsible_body = isset($ig['id']) ? $ig['id'] . '_body' : ''; $copy_btn = isset($ig['id']) ? $ig['id'] . '_copy_btn' : ''; $multiple = isset($ig['multiple']) && $ig['multiple'] === true ? true : false; $multiple_btn_class = isset($ig['multiple_btn_class']) ? $ig['multiple_btn_class'] : ''; $copy = isset($ig['copy']) && $ig['copy'] === true ? true : false; ?> <li id="<?php echo esc_attr($ig['id']); ?> " class="<?php echo isset($ig['clone_class']) ? esc_attr($ig['clone_class']) : ''; ?> "> <?php if ($multiple === true && $copy === false || $multiple === false && $copy === true) { ?> <div class="row"> <div class="col m10" style="padding:0;"> <div id="<?php echo esc_attr($collapsible_header); ?> " id="<?php echo esc_attr($ig['elements'][0]['id']) . '_collapsible_header'; ?> " class="collapsible-header" style=""><i class=""></i><?php echo sanitize_text_field($ig['text']); ?> </div> </div> <div class="col m2" style="padding:0;"> <button id="<?php echo esc_attr($copy_btn); ?> " class="<?php echo isset($ig['multiple']) ? 'btnsx-duplicate btnsx-btn-add' : ''; echo isset($ig['copy']) ? ' btnsx-copy ' : ''; echo isset($ig['clone_class']) ? ' btn-' . esc_attr($ig['clone_class']) : ''; ?> " data-highlight="<?php echo isset($ig['copy_ids']['highlight']) ? $ig['copy_ids']['highlight'] : ''; ?> " data-old-input="<?php echo isset($ig['copy_ids']['old_input']) ? $ig['copy_ids']['old_input'] : ''; ?> " data-new-input="<?php echo isset($ig['copy_ids']['new_input']) ? $ig['copy_ids']['new_input'] : ''; ?> " data-old-select="<?php echo isset($ig['copy_ids']['old_select']) ? $ig['copy_ids']['old_select'] : ''; ?> " data-new-select="<?php echo isset($ig['copy_ids']['new_select']) ? $ig['copy_ids']['new_select'] : ''; ?> " data-old-color="<?php echo isset($ig['copy_ids']['old_color']) ? $ig['copy_ids']['old_color'] : ''; ?> " data-new-color="<?php echo isset($ig['copy_ids']['new_color']) ? $ig['copy_ids']['new_color'] : ''; ?> "><?php echo isset($ig['multiple']) ? __('Add More', 'buttons-x') : ''; echo isset($ig['copy_text']) && $ig['copy_text'] === 'normal' ? __('Copy to normal', 'buttons-x') : ''; echo isset($ig['copy_text']) && $ig['copy_text'] === 'hover' ? __('Copy to hover', 'buttons-x') : ''; ?> </button> </div> </div> <?php } elseif ($multiple === true && $copy === true) { ?> <div class="row"> <div class="col m8" style="padding:0;"> <div id="<?php echo esc_attr($collapsible_header); ?> " id="<?php echo esc_attr($ig['elements'][0]['id']) . '_collapsible_header'; ?> " class="collapsible-header" style=""><i class=""></i><?php echo sanitize_text_field($ig['text']); ?> </div> </div> <div class="col m2" style="padding:0;"> <button id="<?php echo esc_attr($copy_btn); ?> " class="<?php echo isset($ig['copy']) ? ' btnsx-copy ' : ''; ?> " data-highlight="<?php echo isset($ig['copy_ids']['highlight']) ? $ig['copy_ids']['highlight'] : ''; ?> " data-old-input="<?php echo isset($ig['copy_ids']['old_input']) ? $ig['copy_ids']['old_input'] : ''; ?> " data-new-input="<?php echo isset($ig['copy_ids']['new_input']) ? $ig['copy_ids']['new_input'] : ''; ?> " data-old-select="<?php echo isset($ig['copy_ids']['old_select']) ? $ig['copy_ids']['old_select'] : ''; ?> " data-new-select="<?php echo isset($ig['copy_ids']['new_select']) ? $ig['copy_ids']['new_select'] : ''; ?> " data-old-color="<?php echo isset($ig['copy_ids']['old_color']) ? $ig['copy_ids']['old_color'] : ''; ?> " data-new-color="<?php echo isset($ig['copy_ids']['new_color']) ? $ig['copy_ids']['new_color'] : ''; ?> "><?php echo isset($ig['copy_text']) && $ig['copy_text'] === 'normal' ? __('Copy to normal', 'buttons-x') : ''; echo isset($ig['copy_text']) && $ig['copy_text'] === 'hover' ? __('Copy to hover', 'buttons-x') : ''; ?> </button> </div> <div class="col m2" style="padding:0;"> <button id="<?php echo esc_attr($copy_btn); ?> " class="<?php echo isset($ig['multiple']) ? 'btnsx-duplicate btnsx-btn-add' : ''; echo isset($ig['clone_class']) ? ' btn-' . esc_attr($ig['clone_class']) : ''; ?> "><?php echo isset($ig['multiple']) ? __('Add More', 'buttons-x') : ''; ?> </button> </div> </div> <?php } else { ?> <div id="<?php echo esc_attr($collapsible_header); ?> " class="collapsible-header"><i class=""></i><?php echo sanitize_text_field($ig['text']); ?> </div> <?php } ?> <div id="<?php echo esc_attr($collapsible_body); ?> " class="collapsible-body"> <div class="row btnsx-collapsible-content-padding"> <?php if (isset($ig['elements']) && $ig['elements'] != NULL) { foreach ($ig['elements'] as $el) { $btnsx_form = new BtnsxFormElements(); $btnsx_form->input(array('type' => isset($el['type']) ? $el['type'] : NULL, 'cpt' => isset($el['cpt']) ? $el['cpt'] : NULL, 'id' => isset($el['id']) ? $el['id'] : NULL, 'placeholder' => isset($el['placeholder']) ? $el['placeholder'] : NULL, 'label' => isset($el['label']) ? $el['label'] : NULL, 'tooltip' => isset($el['tooltip']) ? $el['tooltip'] : NULL, 'name' => isset($el['name']) ? $el['name'] : NULL, 'class' => isset($el['class']) ? $el['class'] : NULL, 'multiselect' => isset($el['multiselect']) ? $el['multiselect'] : NULL, 'title' => isset($el['title']) ? $el['title'] : NULL, 'min' => isset($el['min']) ? $el['min'] : NULL, 'max' => isset($el['max']) ? $el['max'] : NULL, 'step' => isset($el['step']) ? $el['step'] : NULL, 'on_text' => isset($el['on_text']) ? $el['on_text'] : __('On', 'buttons-x'), 'off_text' => isset($el['off_text']) ? $el['off_text'] : __('Off', 'buttons-x'), 'data' => isset($el['data']) ? $el['data'] : NULL, 'value' => isset($el['value']) ? $el['value'] : NULL, 'options' => isset($el['options']) ? $el['options'] : array(), 'copy' => isset($el['copy']) ? $el['copy'] : NULL, 'copy_text' => isset($el['copy_text']) ? $el['copy_text'] : NULL, 'copy_ids' => isset($el['copy_ids']) ? $el['copy_ids'] : array(), 'pro' => isset($el['pro']) ? $el['pro'] : FALSE)); } } ?> </div> </div> </li> <?php } } echo '</ul></section>'; $j++; } }
/** * Adds a box to the side column on Buttons edit screens. * @since 1.3 * @return string */ public function preview_settings_callback($post) { // Add a nonce field so we can check for it later. wp_nonce_field('btnsx_preview_settings_meta', 'btnsx_preview_settings_meta_nonce'); $meta_values = array(); $meta_values = get_post_meta($post->ID, 'btnsx', true); $btnsx_form = new BtnsxFormElements(); echo '<div style="min-height:150px;"><div class="btnsx btnsx-side">'; echo $btnsx_form->input(array('type' => 'color', 'id' => 'btnsx_opt_preview_background', 'name' => 'btnsx_opt_preview_background', 'placeholder' => ' ', 'label' => __('Background Color', 'buttons-x'), 'value' => $this->meta_values($post->ID, array('field' => 'btnsx_preview_background')), 'tooltip' => __('Changing the color will change the preview background. If you intend to use this button on a coloured background then changing the preview background will give you exact look of the button over a color.', 'buttons-x'))); echo '<br>'; echo $btnsx_form->input(array('type' => 'preview-bg-img-banner')); echo '</div></div>'; }