Jump to content

Recommended Posts

Добрый день!

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

 

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

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

 

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

 

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

Share this post


Link to post
Share on other sites


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

Share this post


Link to post
Share on other sites
{$dopimage.color_name|escape:'UTF-8'|replace:'\'':''}

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

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

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

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

Share this post


Link to post
Share on other sites

в php файле создать правило для первого уровня и всех остальных

 

Функция там getCategory

if($category->level_depth != 1){
//
}else{
//
}
Edited by Kerm (see edit history)

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
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>

Share this post


Link to post
Share on other sites

×

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More