name = $name; $this->values = $values; } /** * Apply the parameters from the given request on this widget * * @param Request $request The request to use for populating the form */ public function applyRequest(Request $request) { $this->request = $request; } /** * Return the chosen interval value or null * * @param Request $request The request to fetch the value from * * @return string|null */ public function getInterval(Request $request = null) { if ($request === null && $this->request) { $request = $this->request; } if ($request) { return $request->getParam('interval'); } } /** * Renders this widget and returns the HTML as a string * * @return string */ public function render() { $form = new Form(); $form->setAttrib('class', 'inline'); $form->setMethod('GET'); $form->setTokenDisabled(); $form->setName($this->name); $form->addElement( 'select', 'interval', array( 'label' => 'Timeline Interval', 'multiOptions' => $this->values, 'class' => 'autosubmit' ) ); if ($this->request) { $form->setAction($this->request->getRequestUri()); $form->populate($this->request->getParams()); } return $form; } }