Удалить неупорядоченный список из переменной smarty

0

Знаете ли вы, что является лучшим методом удаления первой <ul> и последней </ul > формы переменной smarty?

В настоящее время у меня есть переменная, которая выводит тег меню: {$menu} и подменю, но я просто удаляю первый и последний неупорядоченные теги списка, не удаляя теги <ul> из вывода подменю.

С нетерпением жду этого!

Теги:
smarty

2 ответа

1
Лучший ответ

Вы можете написать модификатор (и прикрепить его с помощью register_modifier), который разделяет первый и последний ul-теги. Для этого вы можете использовать регулярное выражение.

function smarty_strip_ul($text) {
    return preg_replace('~(.*?)<ul[^>]*>(.*)</ul>~s', '$1$2', $text);
}

а также

$smarty->register_modifier('strip_ul', 'smarty_strip_ul');

и в tpl

{$menu|strip_ul}
0

Это не очень легко решить...

Wether помещает уникальный элемент id, div/span в ваш список и меняет его, используя замену строки с помощью JQuery'ies с помощью функции document.ready().

JQuery также может помочь вам преобразовать содержимое вашего контейнера в dom-объект, а затем использовать: first и: last selectors для доступа к элементам, которые вы хотите удалить, и использовать функцию.remove().

В противном случае вы должны переписать его в ядре smarty, которое не может быть таким полезным, за исключением того, что вы знаете, что делаете, и не хотите потерять возможность легко обновлять smarty без конфликтов или перестраивать эту функцию.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню