function __construct($args = array())
 {
     // SET UID IF NOT PROVIDED
     if (empty($args['uid'])) {
         $args['uid'] = zn_uid('eluid');
     }
     $this->data = $args;
 }
    function widget($args, $instance)
    {
        wp_enqueue_script('instafeed');
        extract($args);
        $title = !empty($instance['title']) ? esc_attr($instance['title']) : __('Instagram feed', 'zn_framework');
        $title = apply_filters('widget_title', $title, $instance, $this->id_base);
        $data_clientid = esc_attr(zget_option('instagram_client_id', 'general_options'));
        $data_get = isset($instance['data_get']) ? esc_attr($instance['data_get']) : 'popular';
        $data_tagname = isset($instance['data_tagname']) ? esc_attr($instance['data_tagname']) : '';
        $data_locationid = isset($instance['data_locationid']) ? esc_attr($instance['data_locationid']) : '';
        $data_userid = isset($instance['data_userid']) ? esc_attr($instance['data_userid']) : '';
        $data_accesstoken = isset($instance['data_accesstoken']) ? esc_attr($instance['data_accesstoken']) : '';
        $data_sortby = isset($instance['data_sortby']) ? esc_attr($instance['data_sortby']) : 'most-recent';
        $data_limit = isset($instance['data_limit']) ? esc_attr($instance['data_limit']) : 6;
        echo $before_widget;
        if (empty($data_clientid)) {
            echo '<div class="zn-pb-notification">Please set your Instagram Client ID into the theme options.</div>';
        } else {
            if ($title) {
                echo $before_title . $title . $after_title;
            }
            ?>
			<div class="instagramList" data-resolution='thumbnail' 
				<?php 
            echo 'id="' . zn_uid() . '"';
            echo ' data-clientid="' . $data_clientid . '"';
            echo !empty($data_limit) ? ' data-limit="' . $data_limit . '"' : '';
            echo !empty($data_get) ? ' data-get="' . $data_get . '"' : '';
            echo !empty($data_tagname) ? ' data-tagname="' . $data_tagname . '"' : '';
            echo !empty($data_locationid) ? ' data-locationid="' . $data_locationid . '"' : '';
            echo !empty($data_userid) ? ' data-userid="' . $data_accesstoken . '"' : '';
            echo !empty($data_accesstoken) ? ' data-accesstoken="' . $data_accesstoken . '"' : '';
            echo ' data-imgsize="150"';
            echo !empty($data_sortby) ? ' data-sortby="' . $data_sortby . '"' : '';
            ?>
				>
			</div>
	<?php 
        }
        echo $after_widget;
    }
 /**
  * LOADS A SINGLE PAGEBUILDER ELEMENT AND SET"S THE DEPENDENCIES
  *
  * @access public
  * @param $element array
  * @return array
  */
 function load_element($element)
 {
     // Check to see if this is a valid module
     if (!empty($element['object']) && empty($this->all_available_elements[$element['object']])) {
         return false;
     }
     // Load the module file
     if (file_exists($this->all_available_elements[$element['object']]['file'])) {
         include_once $this->all_available_elements[$element['object']]['file'];
         if (class_exists($element['object'])) {
             $element_class = new $element['object']();
             $this->loaded_modules[$element['object']] = $element_class;
         }
         // ADD THE ELEMENT TO THE $current_elements VARIABLE
         $element_class->data = $element;
         // LOAD THE REQUIRED JS FILES
         if (method_exists($element_class, 'scripts')) {
             add_action('wp_enqueue_scripts', array(&$element_class, 'scripts'));
         }
         // LOAD INLINE JS
         if ($element_class->js()) {
             ZN()->add_inline_js($element_class->js());
         }
         // LOAD INLINE CSS
         $css = $element_class->css();
         if ($css) {
             ZN()->add_inline_css($css);
         }
         if (!empty($element['content'])) {
             if (!empty($element['content']['has_multiple'])) {
                 if (isset($element['content']['has_multiple'])) {
                     unset($element['content']['has_multiple']);
                 }
                 foreach ($element['content'] as $actual_content) {
                     if (is_array($actual_content)) {
                         foreach ($actual_content as $value) {
                             $this->load_element($value);
                         }
                     }
                 }
             } else {
                 foreach ($element['content'] as $key => $value) {
                     $this->load_element($value);
                 }
             }
         }
         if (empty($element['uid'])) {
             $element['uid'] = zn_uid('eluid');
         }
         $this->instantiated_modules[$element['uid']] = $element_class;
         return $element_class;
     } else {
         return false;
     }
 }
 function before_element($element)
 {
     $size = '';
     $css_class = '';
     if ($element->info['flexible']) {
         $size = !empty($element->data['width']) ? $element->data['width'] : 'col-md-12';
         if (strpos($size, 'col-md-') === false) {
             $size = str_replace('col-sm-', 'col-md-', $size);
         }
         $actual_size = $size;
         // RESPONSIVE FIXES
         $size_small = !empty($element->data['options']['size_small']) ? $element->data['options']['size_small'] : str_replace('col-md-', 'col-sm-', $size);
         $size_xsmall = !empty($element->data['options']['size_xsmall']) ? $element->data['options']['size_xsmall'] : '';
         // Set the proper responsive classes
         $size = $size . ' ' . $size_small . ' ' . $size_xsmall;
         $css_class = 'sortable_column';
         $element->data['width'] = 'zn_edit_mode';
         $element->data['options']['size_small'] = 'zn_edit_mode';
         $element->data['options']['size_xsmall'] = 'zn_edit_mode';
     }
     if (!empty($element->data['options']['column_offset'])) {
         $size .= ' ' . $element->data['options']['column_offset'] . ' ';
     }
     $uid = zn_uid();
     echo '<div class="zn_pb_el_container zn_pb_section ' . $size . ' zn_element_' . strtolower($element->info['class']) . '" data-form-uid="' . $uid . '" data-el-name="' . $element->info['name'] . ' options" data-uid="' . $element->data['uid'] . '" data-object="' . $element->info['class'] . '">';
     echo '<div class="zn_el_options_bar zn_pb_animate">';
     // SHOW THE WIDTH SELECTOR BUTTON
     if ($element->info['flexible']) {
         $sizes = array('col-md-12' => '12/12', 'col-md-11' => '11/12', 'col-md-10' => '10/12', 'col-md-9' => '9/12', 'col-md-8' => '8/12', 'col-md-7' => '7/12', 'col-md-6' => '6/12', 'col-md-5' => '5/12', 'col-md-4' => '4/12', 'col-md-3' => '3/12', 'col-md-2' => '2/12', 'col-md-1-5' => '1/5');
         echo '<span class="zn_pb_select_width znpb_icon-resize-full zn_pb_icon">';
         echo '<span class="znpb_sizes_container">';
         foreach ($sizes as $key => $value) {
             $selected_width = '';
             if ($key == $actual_size) {
                 $selected_width = ' class="selected_width" ';
             }
             echo '<span ' . $selected_width . ' data-width="' . $key . '">' . $value . '</span>';
         }
         echo '</span>';
         echo '</span>';
         //echo '<span class="zn_pb_increase zn_icon">&#xe2d3;</span>';
     }
     echo '<span class="znpb-element-title">' . $element->info['name'] . '</span>';
     echo '<a class="zn_pb_remove znpb_icon-cancel zn_pb_icon"></a>';
     echo '<a class="zn_pb_group_handle znpb_icon-move zn_pb_icon" data-level="' . $element->info['level'] . '"></a>';
     echo '<a class="zn_pb_clone_button znpb_icon-docs zn_pb_icon" data-clone="clone"></a>';
     if ($element->options()) {
         echo '<a data-uid="' . $element->data['uid'] . '" class="znpb-element-options-trigger zn_pb_edit_el znpb_icon-cog-alt zn_pb_icon"></a>';
         echo '</div>';
         // END OPTIONS BAR
     } else {
         echo '</div>';
         // END OPTIONS BAR
     }
 }
Example #5
0
 function zn_radio($value)
 {
     if (isset($value['rel_id'])) {
         $rel = $value['rel_id'];
     } else {
         $rel = $value['id'];
     }
     $output = '';
     $output .= '<div id="' . $value['id'] . '" class="zn_radio">';
     $i = 0;
     foreach ($value['options'] as $option => $name) {
         $i++;
         $label = zn_uid();
         $output .= '<input rel="' . $rel . '" id="' . $label . $i . '" name="' . $value['id'] . '" type="radio" value="' . $option . '" ' . checked($value['std'], $option, false) . ' />';
         $output .= '<label for="' . $label . $i . '">' . $name . '</label>';
     }
     $output .= '</div>';
     return $output;
 }
/**
 * Convert old page builder areas to use the new structure
 * @param array $element
 * @return array|null
 */
function convert_pb_areas($element)
{
    // Check first if we have the element
    if (isset($element['dynamic_element_type'])) {
        // get the element
        $e = zn_convert_old_pb_name($element['dynamic_element_type']);
        if (empty($e)) {
            return null;
        }
    } else {
        return null;
    }
    // Prepare output
    $module = array('object' => $e);
    // The action box area element didn't had a size value
    if (isset($element['_sizer']) && !empty($element['_sizer'])) {
        $new_width = zn_get_size($element['_sizer']);
        $module['width'] = $new_width['sizer'];
    }
    // Convert contact form options keys to new element
    if ('TH_FeaturesBoxes' == $module['object']) {
        $element = zn_cnv_v4_update_features_boxes($element);
    }
    unset($element['dynamic_element_type'], $element['pb_area'], $element['_sizer']);
    // Convert icons
    $needs_icon_converting = array('TH_StatsBox', 'TH_VerticalTabs', 'TH_StaticContentProductLoupe');
    // Convert bootstrap icons
    if (in_array($module['object'], $needs_icon_converting)) {
        // These are all the options that contained an icon font
        array_walk_recursive($element, 'zn_update_bootstrap_icons_std', array('vts_tab_icon', 'sc_lp_button1_icon', 'sc_lp_button2_icon'));
    }
    // Convert social icons
    $social_icon_elements = array('TH_TeamBox', 'TH_StaticContentEventCountdown');
    if (in_array($module['object'], $social_icon_elements)) {
        array_walk_recursive($element, 'update_social_icons_std', array('teb_social_icon', 'sc_ec_social_icon'));
    }
    // Convert contact form options keys to new element
    if ('ZnContactForm' == $module['object']) {
        $element = update_contact_form_options($element);
    }
    // Convert Static Content MAPS ( single )
    if ('ZN_MAPS_SINGLE' == $module['object']) {
        // print_z( $element );
        $element = update_static_content_maps($element);
        $module['object'] = 'ZnGoogleMap';
    }
    // Convert portfolio category
    $old_portfolio_elements = array('TH_PortfolioCarouselLayout', 'TH_PortfolioCategory', 'TH_PortfolioSortable');
    if (in_array($module['object'], $old_portfolio_elements)) {
        // print_z( $element );
        $element = update_portfolio_category($element, $module['object']);
        $module['object'] = 'TH_PortfolioArchive';
    }
    $module['options'] = $element;
    $module['content'] = false;
    $module['uid'] = zn_uid('eluid');
    return $module;
}
function setup_template($template)
{
    if (!is_array($template)) {
        return;
    }
    $template_data = array();
    $i = 0;
    foreach ($template as $key => $module) {
        if (!isset($module['uid'])) {
            $module['uid'] = zn_uid('eluid');
        }
        $template_data[$i] = $module;
        $template_data[$i]['content'] = array();
        if (!empty($module['content'])) {
            if (!empty($module['content']['has_multiple'])) {
                unset($module['content']['has_multiple']);
                $u = 0;
                foreach ($module['content'] as $actual_content) {
                    $template_data[$i]['content'][$u] = setup_template($actual_content);
                    $u++;
                }
                $template_data[$i]['content']['has_multiple'] = true;
            } else {
                $template_data[$i]['content'] = setup_template($module['content']);
            }
        }
        $i++;
    }
    return $template_data;
}