Возник один вопрос. Интересно было бы узнать варианты действий.
Имеем:
меню, которое хранится в БД
<ul type=none>
<li>{_link.home_}</li>
<li>{_link.univers_}</li>
<li>{_link.admins_}</li>
<li>{_link.news_}</li>
<li>{_link.access_}</li>
<li>{_link.settings_}</li>
<li>{_link.exit_}</li>
</ul>
Комплект языковых файлов, которые заменяют названия элементов списка
например
$lang['link.univers'] = "<a href='/univers'>Университеты</a>";
Сейчас сделано так:
В зависимости от текущей локации, из БД вытягивается нужное меню.
Вопрос:
Возможно ли средствами php сделать установку атрибута <li class="selected">
Дополнение:
Жду интересные идеи по реализации, используя только php
Спустя 13 минут, 45 секунд (25.10.2011 - 14:40) McLotos написал(а):
В идеале можно было бы сделать как-то так
<li class="{$class}">
но в таком случае пришлось бы писать функцию, которая бы выполняла сразу несколько задач:
1. Определить где находится юзер
2. Пролистать все меню и найти нужную кнопку
3. Заменить в этой ссылке название класса
Но возникает проблема, по скольку в самих элементах списка нет ссылки, там только переменная, которая меняет своё значение в зависимости от языка
<li class="{$class}">
но в таком случае пришлось бы писать функцию, которая бы выполняла сразу несколько задач:
1. Определить где находится юзер
2. Пролистать все меню и найти нужную кнопку
3. Заменить в этой ссылке название класса
Но возникает проблема, по скольку в самих элементах списка нет ссылки, там только переменная, которая меняет своё значение в зависимости от языка
Спустя 1 час, 8 минут, 3 секунды (25.10.2011 - 15:48) SlavaFr написал(а):
str_replace ?
Спустя 58 минут, 32 секунды (25.10.2011 - 16:46) walters написал(а):
самый удобный вариант, отследить на какой странице юзер и вывести ему нужное меню
Спустя 14 часов, 11 минут, 39 секунд (26.10.2011 - 06:58) McLotos написал(а):
Цитата (walters @ 25.10.2011 - 13:46) |
самый удобный вариант, отследить на какой странице юзер и вывести ему нужное меню |
Понимаете ли в чем дело, walters, первоначально так и было, но только представьте если в проектк 8 уровней доступа, у каждой группы пользователей как минимум 10 локаций. Хранить в БД 80 разных вариантов меню. Это уже слишком, вам так не кажется?
Спустя 6 минут, 55 секунд (26.10.2011 - 07:05) McLotos написал(а):
Вообще-то можно было бы придумать огромное колличество вариантов, ну из тех которые пришли в голову только что:
1. Динамическое присвоение класса элементу списка текущей страницы
<li class='{$class}'>, где $class переменная, которая будет иметь 2 различных значения.
2. Создать один массив со всеми существующими локациями для каждой группы, и просто перебирать этот массив заменяя атрибут класса.
3. В голове висит ещё море вариантов, просто не могу сформулировать =)
1. Динамическое присвоение класса элементу списка текущей страницы
<li class='{$class}'>, где $class переменная, которая будет иметь 2 различных значения.
2. Создать один массив со всеми существующими локациями для каждой группы, и просто перебирать этот массив заменяя атрибут класса.
3. В голове висит ещё море вариантов, просто не могу сформулировать =)
Спустя 3 часа, 29 минут, 4 секунды (26.10.2011 - 10:34) SlavaFr написал(а):
@McLotos с удовольствием помог бы но непонимаю в чем собстбенно проблема.
на поставленный вопрос "Возможно ли средствами php сделать установку атрибута <li class="selected">"
я дал собствено ответ.
остальные комментарии не помогли мне понят проблему, а нааборот както запутывают.
если вам простые функции слишком просты, то могу предложить DomDocumen или regexpres
на поставленный вопрос "Возможно ли средствами php сделать установку атрибута <li class="selected">"
я дал собствено ответ.
остальные комментарии не помогли мне понят проблему, а нааборот както запутывают.
если вам простые функции слишком просты, то могу предложить DomDocumen или regexpres
_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки