public static function useIcon($id, array $attrs = array(), $path = "images/icons.svg") { static $url = null; if (is_null($url)) { $url = clone \shgysk8zer0\Core\URL::getInstance(); unset($url->query, $url->user, $url->pass, $url->fragment); } $url->path = $path; $url->fragment = $id; $attrs['xmlns:xlink'] = self::USE_NS; $svg = new self($attrs); $use = $svg->documentElement->appendChild($svg->createElement('use')); $use->{'xlink:href'} = $url; return $svg->documentElement; }
public function setFilters($filters) { $this->cleanForm(); foreach ($filters as $key => &$filterData) { if (!is_array($filterData)) { $filterData = array('label' => $filterData); if ($this->_table !== null) { $reference = $this->_table->info(Centurion_Db_Table_Abstract::REFERENCE_MAP); if (isset($reference[$key])) { $refTable = Centurion_Db::getSingletonByClassName($reference[$key]['refTableClass']); $rowset = $refTable->all(); $data = array(); foreach ($rowset as $row) { $data[] = (string) $row; } $filterData['type'] = Centurion_Controller_CRUD::FILTER_TYPE_CHECKBOX; $filterData['data'] = $data; } } } if (isset($filterData['label'])) { $label = $filterData['label']; } else { $label = ''; } $checkboxType = 'multiCheckbox'; $element = null; if (!isset($filterData['type'])) { $filterData['type'] = Centurion_Controller_CRUD::FILTER_TYPE_TEXT; } if (!isset($filterData['column'])) { $filterData['column'] = $key; } if (!isset($filterData['behavior'])) { $filterData['behavior'] = Centurion_Controller_CRUD::FILTER_BEHAVIOR_CONTAINS; } switch ($filterData['type']) { case Centurion_Controller_CRUD::FILTER_TYPE_RADIO: $checkboxType = 'radio'; case Centurion_Controller_CRUD::FILTER_TYPE_SELECT: if ($checkboxType === 'multiCheckbox') { $checkboxType = 'select'; } case Centurion_Controller_CRUD::FILTER_TYPE_CHECKBOX: $element = $this->createElement($checkboxType, $key, array('label' => $label)); if (!isset($filterData['data'])) { $manyDependentTables = $this->_table->info('manyDependentTables'); if (isset($manyDependentTables[$key])) { $refRowSet = Centurion_Db::getSingletonByClassName($manyDependentTables[$key]['refTableClass'])->fetchAll(); $filterData['data'] = array(); foreach ($refRowSet as $refRow) { $filterData['data'][$refRow->id] = $refRow->__toString(); } asort($filterData['data']); } } $element->addMultiOptions($filterData['data']); $element->setSeparator(''); if ($checkboxType === 'multiCheckbox') { $element->setIsArray(true); } break; case Centurion_Controller_CRUD::FILTER_TYPE_TEXT: case Centurion_Controller_CRUD::FILTER_TYPE_NUMERIC: $element = $this->createElement('text', $key, array('label' => $label)); break; case Centurion_Controller_CRUD::FILTER_TYPE_DATE: $element = $this->createElement('text', $key, array('label' => $label, 'class' => 'datepicker')); break; case Centurion_Controller_CRUD::FILTER_TYPE_BETWEEN_DATE: case Centurion_Controller_CRUD::FILTER_TYPE_BETWEEN_DATETIME: $form = new self(); if ($filterData['type'] == Centurion_Controller_CRUD::FILTER_TYPE_BETWEEN_DATETIME) { $class = 'field-datetimepicker'; } else { $class = 'datepicker'; } $element = $form->createElement('text', 'gt', array('class' => $class, 'belongsTo' => $key, 'label' => $this->_translate('From'), 'value' => '26/08/11 03:00')); $form->addElement($element, 'gt'); $element = $form->createElement('text', 'lt', array('class' => $class, 'belongsTo' => $key, 'label' => $this->_translate('To'), 'value' => '26/08/11 03:00')); $form->addElement($element, 'lt'); $element = null; $form->setDescription($label); $this->addSubForm($form, $key); $this->getSubForm($key)->setDecorators($this->defaultDisplayGroupDecorators); $form->getElement('lt')->setDecorators($this->defaultElementDecoratorsInDisplayGroup); $form->getElement('gt')->setDecorators($this->defaultElementDecoratorsInDisplayGroup); // $this->addDisplayGroup(array('lt', 'gt'), $key, array('description' => $label)); break; } if (null !== $element) { $this->addElement($element, $key); } } $this->_filters = $filters; }