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'];
 }
 /**
  * @return GravityView_Widget_Search
  */
 public static function getInstance()
 {
     if (empty(self::$instance)) {
         self::$instance = new GravityView_Widget_Search();
     }
     return self::$instance;
 }
示例#3
0
<?php

/**
 * Display the search LINK input field
 *
 * @see class-search-widget.php
 */
$gravityview_view = GravityView_View::getInstance();
$view_id = $gravityview_view->getViewId();
$search_field = $gravityview_view->search_field;
// base url to calculate the final full link
$base_url = GravityView_Widget_Search::get_search_form_action();
// Make sure that there are choices to display
if (empty($search_field['choices'])) {
    do_action('gravityview_log_debug', 'search-field-link.php - No choices for field');
    return;
}
$links_label = empty($search_field['label']) ? __('Show only:', 'gravityview') : $search_field['label'];
/**
 * @filter `gravityview/extension/search/links_label` Change the label for the "Link" search bar input type
 * @since 1.17 Use search field label as default value, if set. Before that, it was hard-coded to "Show only:"
 * @param string $links_label Default: `Show only:` if search field label is not set. Otherwise, search field label.
 */
$links_label = apply_filters('gravityview/extension/search/links_label', $links_label);
/**
 * @filter `gravityview/extension/search/links_sep` Change what separates search bar "Link" input type links
 * @param string $links_sep Default: `&nbsp;|&nbsp;` Used to connect multiple links
 */
$links_sep = apply_filters('gravityview/extension/search/links_sep', '&nbsp;|&nbsp;');
?>
 /**
  * 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;
 }
示例#5
0
    // show/hide the search button if there are input type fields
    if (!$has_inputs && $search_field['input'] != 'link') {
        $has_inputs = true;
    }
}
/**
 * @action `gravityview_search_widget_fields_after` Inside the `<form>` tag of the GravityView search form, after inputs are rendered
 * @param GravityView_Widget_Search $this GravityView Widget instance
 */
do_action('gravityview_search_widget_fields_after', $this);
if ($has_inputs) {
    ?>
		<div class="gv-search-box gv-search-box-submit">
			<?php 
    // Output the Clear button, if enabled
    GravityView_Widget_Search::the_clear_search_button();
    ?>
			<input type="hidden" name="mode" value="<?php 
    echo esc_attr($gravityview_view->search_mode);
    ?>
" />
			<input type="submit" class="button gv-search-button" id="gv_search_button_<?php 
    echo $view_id;
    ?>
" value="<?php 
    esc_attr_e('Search', 'gravityview');
    ?>
" />
		</div>
	<?php 
}