Сергей
#preview/#
Сергей
экранировать можно любыми одинаковыми символами
Сергей
отличными от условия
Anonymous
Вот такой интересный вызов в итоге: [*layout:preg_replace(#layout/#,layout/preview/)*]
Anonymous
первый аргумент экранируется, а второй нет!
Сергей
ну нормальный)
можно
preg_replace(!layout/!,$1preview/)
Anonymous
точно! забыл про подстановку) Спасибо!
Сергей
ну это на скорость не влияет))
Anonymous
Кстати так не зафурыкало..
Anonymous
$1 игнорирует
Сергей
preg_replace(!layout/!,\\$1preview/)
Сергей
или один слеш
Anonymous
неа :( ни так ни так..
Сергей
@EGO7000
мне тут подсказали
сниппет sgThumb подходит для fastImage
Anonymous
Ыыыы))) он как раз тот же велосипед, что было предложено в начале))) ладно, оставлю preg_replace!
Сергей
ну дело то хозяйское)
Anonymous
Это да)
Сергей
так то и плагином можно, получить все твшки по названию, и заменить у них путь
Anonymous
Можно по всякому извращаться, но я за простоту решений)
Женечка
Сергей, [20.09.17 01:29]
preg_replace(!layout/!,\\$1preview/)
EGO (r), [20.09.17 01:30]
неа :( ни так ни так..
если $1 для того что бы layout/ сохранился, тогда искомый шаблон надо обернуть в круглые скобки
Женечка
preg_replace(!(layout\/)!,\\$1preview/)
Женечка
http://regex.larsolavtorvik.com/ удобно тестить регулярки именно для php
Сергей
Евгеша
а этот чем не угодил?
https://regex101.com/
Женечка
))
Женечка
Женечка
давно не ковырял регулярки, первое что попалось то и дал, "ваш" сайт тоже есть
Женечка
а как там выбрать режим замены?
Женечка
нашёл
Женечка
Ваш сайт тоже говорит что не хватает скобок.
Сергей
Евгеша
если давать всегда 100% рабочие решения, то все перестанут думать
Женечка
😆 столкнулся с подобным.
AgelNash на сайте modx.im в одной из своих тем ответил на вопрос, показав пример кода. Я пол часа мучался, он у меня не работал. Оказалось там была помарка, может совсем не случайно. Но мне запомнился момент)
Anonymous
Всё это конечно хорошо, только я со скобками круглыми пробовал - в ошибку вылетает и unknown возвращает)
Женечка
вы же не хотите перестать думать)
Anonymous
Да что тут думать, если опыт говорит, что регулярки = геморрой, хотя если его вылечить, будет хорошо)) и что в итоге - полчаса прошло, а рёбанная подстановка по факту не работает в модификаторах😂
Женечка
а как геморрой лечится?
Anonymous
За сайт спасибо, под php действительно довольно удобно. У меня где-то в закладках был тоже хороший сайт, там подсказки очень удобно были реализованы.
Anonymous
а как геморрой лечится?
Про настоящий не знаю, а про геморрой с регулярками если это не перешло в хроническое, то лучше не замечать😂😂😂
Женечка
и второй вопрос, что за строка в плейсхолдере? (у себя на сайте попробую)
Женечка
настоящий не лечится, только операция
Anonymous
какая строка в каком плейсхолдере?)
Женечка
[*layout*]
Anonymous
ааа, да это просто tv-параметр такой)
Женечка
хорошо, давайте иначе: покажите строку которая в этом ТВ
Anonymous
строка такая - assets/images/layout/model.jpg
нужно вывести так: assets/images/layout/preview/model.jpg
Anonymous
Так-то я уже выше рабочий вариант написал)))
Женечка
ясно, видел. Но всё равно хорошо что повторили. Теперь у меня уже точно нет вопросов)
Anonymous
просто не хочет с $1 работать)
Anonymous
вишенка на торт, так сказать)
Женечка
о_О
Женечка
у меня вообще ничего не выводит на экран
Женечка
[*layout:preg_replace(!ss!,SS)*]
Женечка
на странице пусто
Женечка
[*layout*] - на странице assets/images/layout/model.jpg
Anonymous
Фильтры включены?
Женечка
@EGO7000 , у вас работает?
Женечка
скорее нет
Anonymous
один вопрос - где в строке ss?)
Anonymous
assets точно)
Женечка
)
Женечка
что указать в настройках ТВ что бы replace заработал?
Сергей
@EGO7000 через снипет будете выводить?
Anonymous
У меня работает как [*layout:preg_replace(#layout/#,layout/preview/)*]
так и
[*layout:preg_replace(!ss!,ZZ)*]
Anonymous
вызывается в чанке, без всяких сниппетов.
Anonymous
Сергей
Anonymous
Чистая 1.3.6 без phx c включёнными фильтрами в настройках сайта.
Anonymous
и на 1.3 работало
Женечка
У меня работает как [*layout:preg_replace(#layout/#,layout/preview/)*]
а зачем усложнять?
Женечка
Если бы искомый шаблон был хитрее - [a-z]{5,10} или типа того, то я могу понять.
Или просто попытка сэкономиться 7 символов?
Anonymous
Сергей
@EGO7000
[*image:preg_replace=`!(^.*[\\\/])!,$1preview/`*]
вот вам готове решение, но str_replace будет быстрее работать
Женечка
даа)))
Anonymous
Женечка
точно. Слеш надо не просто экранировать, а заэкроанировать по самое не балуй
Сергей
зато прегреплейс как и хотели и рабочая))
Anonymous
Женечка
Женечка
я вычитал: с начала строки до слеша заменить на ....
Но вам ведь надо не с начала строки.
Сергей
@EGO7000
а так ещё быстрее будет
[*image:str_replace=`images/,images/preview/`*]