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"></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 } }
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; }