Сортировка списка в типе Select

(1/1)

userxp:
И так. по умолчанию, сортировка списка в типа SELECT не предусмотрена.
это не есть гут.
но можно "поремонтировать" :)

сначала фиксим select.xml( /administrator/components/com_zoo/elements/select/select.xml )
в параметры добавляем
Код
<param name="sorting" type="radio" default="0" label="Sorting" description="Select sorting mode on showing list">
<option value="0">Default</option>
<option value="1">By Name</option>
<option value="2">By Value</option>
</param>
тут все. сохраняем.

открываем теперь select.php( /administrator/components/com_zoo/elements/select/select.php )
в начале класса дописываем переменную sorting:
Код
class ElementSelect extends ElementSimple {
 
/** @var boolean */
var $multiple;
/** @var array */
var $options;
/** @var int */
var $sorting;
 
далее находим функцию edit (113 строка)
и перед кодом
Код
foreach ($this->options as $option) {
$options[] = JHTML::_('select.option', $option['value'], $option['name']);
}
вставляем
Код
switch( $this->sorting ) {
case 2: ksort( $this->options ); break; // by value
case 1:
if( isset( $this->options[0] ) ) {
$nl[0] = $this->options[0];
unset( $this->options[0] );
asort( $this->options );
$this->options = array_merge( $nl, $this->options );
} else {
asort( $this->options );
}
break; // by name
}
 
Примечание: игры с бубном вокруг нулевого элемента - это так, на всякий случай, ибо обычно я пишу в 0 значение типа "не выбрано"
при желании, можно разнообразить перечень и не учитывать нулевой элемент

это все.

Sergvideo:
Вот что начало выдавать:

Parse error: syntax error, unexpected $end, expecting T_FUNCTION in /home/domen/public_html/administrator/components/com_zoo/elements/select/select.php on line 314

lexamor:
Цитата: Sergvideo от 09.10.2009, 20:46:31

Вот что начало выдавать:
Parse error: syntax error, unexpected $end, expecting T_FUNCTION in /home/domen/public_html/administrator/components/com_zoo/elements/select/select.php on line 314


Внимательно посмотрите на код который скопировали - не забыли ли последнюю скобку Код:

}

после
Код:

break; // by name
Я не заметил сам вначале)))

Sergvideo:
)
Мда... Теперь еще и очки покупать нада..

allydawn:
а можно такую же сделать для k2? извиняюсь что не в тот раздел, просто очень нужно :)

Навигация

[0] Главная страница сообщений