Esempio n. 1
0
 /**
  * Ordering option list helper.
  *
  * @param Array $config An optional configuration object
  */
 public function ordering($config = array())
 {
     $config = new KConfig($config);
     $options = array();
     $orders = array('newest' => 'Newest first', 'oldest' => 'Oldest first', 'popular' => 'Most popular', 'alpha' => 'Alphabetical', 'category' => 'Section/Category');
     foreach ($orders as $value => $title) {
         $options[] = $this->option(array('value' => $value, 'text' => $title));
     }
     $config->append(array('options' => $options, 'name' => 'ordering', 'translate' => true))->append(array('selected' => $config->{$config->name}));
     return parent::optionlist($config);
 }
Esempio n. 2
0
 /**
  * Adds the option to enhance the select box using Select2
  *
  * @param array|KObjectConfig $config
  * @return string
  */
 public function optionlist($config = array())
 {
     $translator = $this->getObject('translator');
     $config = new KObjectConfigJson($config);
     $config->append(array('prompt' => '- ' . $translator->translate('Select') . ' -', 'options' => array(), 'select2' => false, 'attribs' => array()));
     if ($config->attribs->multiple && $config->name && substr($config->name, -2) !== '[]') {
         $config->name .= '[]';
     }
     $html = '';
     if ($config->select2) {
         $config->append(array('select2_options' => array('element' => $config->attribs->id ? '#' . $config->attribs->id : 'select[name=\\"' . $config->name . '\\"]', 'options' => array())));
         if ($config->deselect) {
             // select2 needs the first option empty for placeholders to work on single select boxes
             if (!$config->attribs->multiple) {
                 $config->options = array_merge(array($this->option(array('label' => ''))), $config->options->toArray());
             }
             // special configuration for select2 placeholder
             $config->select2_options->append(array('options' => array('placeholder' => $translator->translate($config->prompt), 'allowClear' => true)));
         }
         $html .= $this->getTemplate()->createHelper('behavior')->select2($config->select2_options);
     }
     $html .= parent::optionlist($config);
     return $html;
 }