Основные моменты в новой редакции блоголёта пересмотрены и переделаны, и почти закрыты все неясные вещи. Остается неопределенность с меню в админке.

Сейчас меню в админке чисто условное - два параграфа ссылок: меню и подменю, где ссылки начинаются символом • что по меньшей мере как то несерьезно по детски. Требуется нормальное, взрослое, меню. А конкретно - замена обычного меню на меню админке. Также меню должно показываться в соответствии с правами залогиненного пользователя. Чтобы не искушать недоступными пунктами.

Решение в лоб - генерировать дерево на лету в соответствии с правами, меню не кэшировать, игнорировать основное меню. Проблема в следующем - меню в блоголёте это класс tmenu и tmenuitem. Соответственно если для админки придется делать альтернативное меню, которое будет управляться теми же классами. Сейчас же меню админки вообще как бы и не существует - есть несколько классов, которые генерируют контент точно также как и все классы в блоголёте. Неверно формулирую проблему - для управления меню есть админка, а как тогда управлять меню админки? да в принципе можно и не разрешать рулить меню админкой.

Скорее всего переделаю обычное меню, и от него сделаю потомка для меню админки. Переделка обычного меню сведется к тому, что все дерево хранить в готовом виде, в уже подготовленном к использованию виде. В отдельных файлах хранить только текст (для админки этого не нужно, так как контент генерируется на лету). Получится утилизация класса tmenuitem, либо его полная виртуализация, наподобие класса tcomment, который не имеет собственных данных, а является прослойкой для доступа к классу владельцу, в котором хранится целиком весь список, в удобном для списка виде.

Если таким образом делать меню, то возникает вопрос о расширяемости. Пример такого расширение - форма контактов. Эта страница обрабатывает пост запрос. Но можно совсем упростить дело - ввести событие processform, для обработки данных. Если обработчик отсутствует, то может быть выдавать ошибку? Скорее всего ничего не делать - если к обычным страницам послать пост запрос, то они же нормально откроются. Если захочется особой динамики, то внутрь текста легко внедряется php код. Так и поступлю.