бгг, это как-то убого. Где посмотреть статистику по включенным/отключенным JS у пользователей? а еще: вот у меня есть список комментов, на моих комментах я должен показывать кнопку редактировать. Как это реализовать? не сохранять же для каждого пользователя свой кеш
Нет, так и делай, через JS. А если у пользователя отключен Яваскрипт, то просто дата показывается (вида дд.мм.гггг), вот и все. А вообще, не стоит ради параноиков, у которых отключен Яваскрипт, создавать себе проблемы. Подстраиваться под 0.0001% от всех пользователей интернета абсолютно не имеет смысла. Кнопку редактировать лучше не надо — будет много «пустых» комментариев (чувак что-нить ляпнет, ему ответят, а он возьмет и отредактирует свой камент, заменив весь камент на пробел) Самой обычной операцией — есть кеш, если добавляется камент, то кеш очищается и создается новый. Точно так же, когда редактируешь — очищаешь весь кеш и делаешь новый )
artuska я имел ввиду как реализовать кеш так, что б только на своих комментах я видел надпись редактировать. Нужно делать возможность редактировать или нет - заказчик решит а не я. вот я и хотел бы взглянуть на статистику эту. То ли LI то ли GA предоставляет такую возможность
Аааа, тьфу, точно. Эммм… Кеш самый обычный — его на страницу и выводишь. В конце яваскриптом по-айдишке юзера выбираешь каменты, в блок каждого комментария пихаешь ХТМЛ код с кнопочкой «Редактировать камент». Аяксом отсылаешь.
на торрентсру не так сделано (наверно и в vBulletin тоже). Значит думаю, что есть более внятное решение.
написал я тут плагин для отрисовки менюшки на основе древовидной структуры сайта. В распоряжении у меня списки смежности (id, parent_id). Другую модель использовать не буду, даже не уговаривайте. Нужно теперь это дело закешировать. Например, используя APC. Да хочу сразу html кешить, хуле нам, кабанам? У плагина есть настройки. $this->params: int rootId - id элемента, с которого начинаем выбирать дерево int depth - глубина, на которую спускаемся при выборе bool->int currentId - если false - то не учитываем на какой странице сейчас. Если не false - то это должен быть id страницы, на которой мы сейчас int depthLower - на сколько глубоко опускаться от currentId int depthHighter - на сколько высоко подниматься от currentId. Выше rootId мы никак не поднимемся set templates - списочек шаблонов. Можно на каждый уровень дерева свой шаблон задать. так вот. Закешировать-то я это могу. sort($this->params), сериализую это, делаю sha1 или md5 от сериализа - получаю уникальный ключ, именно для этого currentId. Записываю, получаю. Все вроде бы хорошо. Но! Тут я меняю порядок элементов. Мне нужно сбросить кеш. Как? Можно конечно сбросить весь кеш для всех вариантов использования плагина, но это не есть гуд. Как по-другому составлять ключи?
я тут подумал.. Наверно буду весь кеш сбрасывать. Так как для того, что б частично его сбрасывать, мне нужно будет учитывать все id-элементы, которые в каждом конкретном случае заюзаны.