Как вы фильтруете экспорт CSV на CMS Silverstripe?

Это невозможно, вам придется подделать границы, добавив UIView с цветом фона в xib / view.

2
задан Tim Tolley 21 January 2019 в 00:54
поделиться

1 ответ

Вы можете добавить пользовательские поля поиска в ModelAdmin через getSearchContext() и настроить запрос на основе их с помощью getList(). См. в этом разделе документации SilverStripe.

Вот пример исключения результатов, у которых значение CreatedAt ниже даты, указанной в поле поиска (при условии, что ваш ModelAdmin управляет только MemberBonus):

<?php

use SilverStripe\Admin\ModelAdmin;
use SilverStripe\Forms\DatetimeField;

class MemberBonusAdmin extends ModelAdmin
{
    ...

    public function getSearchContext()
    {
        $context = parent::getSearchContext();

        $context->getFields()->push(new DatetimeField('q[CreatedAfter]', 'Created After'));

        return $context;
    }

    public function getList() 
    {
        $list = parent::getList();

        $params = $this->getRequest()->requestVar('q');

        if (!empty($params['CreatedAfter'])) {
            $list = $list->exclude('CreatedAt:LessThan', $params['CreatedAfter']);
        }

        return $list;
    }
}

Чтобы получить работающий диапазон, достаточно нужно добавить поле CreatedBefore и фильтр.

0
ответ дан Cheddam 21 January 2019 в 00:54
поделиться