public function widget($args, $instance)
 {
     // Don't show unless a View ID has been set.
     if (empty($instance['view_id'])) {
         do_action('gravityview_log_debug', sprintf('%s[widget]: No View ID has been defined. Not showing the widget.', get_class($this)), $instance);
         return;
     }
     /** This filter is documented in wp-includes/default-widgets.php */
     $title = apply_filters('widget_title', empty($instance['title']) ? '' : $instance['title'], $instance, $this->id_base);
     echo $args['before_widget'];
     if ($title) {
         echo $args['before_title'] . $title . $args['after_title'];
     }
     // @todo Add to the widget configuration form
     $instance['search_layout'] = apply_filters('gravityview/widget/search/layout', 'vertical', $instance);
     $instance['context'] = 'wp_widget';
     // form
     $instance['form_id'] = GVCommon::get_meta_form_id($instance['view_id']);
     $instance['form'] = GVCommon::get_form($instance['form_id']);
     // We don't want to overwrite existing context, etc.
     $previous_view = GravityView_View::getInstance();
     /** @hack */
     new GravityView_View($instance);
     GravityView_Widget_Search::getInstance()->render_frontend($instance);
     /**
      * Restore previous View context
      * @hack
      */
     new GravityView_View($previous_view);
     echo $args['after_widget'];
 }
Ejemplo n.º 2
0
 /**
  * Checks if the current View is presenting search results
  *
  * @since 1.5.4
  *
  * @return boolean True: Yes, it's a search; False: No, not a search.
  */
 function is_searching()
 {
     // It's a single entry, not search
     if ($this->getSingleEntry()) {
         return false;
     }
     $search_method = GravityView_Widget_Search::getInstance()->get_search_method();
     if ('post' === $search_method) {
         $get = $_POST;
     } else {
         $get = $_GET;
     }
     // No $_GET parameters
     if (empty($get) || !is_array($get)) {
         return false;
     }
     // Remove empty values
     $get = array_filter($get);
     // If the $_GET parameters are empty, it's no search.
     if (empty($get)) {
         return false;
     }
     $search_keys = array_keys($get);
     $search_match = implode('|', self::$search_parameters);
     foreach ($search_keys as $search_key) {
         // Analyze the search key $_GET parameter and see if it matches known GV args
         if (preg_match('/(' . $search_match . ')/i', $search_key)) {
             return true;
         }
     }
     return false;
 }
Ejemplo n.º 3
0
<?php

/**
 * Display the Search widget
 *
 * @see class-search-widget.php
 */
$gravityview_view = GravityView_View::getInstance();
$view_id = $gravityview_view->getViewId();
$has_inputs = false;
$search_method = GravityView_Widget_Search::getInstance()->get_search_method();
?>

<form class="gv-widget-search <?php 
echo GravityView_Widget_Search::get_search_class();
?>
" method="<?php 
echo $search_method;
?>
" action="<?php 
echo esc_url(GravityView_Widget_Search::get_search_form_action());
?>
">

	<?php 
/**
 * @action `gravityview_search_widget_fields_before` Inside the `<form>` tag of the GravityView search form, before inputs are rendered
 * @param GravityView_Widget_Search $this GravityView Widget instance
 */
do_action('gravityview_search_widget_fields_before', $this);
foreach ($this->search_fields as $search_field) {