Exemple #1
0
    /**
     * 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);
 }
Exemple #3
0
 /**
  * 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);
 }
Exemple #6
0
 /**
  * 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);
 }
Exemple #7
0
 /**
  * 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);
 }
Exemple #11
0
 /**
  * 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);
 }
Exemple #12
0
 /**
  * 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);
    }
Exemple #17
0
 /**
  * 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);
 }
Exemple #18
0
 /**
  * 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);
 }
Exemple #19
0
 /**
  * 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);
 }
Exemple #21
0
 /**
  * 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);
 }
Exemple #23
0
 /**
  * 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);
 }
Exemple #24
0
 /**
  * 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);
 }
Exemple #25
0
 /**
  * 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);
 }
Exemple #27
0
 /**
  * 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);
 }
Exemple #28
0
    /**
     * 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 = '&nbsp;';
            // 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);
    }