Example #1
0
 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;
 }
Example #2
0
 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;
 }