Интересно.Я работал с Joomla в течение многих лет, писал все виды расширений для различных целей, включая интеграцию внешних систем.Мой опыт - подходить к таким ситуациям, рассматривая основные потребности выполнения кода.И я всегда начинаю с вопроса: управляется ли он пользовательским интерфейсом или системой?
Сначала рассмотрим, будет ли код выполняться в соответствии с сгенерированными пользователем системными событиями.Их целая куча, и вы даже можете запустить свою собственную.Если это требование, тогда решение должно включать плагин, прикрепленный к событиям.
Однако для любого содержимого динамического интерфейса вам понадобится модуль.Модули все о отображении контента.Эти ребята предназначены для удобства пользователей.Итак, рассмотрим, как будет управляться доступ к контенту пользовательского интерфейса.Какие пользователи будут составлять «аудиторию» этого контента?Это контролируется группами пользователей и уровнями доступа.В какой-то момент в вашем коде, предпочтительно на ранней стадии, вам придется проверить права пользователя и затем изменить исполнение кода в ответ.К счастью, я обнаружил, что кто-то уже проделал большую работу за меня.Как?
Найдите расширение, которое выполняет то, что должен делать ваш код, или настолько близко, насколько это возможно.Вся CMS построена с расширениями, работающими на Joomla!Framework и есть тысячи расширений, доступных для скачивания.Как только вы нашли это, клонируйте вещь.Затем отредактируйте его так, чтобы он делал то, что вам нужно, плюс то, что он делал раньше (если это требование).Установите обновленный клон, отмените публикацию оригинала и опубликуйте свой.Экономит много времени.
Учитывая ваши требования, код выполняется только до тех пор, пока есть сеанс.Я бы начал с плагина типа пользователя.Когда пользователь запускает событие входа в систему, плагин может добавлять записи динамического меню в переменную сеанса в виде массива записей базы данных.Когда пользователь запускает выход из системы или время ожидания сеанса, записи исчезают сами собой.Тогда я просто клонировал бы "mod_menu" и прочитал все записи, которые он находит в сеансе пользователя.Я все время использую эту технику переменных сеанса, особенно при реализации аналитических методов сбора данных.
В любом случае, я не публикую часто;но я надеюсь, что это поможет.Я хотел бы увидеть этот тип функциональности самостоятельно.Просто нет времени, чтобы закодировать это.
Удачи!
chozyn