Andrey
Пишу календарик постов. Ну типа текущий месяц и там даты-ссылки на /2022/02/18 Сам календарь выводится сниппетом, ибо сайт частично на чистых "контроллерах",частично на runSnippet DocLister. А вот роуты уже на ларавелевской обработке. Итого получается монстр, редактировать который приходится в трех местах. Сорян, кому потом достанется)
Serguei
А я вот тоже сейчас сайт на контроллерах делаю. Пока получается. Но столкнулся с такой фишкой, что надо из изображений генерировать превьюшки. И генерирую их тоже в контроллере. И получается, что в контроллер надо передавать размеры превьюшек. Получается, что в контроллере есть данные о верстке. (Пока что только размеры, но это тоже не есть хорошо). Как-то из блейда или какой-то конфигурации шаблона можно эти параметры контролеру прокинуть, чтоб он просто их откуда-то забирал и геренировал их "так как задали в верстке"?
Pathologic
🤦‍♂️
Am
Обычно этим занимается "конфиг".
Serguei
То есть у меня в контроллере сейчас получаются вот такие вещи: foreach($this->data['products'] as &$prod) { $prod['thumb'] = evo()->runSnippet('phpthumb',array('input' => $prod['img'], 'options' => 'w=350,h=350,zc=1')); } И получается, что там есть это число 350. И если к примеру я захочу другой размер картинки в верстке, то мне надо лезть в контроллер и это 350 менять например на 450. Мне не хватает каго-то "конфига для шаблона" или не знаю, как это еще назвать.
Am
Все же хорошо бы хотя бы одним глазком прочитать про шаблон проектирования ADR.
Am
В рамках Эво, наверное, может быть удобным задать через те же ТВ или какой-нить clientsettings настройки для разных шаблонов превью (раз они нужны для доступ и не могут быть жестко заданы для всего сайта) и получать эти "данные конфига" в зависимости от шаблона считывая привязку ТВ. Ох. ((%
Andrey
Чисто на дурака решение, не знаю, сработает или нет. Делаем модельку для выводимых ресурсов. Делаем там метод типа getImage($options) где генерим что-то, исходя из опций. Отдаём данные из контроллера как модель типа Material::where()->get(); В шаблоне просим $material->getImage([fieldImage,320,240,'jpg']);
Serguei
ТВ же разные значения для каждого ресурса будут иметь. А мне надо именно для всех ресурсов одного шаблона задать параметры. То есть я собрал сайт, к примеру все хорошо. А потом заказчик говорит, мол, давай картинки побольше сделаем. И чтобы я эту логику менял не в контроллере, а в каком-то конфиге, который где-то поближе к верстке находится.
Andrey
Ну это же и будет в верстке
Am
ClientSettings насколько понимаю подойдет. Или как он там назывался правильно, когда выносятся настройки.
Andrey
Хотя хз, что-то мне уже самому идея не очень. Не знаю почему.
Serguei
В шаблоне просим $material->getImage([fieldImage,320,240,'jpg']); Ну это почти то же самое, что там php ставить и phpthumb вызвать
Andrey
Ну условия были какие? Формат задать в верстке, вот, пжалста
Serguei
ClientSettings насколько понимаю подойдет. Или как он там назывался правильно, когда выносятся настройки.
Ну это в базу пихать параметры верстки, получается. Тоже что-то не то.
Serguei
положить ,что-ли, какой-нибудь ini-файл в папку с виюхой, и контроллером его проверять?
Am
Ну это в базу пихать параметры верстки, получается. Тоже что-то не то.
Зачем?! Насколько помню в clientsettings можно задать было свои настройки типа _phone_1 , _phone_2 и т.д. и выводить их в шаблоне. Просто создаем нужные настройки типа "Для шаблона Нормер 1 превью: xxx на yyy" и т.д
Andrey
Порнография имхо. Потом другой человек будет до седых мудей искать и воо,ще офигевать от .ini файлов)
Am
В рамках это, конечно, с .ini будет печаль. Все ждут что в админке будет выводится данные для настройки.
Andrey
Да черт знает. Размеры изображений это не то, с чем надо играться пользователю. Нет, ну если логика сайта предполагает частое изменение... Хотя вот так сходу не могу даже предположить зачем.
Am
Ну это в базу пихать параметры верстки, получается. Тоже что-то не то.
Не нужно в верстку никуда пихать. Просто получаем в контроллере для нужного шаблона нужные данные превью. Цель же запрограммировать - вот и получится. А в шаблоне просто выводить уже обработанные данные.
Andrey
А вариант с методом плох?
Am
Так а clientsettings разве не в базе данных хранит значения?
В Эво всё хранится в БД. Только не нужно пихать верстку. Вместо этого создать описание в каком шаблоне используется какой размер и дать эти размеры править.
Am
А вариант с методом плох?
Вряд ли плох, тут вообще велосипед на велосипеде. ((%
Serguei
Так размер идеологически не правильно править отдельно от верстки. Это должно быть что ли параметром верстки каким-то, или как это назвать, не знаю..
Am
Вы ж про превью говорили.
Andrey
Нечто похожее пишу сейчас. Правда, Лара. Там 1 изображение используется в шаблоне в 5 местах в разных размерах. В og:image, в превью с srcset (3 штуки) и ещё не помню где. Сделал вот так, как писал — задаю размеры и опции прямо в вью
Am
В верстку уже готовые превью передаются и/или указывается размер в верстке через теги. В данном случае в верстку нужно передать что-то типа $img_w и/или $img_h не говоря уже о адаптации блока.
Andrey
<picture> <source media="(min-width:760px)" srcset="{{$post->showImage(768)}}"> <source media="(max-width:480px)" srcset="{{$post->showImage(480)}}"> <img src="{{ $post->showImage() }}" alt="{{ $post->introtext }}"> </picture>
Andrey
Типа
Serguei
Вот представим идеальную картину - к примеру, сайт попал в команду, где один человек занимается только версткой, и он ничего не знает о том, как в эту верстку данные попадают, а другой человек занимается данные, и он ничего не знает, какие там размеры у элементов верстки и как данные в ней будут использоваться. По идее тому, кто занимается версткой, тоже незачем какие-то данные в базе данных хранить. Но ему надо как-то скомандовать контроллеру подготовить превьюшки всех требуемых размеров.
Andrey
Так блин как раз решение выше подходит)
Am
Нечто похожее пишу сейчас. Правда, Лара. Там 1 изображение используется в шаблоне в 5 местах в разных размерах. В og:image, в превью с srcset (3 штуки) и ещё не помню где. Сделал вот так, как писал — задаю размеры и опции прямо в вью
Стараюсь во вью ничего такого не задавать, а выносить в отдельный конфиг чтобы можно потом было в одном месте править, а не в каждом вью или в каждом месте вью. ((:
Andrey
А у меня 1 вью для этих постов, он везде инклюдится на сайте. Так что в 1 месте поправил и збс
Am
(:
Serguei
<picture> <source media="(min-width:760px)" srcset="{{$post->showImage(768)}}"> <source media="(max-width:480px)" srcset="{{$post->showImage(480)}}"> <img src="{{ $post->showImage() }}" alt="{{ $post->introtext }}"> </picture>
Ну такой вариан я тоже думаю, правда, чуть по-другому , заготовить картинки к примеру "малая горизонтальная, большая горизонтальная, малая квадратная, средняя квадратная" и т.д., и сделать "их чуть большего" размера. Примерно как ютуб генерирует набор картинок для превьюшек видео.
Andrey
Ну так и все по сути)
Andrey
Если же Доклистер, то в него можно передавать кастомные свои параметры и в prepare их ловить.
Serguei
Ну как бы да, но чуток избыточный размер картинок получится, если их на все случаи жизни заготавливать.
Andrey
ПОчему? Какой надо, тот вызываешь.
Serguei
Ну а в папке кеша генерируются они все.
Andrey
Что-то я нить беседы видимо потерял. Надо 3 изображения — делай 3. Откуда лишние??
Serguei
А сделать их чуть крупнее захочется если?
Axenia
Tresk (0) увеличил карму remote_adm (4972.98)
Pathologic
какой-то херней занимаетесь
Pathologic
в шаблоне просто выводить что надо, вот и все
Pathologic
типа там {{ image|phpthumb('w=100&h=100') }}
Pathologic
ну это в твиге
Anton
при авторизации в админке ломается верстка на сайте. Видимо bootstrap конфликтует. Есть вариант отключить этот функционал на страницах сайта? Если быть точным, то верхнее меню админа
Andrey
+ Спасибо! Как раз понадобилось. Первый раз сделал свое api 🙂
Самое прикольное, что я апи как раз и не делал ни разу ))
Andrey
какой-то херней занимаетесь
Спортивное нихуянеделаение. Второй разряд.
Anton
Как связана админка и сайт? Может плагин какой?
Если разлогиниться, то норм. При авторизации на страницах сайта появляется вверху меню с некоторым функционалом
Сергей
а ты не видишь какой? (((:
Ну возможно отключить quickManager?
Anton
Ну возможно отключить quickManager?
Сенк, думаю то, что нужно )
Сергей
Сенк, думаю то, что нужно )
Да он такой ещё гад)
Сергей
За ним следом и sourceFile можно отключить
Artem
вот для чего спрашивал: https://modx.ru/novosti-i-stati/article/444/#38756
Подскажи, по ссылке вариант рабочий? Не пойму, один сниппет вызывать перед формой,а другой в чанке с письмом?
Artem
ТАкой вопрос, сайт на эво 2.0 ругается на плагин Error : The EvolutionCMS\Core::setPlaceholders() method is undefined
Artem
На вот это какая понял $_COOKIE[$field] = $_COOKIE[preg_replace("/_i$/","",$field)]; $modx->setPlaceholders(array( $field => $_COOKIE[$field], ),'ref.');
Artem
как исправить?
Alexey
но на самом деле - неправильная реализация.
Андрей
Подскажи, по ссылке вариант рабочий? Не пойму, один сниппет вызывать перед формой,а другой в чанке с письмом?
Если для рево нужно, вот плюс-минус то же самое оформленное в пакет - https://modstore.pro/packages/utilities/utmmark
Andrey
Дамп $modx сделай уже. Может его там нет вообще.
Aliaksandr
setPlaceholderSSS
Раньше это вроде ставило сразу пачку плейсхолдеров из массива с определенным префиксом, поломали может😁
Сергей
Сергей
1.4 теперь на пыхе 8
Am
Все, можно не переходить на Эво 3.х. (:
Am
Вертаем всё в зад!
Aliaksandr
ставило и сейчас ставит, но только в доклистере
Не, мог и модх, сейчас там toPlaceholders но возможно был когда-то и set )) https://github.com/evolution-cms/evolution/blob/1.4.x/manager/includes/document.parser.class.inc.php#L5003