/** * do widget feature in frondend if it actived * @param $t * @param $instance */ public function do_widget_feature_frontend($t, $instance) { //widget id $current_widget_id = "{$t->id_base}-{$t->number}"; $lib = $this->get_field_value('awc_fixedobj_lib'); //fixed object lib $options = $this->get_options(); $json_config = HW_SKIN_Option::build_json_options($options); //parse fancybox setting to json data //for sticky js if ($lib == 'sticky') { echo '<script> jQuery(document).ready(function($) { $("#' . $current_widget_id . '").sticky(' . $json_config . '); }); </script>'; } else { echo '<script> jQuery(document).ready(function($) { $("#' . $current_widget_id . '").stick_in_parent(' . $json_config . '); }); </script>'; } }
/** * do on website * @param string $selector jquery selector * @return mixed|void */ public function run($selector) { $json_config = HW_SKIN_Option::build_json_options($this->get_options()); //parse fancybox setting to json data echo '<script> jQuery(document).ready(function($) { /* Apply fancybox to multiple items */ jQuery("' . $selector . '").fancybox(' . $json_config . '); }); </script>'; }
/** * @hook admin_enqueue_scripts */ public function admin_enqueue_scripts() { #if($this->is_module_setting_page()) { HW_Libraries::enqueue_jquery_libs('jquery-colorbox'); #} $data = self::get()->get_values(); if (class_exists('HW_SKIN_Option')) { $data_json = HW_SKIN_Option::build_json_options($data); if ($data_json) { $data = (array) json_decode($data_json); } } $handle = $this->enqueue_script('colorbox-module.js'); $this->localize_script($handle, '__hw_module_colorbox', $data); }
function hwmenu_init_skin($arg, $theme) { $user_options = $theme['args'][1]; //get user options //valid if ($theme['function'] !== __FUNCTION__) { return; } //ddsmoothmenu if (isset($user_options) && isset($user_options['enable_ddsmoothmenu']) && $user_options['enable_ddsmoothmenu'] == '__TRUE__') { $args = array('mainmenuid' => $user_options['container_id'], 'orientation' => $user_options['dd_orientation'], 'classname' => $user_options['dd_classname'], 'method' => $user_options['dd_method'], 'arrowswap' => $user_options['hw_arrowswap']); ?> <script> jQuery(document).ready(function() { ddsmoothmenu.init(<?php echo HW_SKIN_Option::build_json_options($args); ?> ); }); </script> <?php } }
/** * init scrolling * @param $theme: user theme setting (depricated) */ private function init_content_options($args = array()) { extract($args); if (!isset($instance)) { $instance = $this->get_widget_instance(); } $hwtpl_wrapper_id = $this->get_holder_id($instance['widget_id']); if ($this->enable_scrolling() && $instance['scroll_type'] == 'smoothdivscroll') { //for smoothdivscroll //validation if (!isset($instance['scroll_interval'])) { $instance['scroll_interval'] = '10'; } //default 10 of interval for smoothdivscroll if (!isset($instance['scroll_width']) || !$instance['scroll_width']) { //full width $instance['scroll_width'] = '100%'; } ?> <style> #<?php echo $hwtpl_wrapper_id; ?> .smoothDivScroll { <?php if (isset($instance['scroll_height'])) { echo 'height:' . $this->format_unit($instance['scroll_height']) . ';'; } ?> <?php if (isset($instance['scroll_width'])) { echo 'width:' . $this->format_unit($instance['scroll_width']) . ';'; } else { echo 'width: 100%;'; } ?> position: relative; } </style> <script type="text/javascript"> // Initialize the plugin with no custom options jQuery(document).ready(function ($) { // None of the options are set <?php if ($this->is_vertical_scrolling()) { ?> jQuery("#<?php echo $hwtpl_wrapper_id; ?> .smoothDivScroll").smoothDivScroll_vertical({ <?php } else { ?> jQuery("#<?php echo $hwtpl_wrapper_id; ?> .smoothDivScroll").smoothDivScroll({ <?php } ?> manualContinuousScrolling: false, autoScrollingMode: "onStart", mousewheelScrolling: "allDirections", hotSpotScrolling:false, <?php if (isset($instance['scroll_interval'])) { ?> autoScrollingInterval:'<?php echo $instance['scroll_interval']; ?> ', <?php } ?> <?php if (isset($instance['scroll_direction'])) { ?> autoScrollingDirection:'<?php echo $instance['scroll_direction']; ?> ', <?php } ?> }); // Mouse over jQuery("#<?php echo $hwtpl_wrapper_id; ?> .smoothDivScroll").bind("mouseover", function(){ <?php if ($this->is_vertical_scrolling()) { ?> $(this).smoothDivScroll_vertical("stopAutoScrolling");<?php } else { ?> $(this).smoothDivScroll("stopAutoScrolling"); <?php } ?> }); // Mouse out jQuery("#<?php echo $hwtpl_wrapper_id; ?> .smoothDivScroll").bind("mouseout", function(){ <?php if ($this->is_vertical_scrolling()) { ?> $(this).smoothDivScroll_vertical("startAutoScrolling");<?php } else { ?> $(this).smoothDivScroll("startAutoScrolling"); <?php } ?> }); }); </script> <script type="text/javascript"> </script> <?php } /** * for jcarousellite lib */ if ($this->enable_scrolling() && $instance['scroll_type'] == 'jcarousellite') { $option = array('mouseWheel' => true, 'start' => 0); //valid if (!isset($instance['scroll_width']) || !$instance['scroll_width']) { //full width $instance['scroll_width'] = '100%'; } if (!isset($instance['scroll_interval'])) { $instance['scroll_interval'] = '800'; } //default 800 of interval if (!isset($instance['scroll_delay'])) { $instance['scroll_delay'] = '800'; } //default 800 of time delay //auto scrolling & delay between 2 slides if (isset($instance['auto_scroll_mode']) && $instance['auto_scroll_mode'] && isset($instance['scroll_delay'])) { $option['auto'] = (int) $instance['scroll_delay']; } if (isset($instance['visible_scroll_num']) && is_numeric($instance['visible_scroll_num'])) { //visble $option['visible'] = (int) $instance['visible_scroll_num']; } if (isset($instance['scroll_interval']) && is_numeric($instance['scroll_interval'])) { //scroll speed $option['speed'] = (int) $instance['scroll_interval']; } if (isset($instance['scroll_num'])) { $option['scroll'] = (int) $instance['scroll_num']; } // scroll number of slides if (isset($instance['scroll_easing']) && $instance['scroll_easing']) { $option['easing'] = $instance['scroll_easing']; } //easing effects //scrolling direction if ($this->is_vertical_scrolling()) { $option['vertical'] = true; } else { $option['vertical'] = false; } //merge options if (isset($theme['scroll_options']['jcarousellite']) && is_array($theme['scroll_options']['jcarousellite'])) { $option = array_merge($option, $theme['scroll_options']['jcarousellite']); } if (!empty($skin_options)) { $option = array_merge($option, $skin_options); } $option_obj = HW_SKIN_Option::build_json_options($option); //json_encode($option) ?> <style> #<?php echo $hwtpl_wrapper_id; ?> .<?php echo $instance['scroll_type']; ?> { <?php if (isset($instance['scroll_height'])) { echo 'height:' . $this->format_unit($instance['scroll_height']) . ';'; } ?> <?php if (isset($instance['scroll_width'])) { echo 'width:' . $this->format_unit($instance['scroll_width']) . ';'; } else { echo 'width: 100%;'; } ?> position: relative; } </style> <script type="text/javascript"> jQuery(document).ready(function($) { var jcarousel_lite = $("#<?php echo $hwtpl_wrapper_id; ?> .<?php echo $instance['scroll_type']; ?> ").jCarouselLite(<?php echo $option_obj; ?> ); }); </script> <?php } //$this->init_widget_features($args); //call before include skin file }
/** * get qtranslate switcher */ public static function get_qtrans_switcher() { $mqtrans_skin = hw_option('mqtrans_skin'); //get mqtrans skin $other_service = hw_option('enable_googletranslate'); //use google translate? if (isset($mqtrans_skin['hash_skin']) && isset($mqtrans_skin['hwskin_config'])) { $skin = APF_hw_skin_Selector_hwskin::resume_hwskin_instance($mqtrans_skin); //skin options //$skin_options = $mqtrans_skin['skin_options']; $html = ''; //output $file = $skin->instance->get_skin_file($skin->hash_skin); //load footer template if (file_exists($file)) { HW_HOANGWEB::load_class('HW_String'); HW_HOANGWEB::load_class('HW_Twig_Template'); HW_HOANGWEB::load_class('HW_mqtranslate'); //get theme setting file $setting = $skin->instance->get_file_skin_setting(); //(new HW_SKIN); if (file_exists($setting)) { include $setting; } //skin options $skin_options_file = $skin->instance->get_file_skin_options(); //(new HW_SKIN)->enqueue_files_from_skin() $skin_options = isset($mqtrans_skin['skin_options']) ? $mqtrans_skin['skin_options'] : array(); //user options $skin_options = HW_SKIN::merge_skin_options_values($skin_options, $setting, $skin_options_file); $data = array(); //data send to twig template /*active google translate*/ if ($other_service) { $TranslateElement_opts = array('pageLanguage' => 'vi'); //layout $layout = self::get_googletrans_layout_param(isset($skin_options['display_mode']) ? $skin_options['display_mode'] : ''); if ($layout) { $TranslateElement_opts['layout'] = $layout; } //include languages if (!empty($skin_options['specific_langs']) && is_array($skin_options['specific_langs'])) { $TranslateElement_opts['includedLanguages'] = join($skin_options['specific_langs'], ','); } $data['google_translate_ID'] = !empty($skin_options['google_translate_ID']) ? $skin_options['google_translate_ID'] : HW_String::generateRandomString(); } else { //prepare data for template if (class_exists('HW_mqtranslate')) { // make sure use __autoload $data = HW_mqtranslate::generateLanguageSelectCode(); } } //get templates folder from skin if (isset($theme) && isset($theme['templates_folder'])) { $tpl = $theme['templates_folder']; } else { $tpl = ''; } if (class_exists('HW_Twig_Template')) { $twig = HW_Twig_Template::create($skin->instance->get_file_skin_resource($tpl)); if (isset($data)) { $twig->set_template_data($data); } //inject data to current twig for skin using } ob_start(); //google translate if (isset($TranslateElement_opts)) { $json = HW_SKIN_Option::build_json_options($TranslateElement_opts, null, 'layout'); echo '<script type="text/javascript"> function googleTranslateElementInit() { new google.translate.TranslateElement(' . $json . ', "' . $data['google_translate_ID'] . '"); } </script> '; } $content = $skin->instance->render_skin_template(compact('wrapper', 'active_langs', 'text'), false); //data, return=false if ($content !== false) { echo $content; } if ($skin->instance->allow_skin_file()) { include $file; } $html = ob_get_contents(); if ($html && ob_get_length()) { ob_end_clean(); } } //valid if (!isset($theme['styles'])) { $theme['styles'] = array(); } if (!isset($theme['scripts'])) { $theme['scripts'] = array(); } //put stuff from skin if (count($theme['styles']) || count($theme['scripts'])) { $skin->instance->enqueue_files_from_skin($theme['styles'], $theme['scripts']); } return $html; } }
<img src="<?php echo $item['img_src']?>" data-thumb="<?php echo $item['thumb_src']?>"> <?php }?> </div> <div class="photor__viewportControl"> <div class="photor__viewportControlPrev"></div> <div class="photor__viewportControlNext"></div> </div> </div> <div class="photor__thumbs"> <div class="photor__thumbsWrap"></div> </div> </div> */ ?> <script> jQuery(document).ready( function($) { jQuery( '#<?php echo $gallery_id; ?> ' ).photor(<?php echo HW_SKIN_Option::build_json_options($options); ?> ); } ); </script>
<?php /** * HW Template: photowall */ $options = isset($skin_data['skin_options']) ? $skin_data['skin_options'] : array(); $options['el'] = '#envira-gallery-' . sanitize_html_class($args['wrapper_id']); // Gallery element $photos = array(); foreach ($galleries as $id => $item) { $photos[$id] = array('id' => $id, 'img' => esc_url($item['img_src']), 'width' => $item['img_width'], 'height' => $item['img_height'], 'th' => array('src' => esc_url($item['thumb_src']), 'width' => $item['thumb_width'], 'height' => $item['thumb_height'], 'zoom_src' => $item['thumb_src'], 'zoom_factor' => 1.5)); } $hw_tpl->_display('gallery.twig', array('galleries' => $galleries, 'args' => $args, 'json_options' => HW_SKIN_Option::build_json_options($options), 'photos' => $photos)); /* ?> <div id="envira-gallery-<?php echo sanitize_html_class( $args['wrapper_id'] ) ?>" class="envira-gallery-public envira-gallery-<?php echo sanitize_html_class( $args['wrapper_class'] ) ?>-columns envira-clear isotope" data-envira-columns="<?php echo $args['columns_class']?>"> <div class="body"> </div> <?php */ /*foreach($galleries as $id => $item) { echo '<div id="envira-gallery-item-' . sanitize_html_class( $id ) . '" class="' . $item['item_classes'] . '" style="margin-bottom: ' . $item['margin_bottom'] . '" >'; echo '<a href="' . esc_url( $item['link'] ) . '" class="envira-gallery-' . sanitize_html_class( $data['id'] ) . ' envira-gallery-link" rel="enviragallery' . sanitize_html_class( $data['id'] ) . '" title="' . esc_attr( $item['title'] ) . '" data-thumbnail="' . esc_url( $item['thumb'] ) . '">'; echo '<img id="envira-gallery-image-' . sanitize_html_class( $id ) . '" class="envira-gallery-image-' . $item['index'] . '" src="' . $item['src'] . '" data-envira-src="' . $item['src'] . '" alt="' . esc_attr( $item['alt'] ) . '" title="' . esc_attr( $item['title'] ) . '" />'; echo '</a>'; echo '</div>'; }*/ /* ?>
/** * render theme option field * @param $aField */ private function renderOptionField($field, $field_name, $wrapper = true, $repeat = true) { if (!isset($field['type'])) { $field['type'] = 'checkbox'; } //default set checkbox option //valid field type if (!in_array($field['type'], HW_SKIN_Option::allow_field_types())) { return; } if (!isset($field['id'])) { $field['id'] = mt_rand(5, 15); } //random id if not found $tag = ''; $name = $field_name . '[skin_options][' . $field['id'] . ']'; //field name $id = $this->field['id'] . '_nhp_theme_option_' . $field['id']; //field id $title = isset($field['title']) && $field['title'] ? $field['title'] : $field['id']; $desc = isset($field['desc']) ? $field['desc'] : ''; //field value if (isset($this->value['skin_options']) && isset($this->value['skin_options'][$field['id']])) { $value = $this->value['skin_options'][$field['id']]; } else { $value = ''; } if ($wrapper) { $tag .= '<p style="margin-bottom:14px;">'; } $field = HW_SKIN_Option::build_option_field($field, array('id' => $id, 'name' => $name, 'title' => $title, 'desc' => $desc, 'value' => $value), $tag, array(&$this, '_renderOptionField_callback'), array('field_name' => $field_name)); /*if($field['type'] == 'checkbox') { //checkbox $tag .= '<label for="'.$id.'"><strong>'.$title.'</strong><br/> <input type="'.$field['type'].'" name="'.$name.'" id="'.$id.'" '.($value? 'checked="checked"':'').'/> </label><br/><em>'.$desc.'</em>'; } elseif($field['type'] == 'text'){ //text $tag .= '<label for="'.$id.'"><strong>'.$title.'</strong><br/> <input type="'.$field['type'].'" name="'.$name.'" id="'.$id.'" value="'.($value).'"/> </label><br/><em>'.$desc.'</em>'; } elseif($field['type'] == 'select' && isset($field['options'])) { //select if(is_string($field['options'])) $field['options'] = explode(',',$field['options']); $tag .= '<label for="'.$id.'"><strong>'.$title.'</strong><br/><select name="'.$name.'" id="'.$id.'">'; if(is_array($field['options'])) foreach($field['options'] as $option){ $tag .= '<option value="'.esc_attr($option).'" '.($option == $value? 'selected':'').'>'.$option.'</option>'; } $tag .= '</select></label>'; $tag .= '<br/><em>'.$desc.'</em>'; } elseif($field['type'] == 'string'){ //string field if(isset($field['title'])) $tag .= "<h3>{$field['title']}</h3>"; if(isset($field['desc'])) $tag .= "<div>{$field['desc']}</div>"; } */ if ($wrapper) { $tag .= '</p>'; } if ($repeat == true && isset($field['repeat'])) { //repeat current field if (isset($field['repeat']) && is_numeric($field['repeat'])) { for ($i = 1; $i < $field['repeat']; $i++) { //- first repeat field $save_id = $field['id']; $field['id'] .= '_' . $i; $field['title'] = $field['id']; //sync for title $tag .= $this->renderOptionField($field, $field_name, false, false); $field['id'] = $save_id; } } } return $tag; }
/** * render theme option field * @param $aField */ public function renderOptionField($field, $_name, $_id, $values = null, $wrapper = true, $repeat = true) { if (!isset($field['type'])) { $field['type'] = 'text'; } //default set checkbox option //valid field type if (!in_array($field['type'], array('select', 'checkbox', 'text', 'string', 'hidden'))) { return; } if (!isset($field['name'])) { $field['name'] = ''; //valid field name //return ; //allow type='string' } //filter field setting before render field form $field = apply_filters('hw_nhp_renderOptionField', $field); $tag = ''; $name = $_name . '[' . $field['name'] . ']'; //field name $id = $_id . '_' . $field['name']; //field id $title = isset($field['title']) ? $field['title'] : $field['name']; $desc = isset($field['description']) ? $field['description'] : ''; //field value if (!empty($values) && isset($values[$field['name']])) { $value = esc_attr($values[$field['name']]); } else { $value = isset($field['value']) ? esc_attr($field['value']) : ''; //default field value } $field_atts = array('id' => $id, 'name' => $name, 'value' => $value, 'title' => $title, 'desc' => $desc); if ($wrapper) { $tag .= '<p style="margin-bottom:14px;">'; } HW_SKIN_Option::build_option_field($field, $field_atts, $tag); if ($wrapper) { $tag .= '</p>'; } //repeat the field if ($repeat == true && isset($field['repeat'])) { //repeat current field if (isset($field['repeat']) && is_numeric($field['repeat'])) { for ($i = 1; $i < $field['repeat']; $i++) { //- first repeat field $save_id = $field['id']; $field['id'] .= '_' . $i; $field['title'] = $field['id']; //sync for title $tag .= $this->renderOptionField($field, $_name, $_id, $values, false, false); $field['id'] = $save_id; } } } return $tag; }
/** * HW_SKIN::apply_skin_data callback before * @param $context * @param $params */ public function _hw_skin_apply_skin_data_callback_before($params) { extract($params); //params $marquee_wrapper = 'hw-marquee-container'; if (isset($skin) && isset($hash_skin)) { //$skin_data = $skin->get_skin_data($hash_skin); //marquee params if (!isset($skin_options)) { $skin_options = array(); } $json_config = HW_SKIN_Option::build_json_options($skin_options); } return array('marquee_wrapper' => $marquee_wrapper, 'marquee_id' => uniqid($this->id), 'json_config' => $json_config); }
/** * get input output * @param $aField * @return string */ private function _getInputs($aField) { $_aOutput = array(); foreach ((array) $aField['label'] as $_sSlug => $_sLabel) { $_aAttributes = isset($aField['attributes'][$_sSlug]) && is_array($aField['attributes'][$_sSlug]) ? $aField['attributes'][$_sSlug] + $aField['attributes'] : $aField['attributes']; /*$aAttributes = array( //'name' => "{$_aAttributes['name']}[{$_sSlug}]", 'name' => "{$_aAttributes['name']}", #[hash_skin] 'id' => "{$aField['input_id']}_{$_sSlug}", //'value' => isset( $aField['attributes']['value'][ $_sSlug ] ) ? $aField['attributes']['value'][ $_sSlug ] : '', 'value' => isset( $aField['attributes']['value'] ) ? $aField['attributes']['value'] : '', ); $_aAttributes = $aAttributes+ $_aAttributes; */ $enable_skin_condition = $this->get_field_value('enable_skin_condition'); //show skin condition field //get hash skin value $hash_skin_value = isset($aField['attributes']['value']['hash_skin']) ? $aField['attributes']['value']['hash_skin'] : ''; //get skin config $skin_config_value = isset($aField['attributes']['value']['hwskin_config']) ? esc_attr($aField['attributes']['value']['hwskin_config']) : ''; if (!$skin_config_value) { $skin_config_value = esc_attr($this->skin_config); } $notice_skin_option = 'Vui lòng nhấn save để tùy chỉnh options của theme này nếu có.'; //skin options notice //valid skin options file for this skin if ($hash_skin_value) { $option_file = $this->skin->get_file_skin_options($hash_skin_value); //get document $readme = $this->skin->get_file_skin_resource('readme.html'); //_print($readme); if (file_exists($readme)) { $readme_link = $this->skin->get_skin_url('readme.html'); } if (file_exists($option_file)) { include $option_file; } //prepend default options if (!isset($theme_options)) { $theme_options = array(); } HW_SKIN_Option::default_skin_options($theme_options); if (isset($theme_options) && is_array($theme_options)) { $skin_data = $this->skin->get_skin_data($hash_skin_value); //get active skin data $parse_id = md5($skin_data['screenshot']); $theme_options_output = array(); $theme_options_output[] = '<hr/><div class="hw-skin-options-holder" data-collapse="accordion persist" id="' . $parse_id . '">'; $theme_options_output[] = '<h2>Tùy biến skin</h2><div class="skin-options">'; //toggle title //create fields foreach ($theme_options as $_field) { $theme_options_output[] = $this->skin_options->renderOptionField_APF($_field, $aField, $_aAttributes, $_sSlug); } $theme_options_output[] = '</div></div>'; //close parse_id div tag $theme_options_output[] = '<div class="hw-skin-options-notice" style="display: none;color:red !important;">' . $notice_skin_option . '</div>'; } } $skin_config_field_id = $aField['input_id'] . '_' . $_sSlug . '_hwskinconfig'; //$this->generateAttributes( $_aAttributes ) $atts = array('name' => "{$_aAttributes['name']}[hash_skin]", 'id' => "{$aField['input_id']}_{$_sSlug}"); $msg_id = 'hwskin_msg_' . $atts['id']; //div message id $theme_options_output[] = '<div class="message hw-skin-options-notice" id="' . $msg_id . '"></div>'; if (isset($readme_link)) { $theme_options_output[] = '<a href="' . $readme_link . '" target="_blank">Xem tài liệu</a>'; } if (isset($parse_id)) { $hwskin_event_change_name = 'hwskin_field_' . $atts['id'] . '_' . $parse_id . '_change_event'; //change event callback name $this->skin->saveCallbackJs4SkinChangeEvent("if(typeof {$hwskin_event_change_name} == 'function')" . $hwskin_event_change_name . '(skin);'); //$this->skin->saveCallbackJs4SkinChangeEvent('$("#'.$skin_config_field_id.'").val(skin.screenshot);'); //call this before render skins selector $_aOutput[] = '<script> function hwskin_field_' . $atts['id'] . '_' . $parse_id . '_change_event(skin){ //console.log(skin.md5,"' . $parse_id . '"); if(skin.md5 === "' . $parse_id . '"){ jQuery("#' . $parse_id . '").removeClass("hw-skin-options-none").show();jQuery("#' . $parse_id . '").next().hide(); jQuery("#' . $parse_id . '").find("input,select").removeAttr("disabled").css({"display":""}); } else{ jQuery("#' . $parse_id . '").addClass("hw-skin-options-none").hide();jQuery("#' . $parse_id . '").next().show(); jQuery("#' . $parse_id . '").find("input,select").attr({"disabled":"disabled"}).css("display","none"); } } </script> '; } else { $this->skin->saveCallbackJs4SkinChangeEvent('jQuery("#' . $msg_id . '").html("' . $notice_skin_option . '")'); } $field_output = $this->skin->get_skins_select_tag(null, $hash_skin_value, $atts, false); //skin select tag //field condition for skin consuming if ($enable_skin_condition) { $field_condition = $this->skin->create_skin_template_condition_field($_aAttributes['name'], $aField['attributes']['value'], array('class' => 'hw-skin-condition')); } else { $field_condition = ''; } $_aOutput[] = "<div class='admin-page-framework-input-label-container my_custom_field_type'>" . "<label for='{$aField['input_id']}_{$_sSlug}'>" . "<span class='admin-page-framework-input-label-string' style='min-width:" . $aField['label_min_width'] . "px;'>" . $_sLabel . "</span>" . PHP_EOL . "" . $field_output . "" . "<input type='hidden' name='{$_aAttributes['name']}[hwskin_config]' id='{$skin_config_field_id}' value='" . $skin_config_value . "'/>" . "</label>" . $field_condition . "</div>"; if (isset($theme_options_output)) { $_aOutput = array_merge($_aOutput, $theme_options_output); } if (isset($aField['hwskin_field_output_callback']) && is_callable($aField['hwskin_field_output_callback'])) { //filter field output $_aOutput = call_user_func($aField['hwskin_field_output_callback'], $_aOutput, $this->skin, $field_output); } else { $_aOutput = apply_filters('hwskin_field_output', $_aOutput, $this->skin, $field_output); } //filter with hook of version } return implode(PHP_EOL, $_aOutput); }
/** * @param $atts */ public function _gallery_shortcode($atts) { global $post; // If no attributes have been passed, the gallery should be pulled from the current post. $gallery_id = false; if (empty($atts)) { $gallery_id = $post->ID; $data = is_preview() ? $this->gallery->_get_gallery($gallery_id) : $this->gallery->get_gallery($gallery_id); } else { if (isset($atts['id'])) { $gallery_id = (int) $atts['id']; $data = is_preview() ? $this->gallery->_get_gallery($gallery_id) : $this->gallery->get_gallery($gallery_id); } else { if (isset($atts['slug'])) { $gallery_id = $atts['slug']; $data = is_preview() ? $this->gallery->_get_gallery_by_slug($gallery_id) : $this->gallery->get_gallery_by_slug($gallery_id); } else { // A custom attribute must have been passed. Allow it to be filtered to grab data from a custom source. $data = apply_filters('hw_envira_gallery_custom_gallery_data', false, $atts, $post); } } } // If there is no data to output or the gallery is inactive, do nothing. if (!$data || empty($data['gallery']) || isset($data['status']) && 'inactive' == $data['status'] && !is_preview()) { return; } // Get rid of any external plugins trying to jack up our stuff where a gallery is present. $this->plugin_humility(); // If this is a feed view, customize the output and return early. if (is_feed()) { return $this->do_feed_output($data); } $i = 1; $args = array(); $args['wrapper_id'] = sanitize_html_class($data['id']); $args['wrapper_class'] = $this->get_gallery_classes($data); $args['columns_class'] = $this->get_config('columns', $data); $galleries = array(); foreach ($data['gallery'] as $id => $item) { // Skip over images that are pending (ignore if in Preview mode). if (isset($item['status']) && 'pending' == $item['status'] && !is_preview()) { continue; } $gallery = array(); $image = $this->get_image_src($id, $item, $data); $gallery = array_merge($item); $gallery['index'] = $i; $gallery['id'] = $id; $gallery['item_classes'] = $this->get_gallery_item_classes($item, $i, $data); $gallery['margin_bottom'] = HW_Validation::format_unit($this->get_config('margin', $data)); $gallery['img_src'] = esc_url($image[0]); $gallery['img_width'] = esc_url($image[1]); $gallery['img_height'] = esc_url($image[2]); $thumb = wp_get_attachment_image_src($id, 'thumbnail'); $gallery['thumb_src'] = $thumb[0]; $gallery['thumb_width'] = $thumb[1]; $gallery['thumb_height'] = $thumb[2]; $gallery['placeholder'] = esc_url(plugins_url('assets/css/images/holder.gif', dirname(dirname(__FILE__)))); $galleries[$id] = $gallery; // Increment the iterator. $i++; } /*---start skin---*/ //$skin = $this->get_config( 'hw_skin', $data ); $skin = !empty($data['config']['hw_skin']) ? $data['config']['hw_skin'] : $this->get_config('hw_skin', array()); if (empty($skin['hash_skin'])) { return; } //get skin options $data['options'] = isset($skin['skin_options']) ? $skin['skin_options'] : array(); $data['json_options'] = HW_SKIN_Option::build_json_options($data['options']); //$this->skin->get_current(); //change sidebar params from skin return HW_SKIN::apply_skin_data($skin, array('callback_before' => array(__CLASS__, '_hw_skin_before_include_skin_file')), array('galleries' => $galleries, 'args' => $args, 'data' => $data), false); }
/** * construct method * @param unknown $widget * @param string $apply_plugin * @param string $skin_folder * @param string $skin_name * @param string $default_skin_path */ function __construct($widget, $apply_plugin = '', $skin_folder = '', $skin_name = '', $default_skin_path = '') { if (is_object($widget)) { $this->widget_ref = $widget; } if ($skin_folder) { $this->skin_folder = $skin_folder; //skin folder. note: you can set path to skin folder like this: 'folder1/folder2' } if ($skin_name) { $this->skin_name = $skin_name; } //skin name $this->add_skin_name_list($skin_name); //add list allow skin name $this->is_main = true; //this can be modify by sub-skin $this->skinID = null; //skin id $this->_apply_plugin = $this->apply_plugin = $apply_plugin; if (!is_dir($apply_plugin) && is_dir(WP_PLUGIN_DIR . DIRECTORY_SEPARATOR . $apply_plugin)) { $this->apply_plugin = rtrim(WP_PLUGIN_DIR . DIRECTORY_SEPARATOR . $apply_plugin, DIRECTORY_SEPARATOR); } if ($default_skin_path) { $this->_default_skin_path = $default_skin_path; } //default skins folder locate in this plugins /*if(!is_dir($default_skin_path)) { //since we use relative path to skin file $default_skin_path = rtrim($this->apply_plugin,'/').'/'.ltrim($default_skin_path,'/'); } */ $this->default_skin_path = $default_skin_path; //plugin_dir_path(__FILE__).'/skins'; $this->skins_holders = array(WP_CONTENT_DIR => array('folder' => 0, 'url' => WP_CONTENT_URL, 'group' => 'WP_CONTENT'), $this->apply_plugin => array('folder' => $this->_default_skin_path, 'url' => 'get_ref_plugin_url', 'group' => self::DEFAULT_GROUP), get_stylesheet_directory() => array('folder' => 0, 'url' => get_bloginfo('template_url'), 'group' => 'Theme')); //get file types self::$FILE_TYPES = array('link' => 'gif,png,jpeg,jpg,bmp,tif', 'file' => 'php'); if (empty($this->template_header_info)) { $this->template_header_info = array('name' => 'HW Template', 'description' => 'Description', 'author' => 'Author', 'uri' => 'Author URI'); } //init actions $this->setup_actions(); if ($this->widget_ref instanceof WP_Widget && isset($this->widget_ref->id)) { //maintain reference widget id //$this->number = $this->widget_ref->number; $this->id = $this->widget_ref->id; } //init default ddslick params $this->set_dropdown_ddslick_setting(); $this->enable_template_engine(); //by default enable skin template & disable skin file //next instance indentifier self::$count++; //init skin options manager parent::__construct($this); }