Встроенный модификатор ereplace
C помощью встроенного модификатора «ereplace» в парсере компонента pdoTools не могу привести строки вида assets/pictures/kepek/2015/18_Korrózió.jpg в следующую строку: assets/pictures/kepek/2014/18_Korrózió_w270_h220.jpg, в строках используется уникод.
Выводятся строки без изменений.
проверил
на сайте phpliveregex, регулярное выражение срабатывает
Код вывода:
Выводятся строки без изменений.
проверил
preg_replace("/^(.+)(.+)(\..{3,4})$/ium", "${1}${2}_w270_h220${3}", $input_lines);
на сайте phpliveregex, регулярное выражение срабатывает
Код вывода:
[[pdoResources? &parents=`5` &includeTVList=`Kep` &hideContainers=`1` &limit=`0` &showLog=`1` &fastMode=`1`
&tpl=`@INLINE {'{{+tv.Kep}}' | ereplace : '/^(.+)(.+)(\..{3,4})$/imu' : '${1}${2}_w270_h220${3}'} </br>`
]]
Подскажите пожалуйста, что делаю не так? Комментарии: 9
Подскажите пожалуйста, что делаю не так?Как минимум, смешиваешь 2 вида синтаксиса в чанке без особой причины. А если учесть, что Fenom отрабатывает в первую очередь, то модификатор получает на вход "[[+tv.Kep]]".
Попробуй так:
&tpl=`@INLINE {$_pls['tv.Kep'] | ereplace : '/^(.+)(.+)(\..{3,4})$/imu' : '${1}${2}_w270_h220${3}'} </br>`
Василий, большое спасибо! Заработало!
Если не сложно подскажите пожалуйста, как сделать, если усложню задачу:
Строку вида:
assets/pictures/kepek/2015/18_Korrózió.jpg
изменить на assets/pictures/kepek/2014/thumbs/20_Töredék_w270_h220.jpg
т.е. добавить папку thums перед файлом. Голову сломал как это сделать в регулярном выражений одной строкой.
Если не сложно подскажите пожалуйста, как сделать, если усложню задачу:
Строку вида:
assets/pictures/kepek/2015/18_Korrózió.jpg
изменить на assets/pictures/kepek/2014/thumbs/20_Töredék_w270_h220.jpg
т.е. добавить папку thums перед файлом. Голову сломал как это сделать в регулярном выражений одной строкой.
решил следующим образом
&tpl=`@INLINE {$_pls['tv.Kep'] | ereplace : '/^(.*[\/])(.+)(.+)(\..{3,4})$/imu' : '${1}thumbs/${2}${3}_w270_h220${4}'} </br>`
помог в этом ресурс regex101
Василий, подскажи пожалуйста:
Как заставить fenom прожевать эту инструкцию с регулярным выражением?
Unexpected token '${' in expression in modchunk/a186e5edb5a26a35539d3aa180d7eac0 line 8, near '{$_pls[«tv.Kép»] | ereplace: "/^(.*[\/])(.+)(.+)(\..{3,4})$/imu": "${' < — there
Как заставить fenom прожевать эту инструкцию с регулярным выражением?
{'pdoPage' | snippet : [ 'includeTVList'=>'Kép', 'parents'=>5, 'tpl'=>'@INLINE {$_pls["tv.Kép"] | ereplace : "/^(.*[\/])(.+)(.+)(\..{3,4})$/imu" : "${1}thumbs/${2}${3}_thumb_w270_h220${4}" }" ']}
выводит ошибку Unexpected token '${' in expression in modchunk/a186e5edb5a26a35539d3aa180d7eac0 line 8, near '{$_pls[«tv.Kép»] | ereplace: "/^(.*[\/])(.+)(.+)(\..{3,4})$/imu": "${' < — there
Я не Василий, но всё же попробую.
Нужно сделать чанк не инлайновым, а обычным, и смотреть, что получается. Такая ошибка обычно говорит об ошибке парсинга шаблонизатора, то есть где-то синтаксис некорректный
Нужно сделать чанк не инлайновым, а обычным, и смотреть, что получается. Такая ошибка обычно говорит об ошибке парсинга шаблонизатора, то есть где-то синтаксис некорректный
уже пробовал, не помогло
не у кого нет решения данной проблемы? выводил в отдельный чанк, та же проблема.
также перестал работать пакет articles если указан pdotools и включен fenom. (ошибка pdotools.class.php: 977) Unexpected token ':' in 7ff2e169dc058307be33c22826eeb38e line 99, near '{«class_key»:' < — there )
другие тоже указывают проблемы с новой версией pdotools 2.11.0-pl
другие тоже указывают проблемы с новой версией pdotools 2.11.0-pl
article заработал если заменить в шаблонах новостей строку [[*content]] на {$_modx->resource.content}
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.