Example #1
0
 /**
  * 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);
 }
Example #2
0
 /**
  * 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);
 }
Example #3
0
 /**
  * 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);
 }
Example #4
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);
 }
Example #5
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 ()
				{
					$( "#' . $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);
    }
Example #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);
 }
Example #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'>\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);
 }
Example #8
0
 /**
  * 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);
 }
Example #9
0
 /**
  * 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);
 }
Example #10
0
 /**
  * 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);
 }
Example #11
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);
 }
Example #12
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='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);
 }
Example #13
0
 /**
  * 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);
 }
Example #14
0
 /**
  * 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);
 }
Example #15
0
 /**
  * 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);
 }
Example #16
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('<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);
 }
Example #17
0
    /**
     * 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);
    }
Example #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', '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);
 }
Example #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('<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);
 }
Example #20
0
 /**
  * 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);
 }
Example #21
0
 /**
  * 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);
 }
Example #22
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['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);
 }
Example #23
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', '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);
 }
Example #24
0
 /**
  * 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);
 }
Example #25
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
         $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);
 }
Example #26
0
    /**
     * generate HTML in IG 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 = IG_Pb_Helper_Shortcode::extract_params($item['std']);
                $params = IG_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 IG 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, "[ig_item_table tagname='tr_start' ][/ig_item_table]") !== false) {
                $cell_html .= '<tr>';
            } else {
                if (strpos($cell, "[ig_item_table tagname='tr_end' ][/ig_item_table]") !== false) {
                    // Delete button on right side of table
                    $action_html = $row == 0 ? '' : "<a href='#' title='" . __('Delete', IGPBL) . "' onclick='return false;' data-target='row_table' class='element-delete'><i class='icon-trash'></i></a>";
                    $cell_html .= "<{$cell_wrap} valign='middle' class='ig-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='ig-row-of-delete'>";
        for ($i = 0; $i < max($columns_count) - 1; $i++) {
            $bottom_row .= "<td><div class='jsn-iconbar'><a href='#' title='" . __('Delete', IGPBL) . "' 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', IGPBL) . '</button>
					<button class="btn btn-default table_action" data-target="table_column">' . __('Add Column', IGPBL) . '</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\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);
    }
Example #27
0
    /**
     * Get html item
     *
     * @param array $data
     *
     * @return string
     */
    public static function getElementItemHtml($data)
    {
        $default = array('element_wrapper' => '', 'modal_title' => '', 'element_type' => '', 'name' => '', 'shortcode' => '', 'shortcode_data' => '', 'content_class' => '', 'content' => '', 'action_btn' => '', 'exclude_gen_shortcode' => '', 'has_preview' => true, 'this_' => '');
        $data = array_merge($default, $data);
        extract($data);
        $input_html = '';
        $preview_html = '';
        if ($has_preview) {
            $preview_html = '<div class="shortcode-preview-container" style="display: none">
					<div class="shortcode-preview-fog"></div>
					<div class="jsn-overlay jsn-bgimage image-loading-24"></div>
				</div>';
        }
        $extra_class = 'EXTRA_CLASS';
        $custom_style = 'STYLE';
        $other_class = '';
        if (!empty($this_)) {
            $match = preg_match("/\\[{$shortcode}" . '\\s' . '([^\\]])*' . 'disabled="yes"' . '([^\\]])*' . '\\]/', $shortcode_data);
            if ($match) {
                $other_class = 'disabled';
            }
        }
        $buttons = array('edit' => '<a href="#" onclick="return false;" title="' . JText::_('JSN_PAGEBUILDER_HELPER_BUILDER_EDIT_ELEMENT') . '" data-shortcode="' . $shortcode . '" class="element-edit"><i class="icon-pencil"></i></a>', 'clone' => '<a href="#" onclick="return false;" title="' . JText::_('JSN_PAGEBUILDER_HELPER_BUILDER_DUPLICATE_ELEMENT') . '" data-shortcode="' . $shortcode . '" class="element-clone"><i class="icon-copy"></i></a>', 'delete' => '<a href="#" onclick="return false;" title="' . JText::_('JSN_PAGEBUILDER_HELPER_BUILDER_DELETE_ELEMENT') . '" class="element-delete"><i class="icon-trash"></i></a>');
        if (!empty($other_class)) {
            $buttons = array_merge($buttons, array('deactivate' => '<a href="#" onclick="return false;" title="' . JText::_('JSN_PAGEBUILDER_HELPER_BUILDER_REACTIVE_ELEMENT') . '" data-shortcode="' . $shortcode . '" class="element-deactivate"><i class="icon-checkmark"></i></a>'));
        }
        // Add drag handle
        if ($shortcode === 'pb_table_item') {
            $drag_handle_html = "";
        } else {
            $drag_handle_html = "<div class='heading'><a class='element-drag'></a></div>";
        }
        $action_btns = empty($action_btn) ? implode('', $buttons) : $buttons[$action_btn];
        if (!empty($shortcode_data) && $shortcode == 'pb_pricingtable_item_item') {
            $attrs = JSNPagebuilderHelpersShortcode::shortcodeParseAtts($shortcode_data);
            $matchtype = preg_match("/\\[{$shortcode}" . '\\s' . '([^\\]])*' . 'prtbl_item_attr_type="checkbox"' . '([^\\]])*' . '\\]/', $shortcode_data);
            if ($matchtype == 1) {
                $check_value = isset($attrs['prtbl_item_attr_value']) && $attrs['prtbl_item_attr_value'] != '' ? $attrs['prtbl_item_attr_value'] : 'no';
                $option = array('id' => 'prtbl_item_attr_type_' . $attrs['prtbl_item_attr_id'], 'type' => 'radio', 'std' => $check_value, 'options' => array('yes' => JText::_('JSN_PAGEBUILDER_HELPER_BUILDER_YES'), 'no' => JText::_('JSN_PAGEBUILDER_HELPER_BUILDER_NO')), 'parent_class' => 'no-hover-subitem prtbl_item_attr_type');
                $content = IG_Pb_Helper_Html::radio($option);
                return "<{$element_wrapper} class='jsn-item jsn-element ui-state-default shortcode-container radio-type ' {$element_type} data-name='{$name}' {$custom_style}>\n\t\t\t<textarea class='hidden {$exclude_gen_shortcode} shortcode-content' shortcode-name='{$shortcode}' data-sc-info='shortcode_content' name='shortcode_content[]' >{$shortcode_data}</textarea>\n\t\t\t{$content}\n\t\t\t</{$element_wrapper}>";
            }
        }
        // 		if (strpos($shortcode_data,'system-readmore') !== false) {
        // 		    return "<$element_wrapper id='read-more' class='jsn-item jsn-element ui-state-default jsn-iconbar-trigger shortcode-container $extra_class $other_class' $modal_title $element_type data-name='Read more' $custom_style>
        // 			<textarea class='hidden $exclude_gen_shortcode shortcode-content' shortcode-name='$shortcode' data-sc-info='shortcode_content' name='shortcode_content[]' >$shortcode_data</textarea>
        // 	        <div class='pb-plg-element'>Read more</div>
        // 			</$element_wrapper>";
        // 		} else {
        return "<{$element_wrapper} class='jsn-item jsn-element ui-state-default jsn-iconbar-trigger shortcode-container {$extra_class} {$other_class}' {$modal_title} {$element_type} data-name='{$name}' {$custom_style}>\n\n\t\t\t\t<textarea class='hidden {$exclude_gen_shortcode} shortcode-content' shortcode-name='{$shortcode}' data-sc-info='shortcode_content' name='shortcode_content[]' >{$shortcode_data}</textarea>\n\t\t\t\t{$drag_handle_html}\n\t\t        <div class='{$content_class}'>{$content}</div>\n\t\t        {$input_html}\n\t\t\t\t<div class='jsn-iconbar'>{$action_btns}</div>\n\t\t\t\t{$preview_html}\n\t\t\t\t</{$element_wrapper}>";
        //}
    }
Example #28
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)
 {
     $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);
 }
Example #29
0
 /**
  * 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);
 }