Активный пункт меню и другие динамические данные.

seyfer

Новичок
Как по вашему логичнее сохранять активный пункт меню пользователя.

Записывать просто в $_SESSION[] или при наличии модели Users и таблицы sessions в БД - функцией в таблицу sessions ?

Можно и так и так, можно вообще в файл. Какое решение лучше для таких данных?
 

флоппик

promotor fidei
Команда форума
Партнер клуба
А в переменной его хранить нельзя для этого?
 

seyfer

Новичок
Или я туплю.

Можно в контроллере активного раздела определять по ссылке, брать из базы ид меню и записывать в переменную. В шаблоне по этому ИД подсвечивать. Все равно обращение в базу будет.
 

Фанат

oncle terrible
Команда форума
Вообще, я думаю, надо просто начать делать.
В этом случае все [дурацкие] вопросы отпадут
 

seyfer

Новичок
Вообще, я думаю, надо просто начать делать.
В этом случае все [дурацкие] вопросы отпадут
Так вот из-за этих размышлений ничего делаться и не начало. :) Первый раз с базой сделал, а потом подумал про оптимизацию.

Да, логичнее всего получать от урла. Но тут тоже два варианта - сравнивать по этому урлу или пойти в базу, взять ид, а это лишний селект.
 

Фанат

oncle terrible
Команда форума
Что значит "логичнее"?
Других вариантов просто НЕТ.

С чем сравнивать - вариант тоже один. Ходить никуда не надо - все уже есть.
проблема выдумана на пустом месте.

начинай уже делать, все само собой разрулится
 

radioheaded

PHP нуб
Какую-то ерунду советуют, самого главного не спросили: а зачем его вообще сохранять?
 

seyfer

Новичок
С меню мы разобрались. Ответ очевидный, надо было мне кофе попить перед тем, как писать.

Но вопрос был более общий. Возможно есть ситуации, когда нужно подобные данные куда-то писать . Кто как решает вопрос?
 

fixxxer

К.О.
Партнер клуба
Если ты знаешь, какой контент надо вывести на данной странице, то знаешь, и какой пункт надо выделить.
 

Фанат

oncle terrible
Команда форума
...догадался Штирлиц :)

Попробуйте прочесть свой вопрос, "выпив кофе":
Возможно есть ситуации, когда нужно подобные данные куда-то писать.
Какие ситуации? Какие данные? Зачем писать?
Предпочтительный вариант чего? Абстрактного сохранения абстрактных данных? Пишите в БД.

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

Вынужден ещё раз попросить задавать осмысленные вопросы.
 

scorpion-ds

Новичок
Твоя CMS должна знать, какую страницу она в данный момент показывает, следовательно она знает какая текущая страница и следовательно тебе ничего хранить не нужно, твой текущая страница хранится у тебя в неком свойстве/переменной/методе, при генерации меню ты просто сравниваешь пункт генерируемого пункта меню и если есть совпадение, то выделяешь его.

Я к примеру таким способом разворачиваю нужную мне ветку меню (если это не выпадающие меню или не постоянно развернутое).
 

GatuZa

Новичок
сделать массив menu
в контроллерах страниц определять значения менюшек (в конктрукторе)
в базовом контроллере сделать вывод menu в шаблон
в шаблоне прописать условия отображения

у меня сделано так - ИМХО самый удобный вариант
 
Сверху