ListView sorter получить текущую сортировку

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Аватара пользователя
Faenir
Сообщения: 292
Зарегистрирован: 2010.01.06, 01:46
Откуда: Симферополь

ListView sorter получить текущую сортировку

Сообщение Faenir » 2017.10.16, 16:22

Подскажите пожалуйста, возможно ли как-то в ListView sorter добавить класс к "<li>" для текущей сортировки?

Код: Выделить всё

<?= ListView::widget([
    'dataProvider' => $productsDataProvider,
    'sorter' => [
        'attributes' => ['created_at', 'price'],
        'options' => [
            'itemOptions' => ['class' => 'sorter'], // как тут добавить "active" для текущего? ("sorter active")
        ],
    ],
]) ?>
И еще, как в "ActiveDataProvider sort" разрешить сортировку только в одном направлении?

Код: Выделить всё

$dataProvider = new ActiveDataProvider([
    'query' => $query,
    'sort' => [
        'defaultOrder' => ['created_at' => SORT_DESC],
        'attributes' => [
            'created_at',
            'price' => [
                'asc' => false, // что-то вроде такого, но false не помогает
                'desc' => ['price' => SORT_DESC],
            ],
        ],
    ],
]);

Аватара пользователя
Faenir
Сообщения: 292
Зарегистрирован: 2010.01.06, 01:46
Откуда: Симферополь

Re: ListView sorter получить текущую сортировку

Сообщение Faenir » 2017.10.18, 12:29

Ап! Возможно это сделать стандартными средствами?

Nerf
Сообщения: 780
Зарегистрирован: 2015.01.29, 00:37

Re: ListView sorter получить текущую сортировку

Сообщение Nerf » 2017.10.19, 00:09

1) нет. Несложно сделать, но могут же быть активны одновременно несколько.
2) Никак. Но можно схитрить:

Код: Выделить всё

'price' => [
      'asc' => ['price' => SORT_DESC],
      'desc' => ['price' => SORT_DESC],
],

Аватара пользователя
Faenir
Сообщения: 292
Зарегистрирован: 2010.01.06, 01:46
Откуда: Симферополь

Re: ListView sorter получить текущую сортировку

Сообщение Faenir » 2017.10.19, 04:01

Nerf писал(а):
2017.10.19, 00:09
1) нет. Несложно сделать, но могут же быть активны одновременно несколько.
2) Никак. Но можно схитрить:

Код: Выделить всё

'price' => [
      'asc' => ['price' => SORT_DESC],
      'desc' => ['price' => SORT_DESC],
],
Спасибо! Хитрость интересная))

Ответить