/** * Method to get the record form. * * @param array $data Data for the form. * @param boolean $loadData True if the form is to load its own data (default case), false if not. * * @return mixed A JForm object on success, false on failure * @since 1.6 */ public function getFilterForm($data = array(), $loadData = true) { $form = parent::getFilterForm($data, $loadData); if (empty($form)) { return false; } //configure sort list - create two options for each visforms form field (asc and desc) and replace definition of fullordering field in filter_visdatas.xml $xml = '<field name="fullordering" type="list" label="COM_VISFORMS_LIST_FULL_ORDERING" description="COM_VISFORMS_LIST_FULL_ORDERING_DESC" onchange="this.form.submit();" default="a.id ASC" > <option value="">JGLOBAL_SORT_BY</option> <option value="a.id ASC">JGRID_HEADING_ID_ASC</option> <option value="a.id DESC">JGRID_HEADING_ID_DESC</option> <option value="a.published ASC">JSTATUS_ASC</option> <option value="a.published DESC">JSTATUS_DESC</option> <option value="a.created ASC">JDATE_ASC</option> <option value="a.created DESC">JDATE_DESC</option> <option value="a.ipaddress ASC">COM_VISFORMS_SORT_IP_ASC</option> <option value="a.ipaddress DESC">COM_VISFORMS_SORT_IP_DESC</option> <option value="a.ismfd ASC">COM_VISFORMS_SORT_ISMFD_ASC</option> <option value="a.ismfd DESC">COM_VISFORMS_SORT_ISMFD_DESC</option>'; $datafields = $this->getDatafields(); foreach ($datafields as $datafield) { if (isset($datafield->showFieldInDataView) && $datafield->showFieldInDataView == true) { $xml .= '<option value="a.F' . $datafield->id . ' ASC">' . $datafield->name . ' ' . JText::_("COM_VISFORMS_ASC") . '</option>'; $xml .= '<option value="a.F' . $datafield->id . ' DESC">' . $datafield->name . ' ' . JText::_("COM_VISFORMS_DESC") . '</option>'; } } $xml .= '</field>'; $xmlfield = new SimpleXMLElement($xml); $form->setField($xmlfield, 'list', 'true'); return $form; }
public function getFilterForm($data = array(), $loadData = true) { $form = parent::getFilterForm($data, $loadData); if ($form) { $path = JPATH_ADMINISTRATOR . '/components/' . $this->getState('filter.component') . '/models/forms/filter_fields.xml'; if (file_exists($path)) { // Load all children that's why we need to define the xpath if (!$form->loadFile($path, true, '/form/*')) { throw new Exception(JText::_('JERROR_LOADFILE_FAILED')); } } // If the context has multiple sections, this is the input field // to display them $form->setValue('section', 'custom', JFactory::getApplication()->input->getCmd('context')); } return $form; }