/** * Text input hidden * @param type $element * @return type */ static function render($element) { $element = parent::get_extra_info($element); $label = parent::get_label($element); $output = "<input type='hidden' id='{$element['id']}' class='{$element['class']}' value='{$element['std']}' DATA_INFO />"; return parent::final_element($element, $output, $label); }
/** * Label * @param type $element * @return string */ static function render($element) { $element = parent::get_extra_info($element); $label = parent::get_label($element); $output = "<span class='add-on input-group-addon {$element['class']}'>{$element['std']}</span>"; return parent::final_element($element, $output, $label); }
/** * jsn select fonts element * @param type $element * @return string */ static function render($element) { $selected_value = $element['std']; $options = $element['options']; $output = ''; $label = ''; if (is_array($options) && count($options) > 0) { $element['exclude_class'] = array('form-control'); $element = parent::get_extra_info($element); $label = parent::get_label($element); $output = "<select id='{$element['id']}' name='{$element['id']}' class='jsn-fontFaceType {$element['class']}' data-selected='{$selected_value}' value='{$selected_value}' >"; foreach ($options as $key => $value) { if (!is_numeric($key)) { $option_value = $key; } else { $option_value = $value; } $selected = $option_value == $selected_value ? 'selected' : ''; $output .= "<option value='{$option_value}' {$selected}>{$value}</option>"; } $output .= '</select>'; } add_filter('ig-edit-element-required-assets', array(__CLASS__, 'enqueue_assets_modal'), 9); return parent::final_element($element, $output, $label); }
/** * List of other option types ( checkbox, select... ) * @param type $element * @return type */ static function render($element) { $element = parent::get_extra_info($element); $label = parent::get_label($element); $options_type = isset($element['options_type']) ? $element['options_type'] : ''; $ul_wrap = isset($element['ul_wrap']) ? $element['ul_wrap'] : true; $output = ''; $element_clone = $element; $element_clone['wrapper_item_start'] = "<li class='jsn-item jsn-iconbar-trigger'>"; $element_clone['wrapper_item_end'] = '</li>'; $element_clone['blank_output'] = '1'; $element['class'] = str_replace('form-control', '', $element['class']); $element_clone['class'] = (isset($element['class']) ? $element['class'] : '') . ' ' . $options_type; // re-arrange $element['options'] array by the order of value in $element['std'] $element_clone['std'] = str_replace(',', '__#__', $element_clone['std']); if (!isset($element_clone['no_order'])) { $std_val = explode('__#__', $element_clone['std']); $std = array(); foreach ($std_val as $value) { if (trim($value) != '' && isset($element_clone['options'][$value])) { $std[$value] = $element_clone['options'][$value]; } } // other option value which is not defined in std foreach ($element_clone['options'] as $key => $value) { if (!in_array($key, $std_val)) { $std[$key] = $value; } } $element_clone['options'] = $std; } $output = IG_Pb_Helper_Shortcode::render_parameter($options_type, $element_clone); $output = $ul_wrap ? "<ul class='jsn-items-list ui-sortable'>{$output}</ul>" : $output; return parent::final_element($element, $output, $label); }
/** * Horizonal slider to select a numeric value * @param type $element * @return type */ static function render($element) { $element = parent::get_extra_info($element); $label = parent::get_label($element); $std_max = empty($element['std_max']) ? 100 : $element['std_max']; $output = '<script> ( function ($ ) { $( document ).ready( function () { $( "#' . $element['id'] . '_slider" ).slider({ range: "min", value: ' . $element['std'] . ', min: 1, max: ' . $std_max . ', slide: function ( event, ui ) { $( "#' . $element['id'] . '" ).val( ui.value ).change(); } }); }); })( jQuery ) </script>'; $output .= '<div id="' . $element['id'] . '_slider" class="' . $element['class'] . '" ></div>'; $output .= '<input type="hidden" id="' . $element['id'] . '" value="' . $element['std'] . '" />'; return parent::final_element($element, $output, $label); }
/** * hr element * @param type $element * @return string */ static function render($element) { $element = parent::get_extra_info($element); $label = parent::get_label($element); $output = '<hr DATA_INFO />'; return parent::final_element($element, $output, $label); }
/** * Icons * @param type $element * @return string */ static function render($element) { $element = parent::get_extra_info($element); $label = parent::get_label($element); $output = "<div id='icon_selector'>\n\t\t\t<input type='hidden' value='{$element['std']}' id='{$element['id']}' name='{$element['id']}' DATA_INFO />\n\t\t</div>"; add_filter('ig-edit-element-required-assets', array(__CLASS__, 'enqueue_assets_modal'), 0); return parent::final_element($element, $output, $label); }
/** * Simple Input text * @param type $element * @return string */ static function render($element) { $element = parent::get_extra_info($element); $label = parent::get_label($element); $type = !empty($element['input_type']) ? $element['input_type'] : 'text'; $output = "<input type='{$type}' class='{$element['class']}' value='{$element['std']}' id='{$element['id']}' name='{$element['id']}' DATA_INFO />"; return parent::final_element($element, $output, $label); }
/** * Selectbox of Google Map Destination * @param type $element * @return type */ static function render($element) { $element = parent::get_extra_info($element); $label = parent::get_label($element); $output = "<div id='{$element['id']}_wrapper' class='ig-destination-wrapper'><select id=\"select_{$element['id']}\"><option value=\"none\">" . __('None', IGPBL) . '</option></select></div>'; $output .= "<div class='image_loader'></div>"; $output .= "<input type='hidden' id='{$element['id']}' class='{$element['class']}' value='{$element['std']}' DATA_INFO />"; return parent::final_element($element, $output, $label); }
/** * gradient picker * @param type $element */ static function render($element) { $element = parent::get_extra_info($element); $label = parent::get_label($element); $output = "<input type='hidden' class='jsn-grad-ex' id='{$element['id']}' name='{$element['id']}' value='{$element['std']}' DATA_INFO />"; $output .= "<div class='classy-gradient-box'></div>"; add_filter('ig-edit-element-required-assets', array(__CLASS__, 'enqueue_assets_modal'), 0); return parent::final_element($element, $output, $label); }
/** * Tag * @param type $element * @return string */ static function render($element) { $element['exclude_class'] = array('form-control'); $element = parent::get_extra_info($element); $label = parent::get_label($element); $element['class'] = $element['class'] ? $element['class'] . ' select2' : 'select2'; $output = "<input type='hidden' value='{$element['std']}' id='{$element['id']}' class='{$element['class']}' data-share='ig_share_data' DATA_INFO />"; add_filter('ig-edit-element-required-assets', array(__CLASS__, 'enqueue_assets_modal'), 9); return parent::final_element($element, $output, $label); }
/** * Button * @param type $element * @return string */ static function render($element) { $element = parent::get_extra_info($element); $label = parent::get_label($element); $element['class'] = $element['class'] ? $element['class'] . ' btn' : 'btn'; $action_type = isset($element['action_type']) ? " data-action-type = '{$element["action_type"]}' " : ''; $action = isset($element['action']) ? " data-action = '{$element["action"]}' " : ''; $output = "<button class='{$element['class']}' {$action_type} {$action}>{$element['std']}</button>"; return parent::final_element($element, $output, $label); }
/** * Button group * @param type $element * @return string */ static function render($element) { $element = parent::get_extra_info($element); $label = parent::get_label($element); $output = "<div class='btn-group'>\n\t\t <a class='btn btn-default dropdown-toggle' data-toggle='dropdown' href='#'>\n\t\t\t" . __('Convert to', IGPBL) . "...\n\t\t\t<span class='caret'></span>\n\t\t </a>\n\t\t <ul class='dropdown-menu'>"; foreach ($element['actions'] as $action) { $output .= "<li><a href='#' data-action = '{$action["action"]}' data-action-type = '{$action["action_type"]}'>{$action['std']}</a></li>"; } $output .= '</ul></div>'; return parent::final_element($element, $output, $label); }
/** * Color picker * @param type $element * @return string */ static function render($element) { $element = parent::get_extra_info($element); $label = parent::get_label($element); $bg_color = $element['std'] ? $element['std'] : '#000'; $_hidden = isset($element['hide_value']) && $element['hide_value'] == false ? 'type="text"' : 'type="hidden"'; $output = '<input ' . $_hidden . " size='10' id='{$element['id']}' class='input-mini' disabled='disabled' name='{$element['id']}' value='{$element['std']}' DATA_INFO />"; $output .= "<div id='color-picker-{$element['id']}' class='color-selector'><div style='background-color: {$bg_color}'></div></div>"; add_filter('ig-edit-element-required-assets', array(__CLASS__, 'enqueue_assets_modal'), 9); return parent::final_element($element, $output, $label); }
/** * Selectbox to select font * @param type $element * @return type */ static function render($element) { $selected_value = $element['std']; $element['exclude_class'] = array('form-control'); $element = parent::get_extra_info($element); $label = parent::get_label($element); $output = "<select id='{$element['id']}' class='jsn-fontFace {$element['class']}' data-selected='{$selected_value}' value='{$selected_value}'>"; $output .= "<option value='{$selected_value}' selected='selected'>{$selected_value}</option>"; $output .= '</select>'; return parent::final_element($element, $output, $label); }
/** * Textarea option * @param type $element * @return type */ static function render($element) { $element = parent::get_extra_info($element); $label = parent::get_label($element); $element['row'] = isset($element['row']) ? $element['row'] : '8'; $element['col'] = isset($element['col']) ? $element['col'] : '50'; if ($element['exclude_quote'] == '1') { $element['std'] = str_replace('<ig_quote>', '"', $element['std']); } $output = "<textarea class='{$element['class']}' id='{$element['id']}' rows='{$element['row']}' cols='{$element['col']}' name='{$element['id']}' DATA_INFO>{$element['std']}</textarea>"; return parent::final_element($element, $output, $label); }
/** * Input field to select Media * @param type $element * @return type */ static function render($element) { $element = parent::get_extra_info($element); $label = parent::get_label($element); $_filter_type = isset($element['filter_type']) ? $element['filter_type'] : 'image'; $output = '<div class="input-append row-fluid input-group"> <input type="text" class="' . $element['class'] . '" value="' . $element['std'] . '" id="' . $element['id'] . '"> <span class="input-group-addon select-media btn btn-default" filter_type="' . $_filter_type . '" id="' . $element['id'] . '_button">...</span> <span class="input-group-addon select-media-remove btn btn-default"><i class="icon-remove"></i></span> </div>'; return parent::final_element($element, $output, $label); }
/** * Dimension type, which defines Width, Height of element * @param type $element * @param type $input_params * @return type */ static function render($element, $input_params) { $element = parent::get_extra_info($element); $label = parent::get_label($element); $element['dimension_elements'] = isset($element['dimension_elements']) ? explode(',', str_replace(' ', '', $element['dimension_elements'])) : array('w', 'h'); $_no_prefix_id = str_replace('param-', '', $element['id']); $output = ''; if (in_array('w', $element['dimension_elements'])) { $_idx_width = $_no_prefix_id . '_width'; $_idx_width_unit = $_no_prefix_id . '_width_unit'; $element['width_std'] = isset($element[$_idx_width]) ? $element[$_idx_width]['std'] : ''; $element['width_std'] = isset($input_params[$_idx_width]) ? $input_params[$_idx_width] : $element['width_std']; // Width and Width unit $_width = array('id' => $element['id'] . '_width', 'type' => 'text_append', 'input_type' => 'number', 'class' => 'jsn-input-number input-mini input-sm', 'parent_class' => 'input-group-inline', 'std' => $element['width_std'], 'append_before' => 'W', 'validate' => 'number', 'bound' => '0'); if (isset($element[$_idx_width_unit])) { $element['width_unit_std'] = isset($element[$_idx_width_unit]) ? $element[$_idx_width_unit]['std'] : ''; $element['width_unit_std'] = isset($input_params[$_idx_width_unit]) ? $input_params[$_idx_width_unit] : $element['width_unit_std']; $_w_unit = array('id' => $element['id'] . '_width_unit', 'type' => 'select', 'class' => 'input-mini input-sm', 'bound' => '0'); $_w_unit = array_merge($_w_unit, $element[$_idx_width_unit]); $_w_unit['std'] = $element['width_unit_std']; $_append = ''; } else { $_width = array_merge($_width, array('append' => 'px')); } $output .= IG_Pb_Helper_Shortcode::render_parameter('text_append', $_width); $output .= isset($element[$_idx_width_unit]) ? IG_Pb_Helper_Shortcode::render_parameter('select', $_w_unit) : ''; } // Height and Height Unit if (in_array('h', $element['dimension_elements'])) { $_idx_height = $_no_prefix_id . '_height'; $_idx_height_unit = $_no_prefix_id . '_height_unit'; $element['height_std'] = isset($element[$_idx_height]) ? $element[$_idx_height]['std'] : ''; $element['height_std'] = isset($input_params[$_idx_height]) ? $input_params[$_idx_height] : $element['height_std']; $_append = 'px'; $_height = array('id' => $element['id'] . '_height', 'input_type' => 'number', 'class' => 'jsn-input-number input-mini input-sm', 'parent_class' => 'input-group-inline', 'std' => $element['height_std'], 'append_before' => 'H', 'validate' => 'number', 'bound' => '0'); if (isset($element[$_idx_height_unit])) { $element['height_unit_std'] = isset($element[$_idx_width_unit]) ? $element[$_idx_width_unit]['std'] : ''; $element['height_unit_std'] = isset($input_params[$_idx_width_unit]) ? $input_params[$_idx_width_unit] : $element['width_unit_std']; $_h_unit = array('id' => $element['id'] . '_height_unit', 'type' => 'select', 'class' => 'input-mini input-sm', 'bound' => '0'); $_h_unit = array_merge($_h_unit, $element[$_idx_height_unit]); $_h_unit['std'] = $element['height_unit_std']; $_append = ''; } else { $_height = array_merge($_height, array('append' => 'px')); } $output .= IG_Pb_Helper_Shortcode::render_parameter('text_append', $_height); $output .= isset($element[$_idx_height_unit]) ? IG_Pb_Helper_Shortcode::render_parameter('select', $_h_unit) : ''; } return parent::final_element($element, $output, $label); }
/** * Render editor using jquery-te library * * @param type $element * @return type */ static function render($element) { $element = parent::get_extra_info($element); $label = parent::get_label($element); $element['row'] = isset($element['row']) ? $element['row'] : '8'; $element['col'] = isset($element['col']) ? $element['col'] : '50'; if ($element['exclude_quote'] == '1') { $element['std'] = str_replace('<ig_quote>', '"', $element['std']); } $output = "<textarea class='{$element['class']} ig_pb_editor' id='{$element['id']}' rows='{$element['row']}' cols='{$element['col']}' name='{$element['id']}' DATA_INFO>{$element['std']}</textarea>"; add_filter('ig_pb_assets_register_modal', array(__CLASS__, 'register_assets_register_modal')); add_filter('ig-edit-element-required-assets', array(__CLASS__, 'enqueue_assets_modal'), 9); return parent::final_element($element, $output, $label, true); }
/** * Text input which has prefix/postfix Bootstrap add-on * * @param type $element * * @return type */ static function render($element) { $element = parent::get_extra_info($element); $label = parent::get_label($element); //$ext_class = ( isset( $element['append_before'] ) ) ? 'input-prepend' : ''; //$ext_class .= ( isset( $element['append'] ) ) ? ' input-append' : ''; $ext_class = isset($element['append_before']) || isset($element['append']) ? 'input-group col-xs-2 ' : ''; $ext_class .= isset($element['specific_class']) ? $element['specific_class'] : ''; $output = "<div class='{$ext_class}'>"; $output .= isset($element['append_before']) ? "<span class='add-on input-group-addon'>{$element['append_before']}</span>" : ''; $output .= "<input type='{$element['type_input']}' class='{$element['class']}' value='{$element['std']}' id='{$element['id']}' name='{$element['id']}' DATA_INFO />"; $output .= isset($element['append']) ? "<span class='add-on input-group-addon'>{$element['append']}</span>" : ''; $output .= '</div>'; return parent::final_element($element, $output, $label); }
/** * Radio Button group * @param type $element * @return string */ static function render($element) { $element = parent::get_extra_info($element); $label = parent::get_label($element); $output = "<div class='btn-group ig-btn-group' data-toggle='buttons'>"; foreach ($element['options'] as $key => $text) { $active = $key == $element['std'] ? 'active' : ''; $checked = $key == $element['std'] ? 'checked' : ''; $output .= "<label class='btn btn-default {$active}'>"; $output .= "<input type='radio' name='{$element['id']}' {$checked} id='{$element['id']}' value='{$key}'/>"; $output .= $text; $output .= "</label>"; } $output .= '</div>'; return parent::final_element($element, $output, $label); }
/** * Checkbox option * @param type $element * @return type */ static function render($element) { $element = parent::get_extra_info($element); $label = parent::get_label($element); $type = isset($element['input_type']) ? $element['input_type'] : 'checkbox'; $element['std'] = explode('__#__', $element['std']); $output = $add_class = $linebreak = ''; $_class = !empty($element['class']) ? $element['class'] : 'checkbox inline'; $_class = str_replace('form-control', '', $_class); $_ig_has_depend = !empty($element['has_depend']) && $element['has_depend'] == '1' ? ' ig_has_depend' : ''; foreach ($element['options'] as $key => $text) { $checked = in_array($key, $element['std']) || $element['std'][0] == 'all' ? 'checked' : ''; $action_item = ''; if (isset($element['popover_items']) && is_array($element['popover_items'])) { $action_item = in_array($key, $element['popover_items']) ? "data-popover-item='yes'" : ''; } if (isset($element['label_type'])) { if ($element['label_type'] == 'image') { // hide radio button $add_class = ' hidden'; $option_html = ''; $dimension = $element['dimension']; $width_height = "width:{$dimension[0]}px;height:{$dimension[1]}px;"; if (!is_array($text)) { $option_html .= "<span style='{$width_height}' class='radio_image'></span>"; } else { $linebreak = isset($text['linebreak']) ? '<br>' : ''; $background = isset($text['img']) ? "background-image:url( {$text['img']} )" : ''; $option_html .= "<span style='{$width_height} {$background}' title='{$text[0]}' class='radio_image'></span>"; } $text = $option_html; } } $str = "<label class='" . $_class . "'><input class='{$_ig_has_depend}{$add_class}' type='" . $type . "' value='{$key}' id='{$element['id']}' name='{$element['id']}' {$checked} DATA_INFO {$action_item}/>{$text}</label>{$linebreak}"; if (isset($element['wrapper_item_start'])) { $str = $element['wrapper_item_start'] . $str; } if (isset($element['wrapper_item_end'])) { $str = $str . $element['wrapper_item_end']; } $output .= $str; } if ($type == 'checkbox') { $output .= "<input type='hidden' value=' ' id='{$element['id']}' name='{$element['id']}' />"; } return parent::final_element($element, $output, $label); }
/** * Option to Define top/right/bottom/left margin for element * @param type $element * @param type $input_params * @return type */ static function render($element, $input_params) { $element = parent::get_extra_info($element); $label = parent::get_label($element); $_no_prefix_id = str_replace('param-', '', $element['id']); // Set default margin element // t: top // r: right // b: bottom // l: left $element['margin_elements'] = isset($element['margin_elements']) ? explode(',', str_replace(' ', '', $element['margin_elements'])) : array('t', 'r', 'b', 'l'); $output = ''; $_br = false; if (in_array('t', $element['margin_elements'])) { $_idx_top = $_no_prefix_id . '_top'; $_br = true; $element['top_std'] = isset($element[$_idx_top]) ? $element[$_idx_top]['std'] : ''; $element['top_std'] = isset($input_params[$_idx_top]) ? $input_params[$_idx_top] : $element['top_std']; $_top = array('id' => $element['id'] . '_top', 'type' => 'text_append', 'input_type' => 'number', 'class' => 'jsn-input-number input-mini', 'parent_class' => 'input-group-inline', 'std' => $element['top_std'], 'append_before' => '<i class="icon-arrow-up"></i>', 'append' => 'px', 'validate' => 'number', 'bound' => '0'); $output .= IG_Pb_Helper_Shortcode::render_parameter('text_append', $_top); } if (in_array('r', $element['margin_elements'])) { $_idx_right = $_no_prefix_id . '_right'; $_br = true; $element['right_std'] = isset($element[$_idx_right]) ? $element[$_idx_right]['std'] : ''; $element['right_std'] = isset($input_params[$_idx_right]) ? $input_params[$_idx_right] : $element['right_std']; $_right = array('id' => $element['id'] . '_right', 'input_type' => 'number', 'class' => 'jsn-input-number input-mini', 'parent_class' => 'input-group-inline', 'std' => $element['right_std'], 'append_before' => '<i class="icon-arrow-right"></i>', 'append' => 'px', 'validate' => 'number', 'bound' => '0'); $output .= IG_Pb_Helper_Shortcode::render_parameter('text_append', $_right); } $output .= $_br ? '<div class="clearbreak"></div>' : ''; if (in_array('b', $element['margin_elements'])) { $_idx_bottom = $_no_prefix_id . '_bottom'; $element['bottom_std'] = isset($element[$_idx_bottom]) ? $element[$_idx_bottom]['std'] : ''; $element['bottom_std'] = isset($input_params[$_idx_bottom]) ? $input_params[$_idx_bottom] : $element['bottom_std']; $_bottom = array('id' => $element['id'] . '_bottom', 'input_type' => 'number', 'class' => 'jsn-input-number input-mini', 'parent_class' => 'input-group-inline', 'std' => $element['bottom_std'], 'append_before' => '<i class="icon-arrow-down"></i>', 'append' => 'px', 'validate' => 'number', 'bound' => '0'); $output .= IG_Pb_Helper_Shortcode::render_parameter('text_append', $_bottom); } if (in_array('l', $element['margin_elements'])) { $_idx_left = $_no_prefix_id . '_left'; $element['left_std'] = isset($element[$_idx_left]) ? $element[$_idx_left]['std'] : ''; $element['left_std'] = isset($input_params[$_idx_left]) ? $input_params[$_idx_left] : $element['left_std']; $_left = array('id' => $element['id'] . '_left', 'input_type' => 'number', 'class' => 'jsn-input-number input-mini', 'parent_class' => 'input-group-inline', 'std' => $element['left_std'], 'append_before' => '<i class="icon-arrow-left"></i>', 'append' => 'px', 'validate' => 'number', 'bound' => '0'); $output .= IG_Pb_Helper_Shortcode::render_parameter('text_append', $_left); } return parent::final_element($element, $output, $label); }
/** * List of "items_list" * @param type $element * @return type */ static function render($element) { $element = parent::get_extra_info($element); $label = parent::get_label($element); $output = ''; $items = isset($element['items']) ? $element['items'] : ''; if (is_array($items)) { foreach ($items as $element_) { $element_func = $element_['type']; $element_['wrap'] = '0'; $element_['wrap_class'] = ''; $element_['std'] = $element['std']; $element_['id'] = $element['id']; $output .= IG_Pb_Helper_Shortcode::render_parameter($element_func, $element_); } } return parent::final_element($element, $output, $label); }
/** * select box * @param type $element * @return string */ static function render($element) { $selected_value = $element['std']; $options = $element['options']; $output = ''; $label = ''; if (is_array($options) && count($options) > 0) { $element = parent::get_extra_info($element); $label = parent::get_label($element); $multiple = isset($element['multiple']) ? 'multiple="multiple"' : ''; // Add default select2 for all select html type $element['class'] .= ' select2-select'; $element['class'] = str_replace('form-control', '', $element['class']); $output = "<select id='{$element['id']}' name='{$element['id']}' class='{$element['class']}' {$multiple} >"; foreach ($options as $key => $value) { if (is_array($value)) { if ($value['type'] == 'optiongroup') { $output .= '<optgroup label="' . $value['text'] . '">'; } } else { $option_value = $key; $selected = $option_value == $selected_value ? 'selected' : ''; $output .= "<option value='{$option_value}' {$selected}>{$value}</option>"; } } $output .= '</select>'; if (isset($element['append_text'])) { $output .= "<span class='add-on input-group-addon'>{$element['append_text']}</span>"; } if (isset($element['multiple'])) { $output .= "<input type='hidden' id='{$element['id']}_select_multi' value='{$element['std']}' />"; } } add_filter('ig-edit-element-required-assets', array(__CLASS__, 'enqueue_assets_modal'), 9); return parent::final_element($element, $output, $label); }
/** * get HTML of Modal Settings Box of Shortcode * * @param array $options * * @return string */ static function get_shortcode_modal_settings($settings, $shortcode = '', $input_params = null, $raw_shortcode = null) { $i = 0; $tabs = $contents = $actions = $general_actions = array(); foreach ((array) $settings as $tab => $options) { $options = self::ignore_settings($options); if ($tab == 'action') { foreach ($options as $option) { $actions[] = IG_Pb_Helper_Shortcode::render_parameter($option['type'], $option); } } else { if ($tab == 'generalaction') { foreach ($options as $option) { $option['id'] = isset($option['id']) ? 'param-' . $option['id'] : ''; $general_actions[] = IG_Pb_Helper_Shortcode::render_parameter($option['type'], $option); } } else { $active = $i++ == 0 ? 'active' : ''; if (strtolower($tab) != 'notab') { $data_ = isset($settings[$tab]['settings']) ? $settings[$tab]['settings'] : array(); $data_['href'] = "#{$tab}"; $data_['data-toggle'] = 'tab'; $content_ = ucfirst($tab); $tabs[] = "<li class='{$active}'>" . self::tab_settings('a', $data_, $content_) . '</li>'; } $has_margin = 0; $param_html = array(); foreach ($options as $idx => $option) { // check if this element has Margin param (1) if (isset($option['name']) && $option['name'] == __('Margin', IGPBL) && $option['id'] != 'div_margin') { $has_margin = 1; } // if (1), don't use the 'auto extended margin ( top, bottom ) option' if ($has_margin && isset($option['id']) && $option['id'] == 'div_margin') { continue; } $type = $option['type']; $option['id'] = isset($option['id']) ? 'param-' . $option['id'] : "{$idx}"; if (!is_array($type)) { $param_html[$option['id']] = IG_Pb_Helper_Shortcode::render_parameter($type, $option, $input_params); } else { $output_inner = ''; foreach ($type as $sub_options) { $sub_options['id'] = isset($sub_options['id']) ? 'param-' . $sub_options['id'] : ''; /* for sub option, auto assign bound = 0 {not wrapped by <div class='controls'></div> } */ $sub_options['bound'] = '0'; /* for sub option, auto assign 'input-small' class */ $sub_options['class'] = isset($sub_options['class']) ? $sub_options['class'] : ''; $type = $sub_options['type']; $output_inner .= IG_Pb_Helper_Shortcode::render_parameter($type, $sub_options); } $option = IG_Pb_Helper_Html::get_extra_info($option); $label = IG_Pb_Helper_Html::get_label($option); $param_html[$option['id']] = IG_Pb_Helper_Html::final_element($option, $output_inner, $label); } } if (!empty($param_html['param-copy_style_from'])) { array_pop($param_html); // move "auto extended margin ( top, bottom ) option" to top of output $style_copy = array_shift($param_html); // Shift Preview frame from the array $preview = array_shift($param_html); if (!empty($param_html['param-div_margin'])) { $margin = $param_html['param-div_margin']; $param_html = array_merge(array($preview, $style_copy, $margin), $param_html); } else { $param_html = array_merge(array($preview, $style_copy), $param_html); } } $param_html = implode('', $param_html); $content_tab = "<div class='tab-pane {$active} ig-pb-setting-tab' id='{$tab}'>{$param_html}</div>"; $contents[] = $content_tab; } } } // Auto-append `Shortcode Content` tab if ($shortcode != 'ig_row') { self::shortcode_content_tab($tabs, $contents, $raw_shortcode); } return self::setting_tab_html($shortcode, $tabs, $contents, $general_actions, $settings, $actions); }
/** * Get HTML of Modal Settings Box of Shortcode * * @param array $settings * @param string $shortcode * @param string $input_params * * @return string */ static function getShortcodeModalSettings($settings, $shortcode = '', $input_params = null) { include_once JPATH_ROOT . '/administrator/components/com_pagebuilder/libraries/innotheme/shortcode/html.php'; $i = 0; $tabs = $contents = $actions = $general_actions = array(); foreach ($settings as $tab => $options) { $options = self::ignoreSettings($options); if ($tab == "action") { foreach ($options as $option) { $actions[] = IG_Pb_Helper_Html::$option['type']($option); } } else { if ($tab == "generalaction") { foreach ($options as $option) { $option['id'] = isset($option['id']) ? 'param-' . $option['id'] : ""; $general_actions[] = IG_Pb_Helper_Html::$option['type']($option); } } else { $active = $i++ == 0 ? "active" : ""; if ($tab != "Notab") { $data_ = isset($settings[$tab]["settings"]) ? $settings[$tab]["settings"] : array(); $data_["href"] = "#{$tab}"; $data_["data-toggle"] = "tab"; $content_ = ucfirst($tab); $tabs[] = "<li class='{$active}'>" . self::tabSettings("a", $data_, $content_) . "</li>"; } $has_margin = 0; $param_html = array(); foreach ($options as $idx => $option) { // check if this element has Margin param (1) if (isset($option['name']) && $option['name'] == JText::_('Margin') && $option['id'] != 'div_margin') { $has_margin = 1; } // if (1), don't use the 'auto extended margin ( top, bottom ) option' if ($has_margin && isset($option['id']) && $option['id'] == 'div_margin') { continue; } $type = $option['type']; $option['id'] = isset($option['id']) ? 'param-' . $option['id'] : "{$idx}"; if (!is_array($type)) { //$content_tab .= IG_Pb_Helper_Html::$type($option, $input_params); $param_html[$option['id']] = IG_Pb_Helper_Html::$type($option, $input_params); } else { $output_inner = ""; foreach ($type as $sub_options) { $sub_options['id'] = isset($sub_options['id']) ? 'param-' . $sub_options['id'] : ""; /* for sub option, auto assign bound = 0 {not wrapped by <div class="controls"></div> } */ $sub_options['bound'] = "0"; /* for sub option, auto assign 'input-small' class */ $sub_options['class'] = isset($sub_options['class']) ? $sub_options['class'] : ''; $type = $sub_options['type']; $output_inner .= IG_Pb_Helper_Html::$type($sub_options); } $option = IG_Pb_Helper_Html::get_extra_info($option); $label = IG_Pb_Helper_Html::get_label($option); //$content_tab .= IG_Pb_Helper_Html::final_element($option, $output_inner, $label); $param_html[$option['id']] = IG_Pb_Helper_Html::final_element($option, $output_inner, $label); } } if (!empty($param_html['param-div_margin'])) { $margin = $param_html['param-div_margin']; array_pop($param_html); // move "auto extended margin ( top, bottom ) option" to top of output $preview = array_shift($param_html); $param_html = array_merge(array($preview, $margin), $param_html); } $param_html = implode('', $param_html); $content_tab = "<div class='tab-pane {$active}' id='{$tab}'>"; $content_tab .= $param_html; $content_tab .= '</div>'; $contents[] = $content_tab; } } } return self::settingTabHtml($shortcode, $tabs, $contents, $general_actions, $settings, $actions); }