Страница 1 из 1

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

Добавлено: 2017.10.16, 16:22
Faenir
Подскажите пожалуйста, возможно ли как-то в 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],
            ],
        ],
    ],
]);

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

Добавлено: 2017.10.18, 12:29
Faenir
Ап! Возможно это сделать стандартными средствами?

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

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

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

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

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

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

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

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