Jump to content

smarty: preg_replace


Recommended Posts

Добрый день!

Подскажите как правильно на смарти воспользоваться preg_replace?

 

Хочу изменить ссылки вида <a>Текст</a> на <a><i><i>Текст</i></i></a>.

Данные ссылки относятся к горизонтальному меню, пробую так:

 

{$MENU|regex_replace:"/(<a.*>)/":"${1}<i><i>"}

 

что-бы для начала открыть теги <i> до начало текста ссылки, но ничего не выходит.

Link to comment
Share on other sites

{$dopimage.color_name|escape:'UTF-8'|replace:'\'':''}

Спасибо за отклик но это не то.

Мне нужно все ссылки (первого уровня) в горизонтальном меню заменить с <a>Текст</a> на <a><i><i>Текст</i></i></a>.

Как вариант можно произвести замены в blocktopmenu.php но не хорошо каждый раз после обновлений производить данные изменения.

Поэтому хочется изменить $MENU в шаблоне вывода blocktopmenu.tpl.

Link to comment
Share on other sites

Да спасибо, у меня так и сделано - я просто хотел сделать более универсальный вариант что-бы при обновление ничего не менялось.

Link to comment
Share on other sites

Сам задал вопрос сам и отвечаю, мало ли кому понадобиться.

Так как дизайнер был в пике своей активной фазы он нарисовал меню для реализация которого мне нужно было добавить два inline блока (в моём случае <i>, так как под <span> написаны стили в default теме).

Что-бы не затрагивались изменения topmenu после обновлений, была задача произвести изменения в tpl файле модуля, поэтому пришлось всё-же взяться за изучение smarty :)

Вот в принципе решение:

			{assign var=MENU value=$MENU|regex_replace:"/(<a.*?>)/":"\\1<i><i>"}
			{assign var=MENU value=$MENU|regex_replace:"/<\/a>/":"</i></i></a>"}
			{$MENU}

Теперь ссылки из blocktopmenu будут выглядеть вот так:

<a href="#"><i><i>Ссылка</i></i></a>

Link to comment
Share on other sites

×
×
  • Create New...