Size: a a a

2021 April 21

A

Alex in OctoberCMS
Какая интересная уверенность
источник

Р

Ростислав in OctoberCMS
Привет. А на знаешь случайно какой-нибудь костыль чтобы работала?
источник

AK

Andrey Kharanenka in OctoberCMS
Только если поле в бд делать
источник

AK

Andrey Kharanenka in OctoberCMS
Отдельное
источник

v

vladimir in OctoberCMS
Можно костыльнуть, но будет не ахти ))
->orderByRaw("json_extract(value, '$.column') asc")
источник

Р

Ростислав in OctoberCMS
А где это прописывать? Перехватывать событие сортировки как-то?
источник

RG

Roman Gerasimov in OctoberCMS
А можешь просто скидать все файлы в одну папку, к примеру, назвав её random_images
и парой строчек кода выводить путь до рандомной картинки

типа такого

$mediaImages = MediaLibrary::instance()->listFolderContents('/random_images'/random_images', false, MediaLibraryItem::FILE_TYPE_IMAGE, true);
$randomImagePath = $mediaImages[
array_rand ($mediaImages , 1 )]->publicUrl;
источник

ЭФ

Эраст Фандорин... in OctoberCMS
Блин я запутался в этих гребаных точках и экранированиях, кто помнит первый класс вторую четверть?
src="{{ 'assets/parser/1('тут переменная rand').png'|theme }}"
источник

Р

Ростислав in OctoberCMS
~randvar~
источник

RG

Roman Gerasimov in OctoberCMS
{% set rand ... %}
../parser/1/‘ ~ rand...
источник

Р

Ростислав in OctoberCMS
src="{{ 'assets/parser/1'~rand~'.png'|theme }}"
источник

RG

Roman Gerasimov in OctoberCMS
Используй Тильду :)
источник

S

Sergey in OctoberCMS
или что бы ещё проще в сете законкать полный путь, и после просто эту переменную кидай в вызов картинки {{imageFullPath|media}}
источник

v

vladimir in OctoberCMS
Можно использовать
listExtendQuery
уточняя у билдера есть ли уже настройки сортировки через
$query->getQuery()->orders[0]['column']


В итоге называешь поле например "city", и делаешь в контроллере:
public function listExtendQuery($query, $definition) {
   if($query->getQuery()->orders[0]['column'] === 'city') {
            $direction = $query->getQuery()->orders[0]['direction'];
            $query->getQuery()->orders[0] = [
        'type' => 'Raw',
       'sql' => "json_extract(value, '$.column') {$direction}",
   ];
        };
}
источник

v

vladimir in OctoberCMS
Это ярый костыль, но вариант должен быть рабочий. Как результат подменяешь сортировку билдера. Единственная проблема может быть при множественной сортировке, тогда надо работать с циклом.

Суть в том, что listExtendQuery вызывается после первоначальных действий List виджета и подготовки запроса, тоесть после указания сортировки самим виджетом. Поэтому мы можем получить из билдера информацию какая сортировка используется и явно подменить ее на этом этапе.
источник

Р

Ростислав in OctoberCMS
тут еще проблема в том что при таком раскладе не появляется стрелка для сортировки в беке
источник

RG

Roman Gerasimov in OctoberCMS
а listExtendRecords не подойдет? или вы не о том?
источник

v

vladimir in OctoberCMS
Переделай на геттер. В модель:
 function getFGuestArrivalDateAttribute() {
   return $this->property['f_guest_arrival_date'];
}


В fields, вместо 'property[f_guest_arrival_date]' указать: 'f_guest_arrival_date'

далее в listExtendQuery уже проверять по сортировке для 'f_guest_arrival_date'
источник

v

vladimir in OctoberCMS
Нет, он срабатывает по коллекции из бд, следственно постранично
источник

RG

Roman Gerasimov in OctoberCMS
ну да
источник