Exemple #1
0
         echo balanceTags($settings_html);
     }
     ?>
     <form id="frm_shortcode_settings" action="" method="post">
         <?php 
     // Render the inputs to store element setting data for Copy style feature
     foreach ($_POST as $k => $v) {
         echo '<input type="hidden" id="hid-' . $k . '" name="' . $k . '" value="' . urlencode($v) . '" />';
     }
     echo '<input type="hidden" id="hid-init_tab" name="init_tab" value="appearance" />';
     ?>
     </form>
     <?php 
 } else {
     if ($el_type == 'widget') {
         $instance = WR_Megamenu_Helpers_Shortcode::extract_widget_params($params);
         $instance['title'] = isset($instance['title']) ? $instance['title'] : $el_title;
         // generate setting form of widget
         $widget = new $shortcode();
         ob_start();
         $widget->form($instance);
         $form = ob_get_clean();
         // simplify widget field name
         $exp = preg_quote($widget->get_field_name('____'));
         $exp = str_replace('____', '(.*? )', $exp);
         $form = preg_replace('/' . $exp . '/', '$1', $form);
         // simplify widget field id
         $exp = preg_quote($widget->get_field_id('____'));
         $exp = str_replace('____', '(.*? )', $exp);
         $form = preg_replace('/' . $exp . '/', 'param-$1', $form);
         // tab and content generate
Exemple #2
0
 /**
  * Replace widget shortcode by Widget output
  * @param type $widget_shortcode
  * @return type
  */
 public static function widget_content($widget_shortcode)
 {
     $widget_contents = urldecode($widget_shortcode[0]);
     // get widget class
     $element = WR_Megamenu_Helpers_Shortcode::extract_params($widget_contents);
     if (empty($element['widget_id'])) {
         return '';
     }
     $widget = $element['widget_id'];
     // get widget settings parameters
     $instance = WR_Megamenu_Helpers_Shortcode::extract_widget_params($widget_contents);
     $args = array('widget_id' => strtolower($widget));
     // fix problem of woocommerce
     global $woocommerce;
     if (isset($woocommerce) && empty($woocommerce->query)) {
         $woocommerce->query = new WC_Query();
     }
     // ouput
     ob_start();
     the_widget($widget, $instance, $args);
     $widget_content = ob_get_clean();
     return $widget_content;
 }