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']; }
/** * Get the connected form ID from a View ID * * @see GVCommon::get_meta_form_id * * @param int $view_id ID of the View you want the form of * * @return false|string ID of the connected Form, if exists. Empty string if not. False if not the View ID isn't valid. */ function gravityview_get_form_id($view_id) { return GVCommon::get_meta_form_id($view_id); }
/** * @covers GVCommon::get_meta_form_id * @covers ::gravityview_get_form_id() */ function test_get_meta_form_id() { $form_id = '1234'; $view_id = $this->factory->view->create(array('form_id' => $form_id)); $this->assertEquals($form_id, GVCommon::get_meta_form_id($view_id)); }