wizips Posted May 13, 2014 Share Posted May 13, 2014 Добрый день! Подскажите как правильно на смарти воспользоваться 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 More sharing options...
Kerm Posted May 14, 2014 Share Posted May 14, 2014 {$dopimage.color_name|escape:'UTF-8'|replace:'\'':''} Link to comment Share on other sites More sharing options...
wizips Posted May 14, 2014 Author Share Posted May 14, 2014 {$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 More sharing options...
Kerm Posted May 14, 2014 Share Posted May 14, 2014 (edited) в php файле создать правило для первого уровня и всех остальных Функция там getCategory if($category->level_depth != 1){ // }else{ // } Edited May 14, 2014 by Kerm (see edit history) Link to comment Share on other sites More sharing options...
wizips Posted May 14, 2014 Author Share Posted May 14, 2014 Да спасибо, у меня так и сделано - я просто хотел сделать более универсальный вариант что-бы при обновление ничего не менялось. Link to comment Share on other sites More sharing options...
wizips Posted May 15, 2014 Author Share Posted May 15, 2014 Сам задал вопрос сам и отвечаю, мало ли кому понадобиться. Так как дизайнер был в пике своей активной фазы он нарисовал меню для реализация которого мне нужно было добавить два 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 More sharing options...
Recommended Posts