Сергей
Попробовал через параметр documents указать сниппет [!documents?id=[+id+]!]: $q = $modx->db->makeArray($modx->db->query('select id from modx_site_content where parent = '.$id)); $ids = []; foreach ( $q as $v ){ $ids[] = $v['id']; } return $ids; Выдаёт ошибку: SQL > select id from modx_site_content where parent = [+id+
Антон
id='[+id+]'
Антон
а так?
Антон
только кавычка такая `
Сергей
SQL > select id from modx_site_content where parent = [+id+]
Сергей
и с такой и с другой
Сергей
Если в сниппете указать return $id; то выдаёт не [+id+], а идентификатор
Dmytro
В покрытии тестами все равно какую версию покрывать ибо логика работы одинаковая, цель в том что б все что работало в 7.1.6 работало и во всех последующих версиях. Так что по части юнит тестов не переживайте
Dmytro
В доклистер проще через prepare.
Dmytro
Phx есть в ядре и будет, поддерживает его Яма. Я туда не лезу так как его не использую и не рекомендую;) без него очень даже все работает;)
Сергей
В продолжение своей темы, перевёл всё на свой сниппет, теперь то всё ок (у меня), но проблема то modx мной описанная серьёзная, её бы решить
Dmytro
Где серьездная проблема??
Сергей
Как бы у кого что не слетело при переходе
Dmytro
Не должно работать так как ты указал
Dmytro
Id=[+id+]
Сергей
[[DocLister?parents=0 &tpl=@CODE: [[DocLister?parents=[+id+] ... ]] ... ]] Так должно? Я перепробовал всё
Dmytro
Нет так не должно
Сергей
все кавычки вырезались
Сергей
так раньше то работало
Dmytro
При чем тут кавычки у тебя у вложенного снипета есть параметры
Dmytro
А значит его надо выносить в чанк
Anton
tpl в чанк
Сергей
семён семёныч)
Pavlo
или можно в prepare вынести вызов вложенного снипета
Pavlo
тогда не нужно будет чанк
Dmytro
+1
Dmytro
И работать так быстрее будет
Pavlo
ага
Антон
Помогите с sgLister разобраться. Точнее связкой if и sgLister
Антон
Есть вызов картинки: [[if? &is=[+newsImage+]:!=: &then=<a href="[~[+id+]~]"><img class="imgl borderedbox pad5" title="[[alterTitle? &id = [+id+]]]" alt="[[alterTitle? &id = [+id+]]]" src="[[phpthumb? &input=[+newsImage+] &options=`w=125,h=125,zc=1]]" ></a>` &else={{image_one}}]]
Антон
и чанк image_one: [[sgLister? &display=1 &ownerTPL=@CODE: [+dl.wrap+] &thumbSnippet=phpthumb &thumbOptions=w=80 &tpl=@CODE:<a rel="fancy" href="[~[+id+]~]" title="[[alterTitle? &id=[+id+]]]" alt="[[alterTitle? &id=[+id+]"><img class="imgl borderedbox pad5" alt="[[alterTitle]]" title="[[alterTitle]]" src="[+thumb.sg_image+]"></a> ]]
Антон
и не работает
Антон
выводится содержание чанка в виде текста
Anton
Глняь доки по if &else=@TPL:image_one
Андрей [aharito]
[[DocLister?parents=0 &tpl=@CODE: [[DocLister?parents=[+id+] ... ]] ... ]] Так должно? Я перепробовал всё
Да, Сергей, в инлайн шаблонах вызовы сниппетов не работают.
Сергей
я по моему раза три до этого сам догадывался, но так и не усвоил видимо
Андрей [aharito]
выводится содержание чанка в виде текста
Потому что кешированный сниппет вложен в кешированный
Антон
Потому что кешированный сниппет вложен в кешированный
делал кешированный внутри некешированного. не то
Антон
оно всё внутри чанка, который шаблон для доклистера
Андрей [aharito]
я по моему раза три до этого сам догадывался, но так и не усвоил видимо
Гораздо удобнее препаре, там и вызвать сниппет можно через $modx->runSnippet, и php использовать
Сергей
Я пока к препаре не особо привык
Андрей [aharito]
оно всё внутри чанка, который шаблон для доклистера
Здесь очень неудобно код читать, непонятно на узком экране
Андрей [aharito]
Сергей
надо будет потом не забыть) сейчас то я уже сниппет свой использовал
Андрей [aharito]
оно всё внутри чанка, который шаблон для доклистера
У вас в чанке вызов сниппета sgLister, а в нем инлайн-шаблон, а в инлайн шаблоне снова вызов сниппета
Антон
Да в общем, такой смысл этого всего: Есть раздел новости, куда выводится превью и summary. Сейчас превью подтягивается из TV. И в общем, всё работает. Но часто в новости есть ещё разные картинки. И подтягиваются они туда через sgLister. Хочется избавиться от TV, чтобы в список новостей выводилась первая картинка из галереи, если нет TV.
Dmytro
Лучше сразу привыкайте к препаре оно не только проще будет но и сайт заметно быстрее работать станет
Андрей [aharito]
оно всё внутри чанка, который шаблон для доклистера
А в инлайн шаблонах вызовы сниппетов не работают, да он там и не нужен, почитайте про плейсхоьдер title в доках по доклистеру
Dmytro
Ну так проверка в препаре и готово
Dmytro
А в шаблоне просто [+image+]
Андрей [aharito]
оно всё внутри чанка, который шаблон для доклистера
А вообще все это напоминает сказку - иголка в яйце, яйцо в сундуке, у сундук на дереве ))
Антон
ага :)
Anton
Привет
Андрей [aharito]
Не делайте влож. Сниппетов, напишите лучше обертку или используйте prepare
Алексей
для чайников есть где нибудь наглядный пример?
Anton
Подскажите: есть папка с фото на сайте. Хочу отресайзить их в меньший размер и положить в подпапку с теми же именами. Как лучше организовать?
Антон
для чайников есть где нибудь наглядный пример?
http://docs.evolution-cms.com/Extras/Snippets/DocLister/%D0%9E%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0%20%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85%20%D0%BF%D0%B5%D1%80%D0%B5%D0%B4%20%D0%B2%D1%8B%D0%B2%D0%BE%D0%B4%D0%BE%D0%BC
Алексей
😅 ну да глупый вопрос был
Anton
Это единожды или для каждого нового документа или еще как то?
Единожды. Пройтись по всем картинкам в паркет физически создать копии меньшего размера
Andrew
понаделают вложенности из if, потом такое практически нечитабельным становится
Антон
дак вот...
Антон
теперь пытаюсь это в нормальный вид привести
Andrew
в prepare - передается название сниппета, создаешь сниппет как обычно, в нем получаешь переменную $data - и работаешь с ней, в конце сниппета return $data; например $data['customTitle'] = $data['pagetitle'] . ' click me'; return $data; в $data для доклистера по сути попадают поля докумнета + tv, если указаны для выборки
Андрей [aharito]
Единожды. Пройтись по всем картинкам в паркет физически создать копии меньшего размера
Дык есть сниппет phpthumb и даже классы и библиотека в пхп. используйте то или другое. Напр, создайте ресурс с шаблоном blank, вшаблоне напишите обертку, где и вызовете phpthumb нужное колво раз с нужными параметрами
Andrew
phpthumb
Andrew
и не нужно ничего усложнять )
Андрей [aharito]
и не нужно ничего усложнять )
Ему нужно один раз папку картинок перересайзить. Если не усложнять, тогда уж фотошоп )))
Andrew
1) создаете сниппет 2) в нем получаете список файлов 3) любой ресайз - гугл, можно и thumb - просто потом перенести адрес срезайненной картинку в нужную папку, можно даже и переименовать, что сгенерировал thumb 4) ну и да, как предложили можно создать документ и в нем вызов своего сниппет, как вариант
Антон
как-то делал так: скачал все картинки, прогнал из через пакетную обработку xnview, закачал обратно
Andrew
тоже вариант )
Антон
ФКР?
Андрей [aharito]
ФКР - это Фактор Крутости Разработчика )))))
Антон
ааа :)