/** * 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 () { var slider_ = $( ".wr-slider" ); var input_slider = slider_.next("input").first(); slider_.slider({ range: "min", value: ' . $element['std'] . ', min: 1, max: ' . $std_max . ', slide: function ( event, ui ) { var input_slide = $(ui.handle).parent().next("input").first(); input_slide.val( ui.value ).change(); $( ui.handle ).html( "<div class=\'wr-slider-value\'>" + ui.value + "%</div>" ); }, create: function( event, ui ) { $( "#' . $element['id'] . '_slider .ui-slider-handle" ).html( "<div class=\'wr-slider-value\'>" + ' . $element['std'] . ' + "%</div>" ); } }); }); })( jQuery ) </script>'; $output .= '<div id="' . $element['id'] . '_slider" class="' . $element['class'] . '" ></div>'; $output .= '<input type="text" class="hidden" id="' . $element['id'] . '" value="' . $element['std'] . '" />'; return parent::final_element($element, $output, $label); }
/** * Simple Input Number * @param type $element * @return string */ static function render($element) { $element = parent::get_extra_info($element); $label = parent::get_label($element); $output = "<input type='number' class='{$element['class']}' value='{$element['std']}' id='{$element['id']}' name='{$element['id']}' 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('wr-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 = WR_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); }
/** * 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' class='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('wr-edit-element-required-assets', array(__CLASS__, 'enqueue_assets_modal'), 0); 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('wr-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['type_input']) ? $element['type_input'] : 'text'; $placeholder = isset($element['placeholder']) ? "placeholder='{$element['placeholder']}'" : ''; $output = "<input type='{$type}' class='{$element['class']}' value='{$element['std']}' id='{$element['id']}' name='{$element['id']}' DATA_INFO {$placeholder} />"; 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='wr-destination-wrapper'><select id=\"select_{$element['id']}\"><option value=\"none\">" . __('None', WR_PBL) . '</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); }
/** * 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='wr_share_data' DATA_INFO />"; add_filter('wr-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 wr-dropdown-toggle' href='#'>\n\t\t\t" . __('Convert to', WR_PBL) . "...\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); }
/** * 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); }
/** * 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('wr-edit-element-required-assets', array(__CLASS__, 'enqueue_assets_modal'), 9); 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); }
/** * 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('<wr_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); }
/** * 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', 'type_input' => 'number', 'class' => 'jsn-input-number input-mini input-sm', 'parent_class' => 'input-group-inline', 'std' => $element['width_std'], 'append_before' => 'Width', '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 .= WR_Pb_Helper_Shortcode::render_parameter('text_append', $_width); $output .= isset($element[$_idx_width_unit]) ? WR_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', 'type_input' => 'number', 'class' => 'jsn-input-number input-mini input-sm', 'parent_class' => 'input-group-inline', 'std' => $element['height_std'], 'append_before' => 'Height', '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 .= WR_Pb_Helper_Shortcode::render_parameter('text_append', $_height); $output .= isset($element[$_idx_height_unit]) ? WR_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('<wr_quote>', '"', $element['std']); } $output = "<textarea class='{$element['class']} wr_pb_editor' id='{$element['id']}' rows='{$element['row']}' cols='{$element['col']}' name='{$element['id']}' DATA_INFO>{$element['std']}</textarea>"; add_filter('wr_pb_assets_register_modal', array(__CLASS__, 'register_assets_register_modal')); add_filter('wr-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-1 ' : ''; $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); }
/** * text area with WYSIWYG * @param type $element * @return type */ static function render($element) { $element = parent::get_extra_info($element); $label = parent::get_label($element); $rows = isset($element['rows']) ? $element['rows'] : 10; if (isset($element['exclude_quote']) && $element['exclude_quote'] == '1') { $element['std'] = str_replace('<wr_quote>', '"', $element['std']); } $settings = array('textarea_name' => $element['id'], 'textarea_rows' => $rows, 'editor_class' => 'wr_pb_editor'); ob_start(); echo "<form id='wr_tiny_mce' class='wr_tiny_mce' method='post'>"; wp_editor($element['std'], $element['id'], $settings); echo "</form>"; $output = ob_get_clean(); return parent::final_element($element, $output, $label, true); }
/** * 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 wr-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['type_input']) ? $element['type_input'] : 'checkbox'; $element['std'] = explode('__#__', $element['std']); $output = $add_class = $linebreak = ''; $_class = !empty($element['class']) ? $element['class'] : 'checkbox inline'; $_class = str_replace('form-control', '', $_class); $_wr_has_depend = !empty($element['has_depend']) && $element['has_depend'] == '1' ? ' wr_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='{$_wr_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); }
/** * 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 if (!isset($element['disable_select2'])) { $element['class'] .= ' select2-select'; } $element['class'] = str_replace('form-control', '', $element['class']); // Check selected value has exists in default options $new_option = ''; if (!empty($element['options']) && !empty($selected_value)) { if (!array_key_exists($selected_value, $element['options'])) { $new_option = "<option value='{$selected_value}' selected>{$selected_value}</option>"; } } $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 .= $new_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('wr-edit-element-required-assets', array(__CLASS__, 'enqueue_assets_modal'), 9); 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', 'type_input' => 'number', 'class' => 'jsn-input-number input-mini', 'parent_class' => 'input-group-inline', 'std' => $element['top_std'], 'append_before' => '<i class="input-mini wr-label-prefix">' . __('Top', WR_PBL) . '</i>', 'append' => 'px', 'validate' => 'number', 'bound' => '0'); $output .= WR_Pb_Helper_Shortcode::render_parameter('text_append', $_top); } 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', 'type_input' => 'number', 'class' => 'jsn-input-number input-mini', 'parent_class' => 'input-group-inline', 'std' => $element['left_std'], 'append_before' => '<i class="input-mini wr-label-prefix">' . __('Left', WR_PBL) . '</i>', 'append' => 'px', 'validate' => 'number', 'bound' => '0'); $output .= WR_Pb_Helper_Shortcode::render_parameter('text_append', $_left); } $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', 'type_input' => 'number', 'class' => 'jsn-input-number input-mini', 'parent_class' => 'input-group-inline', 'std' => $element['bottom_std'], 'append_before' => '<i class="input-mini wr-label-prefix">' . __('Bottom', WR_PBL) . '</i>', 'append' => 'px', 'validate' => 'number', 'bound' => '0'); $output .= WR_Pb_Helper_Shortcode::render_parameter('text_append', $_bottom); } 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', 'type_input' => 'number', 'class' => 'jsn-input-number input-mini', 'parent_class' => 'input-group-inline', 'std' => $element['right_std'], 'append_before' => '<i class="input-mini wr-label-prefix">' . __('Right', WR_PBL) . '</i>', 'append' => 'px', 'validate' => 'number', 'bound' => '0'); $output .= WR_Pb_Helper_Shortcode::render_parameter('text_append', $_right); } 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 .= WR_Pb_Helper_Shortcode::render_parameter($element_func, $element_); } } 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, $has_preview = false, $no_tab = false) { $i = 0; $tabs = $contents = $actions = $general_actions = array(); $icon_tab = array('content' => 'pencil-square-o', 'styling' => 'magic', 'shortcode' => 'code'); foreach ((array) $settings as $tab => $options) { $options = self::ignore_settings($options); if ($tab == 'action') { foreach ($options as $option) { $actions[] = WR_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[] = WR_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); $icon = isset($icon_tab[$tab]) ? sprintf('<i class="fa fa-%s"></i>', $icon_tab[$tab]) : ''; $tabs[] = "<li class='{$active}'>" . self::tab_settings('a', $data_, $icon . $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', WR_PBL) && $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)) { // Exclude preview field if ($type != 'preview') { $param_html[$option['id']] = WR_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 .= WR_Pb_Helper_Shortcode::render_parameter($type, $sub_options); } $option = WR_Pb_Helper_Html::get_extra_info($option); $label = WR_Pb_Helper_Html::get_label($option); $param_html[$option['id']] = WR_Pb_Helper_Html::final_element($option, $output_inner, $label); } } if (!empty($param_html['param-copy_style_from'])) { // move "auto extended margin ( top, bottom ) option" to top of output $style_copy = isset($param_html['param-copy_style_from']) ? $param_html['param-copy_style_from'] : ''; if (!empty($param_html['param-div_margin'])) { $margin = $param_html['param-div_margin']; $param_html = array_merge(array($style_copy, $margin), $param_html); unset($param_html['param-copy_style_from']); unset($param_html['param-div_margin']); } else { $param_html = array_merge(array($style_copy), $param_html); unset($param_html['param-copy_style_from']); } } $param_html = implode('', $param_html); $content_tab = "<div class='tab-pane {$active} wr-pb-setting-tab' id='{$tab}'>{$param_html}</div>"; $contents[] = $content_tab; } } } if ($no_tab) { return $param_html; } // Auto-append `Shortcode Content` tab if ($shortcode != 'wr_row' && $shortcode != 'wr_column') { self::shortcode_content_tab($tabs, $contents, $raw_shortcode); } return self::setting_tab_html($shortcode, $tabs, $contents, $general_actions, $settings, $actions, $has_preview); }
/** * generate HTML in WR PageBuilder for Table type * @param sub_item_type $element * @return type */ static function render($element) { $label = parent::get_label($element); $sub_items = $element['sub_items']; $sub_item_type = $element['sub_item_type']; $items_html = array(); $sample_table_item = ''; // Get HTML of Each Cell $shortcode_data_arr = array(); // Add extra params to disable drag handle $extra_params = array('drag_handle' => false); foreach ($sub_items as $idx => $item) { $element_ = new $sub_item_type(); $element_->init_element(); $shortcode_data = ''; $content = ' '; // don't leave it empty if (!empty($item['std'])) { // keep shortcode data as it is $shortcode_data = $item['std']; // reassign params for shortcode base on std string $extract_params = WR_Pb_Helper_Shortcode::extract_params($item['std']); $params = WR_Pb_Helper_Shortcode::generate_shortcode_params($element_->items, NULL, $extract_params, TRUE, FALSE, $content); $element_->shortcode_data(); if (!empty($params['extract_title'])) { $content = $params['extract_title']; $shortcode_data = $element_->config['shortcode_structure']; } $shortcode_data_arr[$idx] = $shortcode_data; } $element_type = $element_->element_in_pgbldr($content, $shortcode_data, '', '', true, $extra_params); // Create sample table item data if (!$sample_table_item) { $sample_table_item = $element_->element_in_pgbldr(null, null, '', '', true, $extra_params); } foreach ($element_type as $element_structure) { $items_html[] = $element_structure; } } // Wrap cell to a Table to display in WR PageBuilder $row = 0; $updated_html = array(); $columns_count = array(); foreach ($items_html as $idx => $cell) { if (!isset($columns_count[$row])) { $columns_count[$row] = 0; } else { $columns_count[$row]++; } $cell_html = ''; $cell_wrap = $row == 0 ? 'th' : 'td'; if (strpos($cell, "[wr_item_table tagname='tr_start' ][/wr_item_table]") !== false) { $cell_html .= '<tr>'; } else { if (strpos($cell, "[wr_item_table tagname='tr_end' ][/wr_item_table]") !== false) { // Delete button on right side of table $action_html = $row == 0 ? '' : "<a href='#' title='" . __('Delete', WR_PBL) . "' onclick='return false;' data-target='row_table' class='element-delete'><i class='icon-trash'></i></a>"; $cell_html .= "<{$cell_wrap} valign='middle' class='wr-delete-column-td'><div class='jsn-iconbar'>{$action_html}</div></{$cell_wrap}>"; $cell_html .= '</tr>'; $row++; } else { extract(shortcode_parse_atts($shortcode_data_arr[$idx])); $width = !empty($width_value) ? "width='{$width_value}{$width_type}'" : ''; $cell_html .= "<{$cell_wrap} rowspan='{$rowspan}' colspan='{$colspan}' {$width}>{$cell}</{$cell_wrap}>"; } } $updated_html[] = $cell_html; } // Delete button below the table $bottom_row = "<tr class='wr-row-of-delete'>"; for ($i = 0; $i < max($columns_count) - 1; $i++) { $bottom_row .= "<td><div class='jsn-iconbar'><a href='#' title='" . __('Delete', WR_PBL) . "' onclick='return false;' data-target='column_table' class='element-delete'><i class='icon-trash'></i></a></div></td>"; } $bottom_row .= '</tr>'; $updated_html[] = $bottom_row; $items_html = "<table class='table table-bordered igpb-table-exceprt' id='table_content'>" . implode('', $updated_html) . '</table>'; // end Wrap $buttons = '<button class="btn btn-default table_action" data-target="table_row">' . __('Add Row', WR_PBL) . '</button> <button class="btn btn-default table_action" data-target="table_column">' . __('Add Column', WR_PBL) . '</button>'; $output = "<div class='item-container has_submodal table_element'>\n\t\t\t\t\t\t<div class='jsn-fieldset-filter'><div class='btn-toolbar clearafter'>{$buttons}</div></div>\n\t\t\t\t\t\t<div class='ui-sortable item-container-content'>\n\t\t\t\t\t\t{$items_html}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>"; $sample_tmpl_id = strtolower($sub_item_type); $output .= isset($sample_table_item[0]) ? "<script id='tmpl-" . $sample_tmpl_id . "-sample' type='text/html'>" . $sample_table_item[0] . "</script>" : ''; return parent::final_element($element, $output, $label); }