У меня есть навигация, управляемая базой данных, в основном состоящая из двух таблиц: menus
и menu_items
, это отлично работает для чисто «статических» ссылок, но теперь мне нужна динамическая ссылка (логин/выход).
Моя таблица menu_items
состоит только из ссылок на страницы, добавленные вручную в админке. Итак, теперь мне нужно настроить таблицу и модель, возможно, так, чтобы она могла обрабатывать «динамические» ссылки.
Вот схема таблицы menu_items:
CREATE TABLE `menu_items` (
`id` int(11) NOT NULL auto_increment,
`menu_id` int(11) default NULL,
`label` varchar(250) default NULL,
`page_id` int(11) default NULL,
`link` varchar(250) default NULL,
`position` int(11) default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8
Идентификатор меню соответствует другой таблице, поэтому 1, например, является основной навигацией, 2 может быть служебной навигацией. Позиция относится к порядку относительно каждого меню, в котором отображается пункт меню. Ссылка — это просто поле, например, «/user/login».
Я просматриваю каждое из своих меню и создаю контейнеры навигации и использую для этого Zend Navigation.
Вот логика, которую я использую для своей области входа в систему, мне нужно переместить ее и включить в динамическую навигацию:
<?php if($this->identity == null) { ?>
<p><a href='/user/login'>Login</a></p>
<?php }else{ ?>
<p>Welcome back <?php echo $this->identity->first_name;?></p>
<p>To log out <a href='/user/logout'>click here</a></p>
<?php } ?>
Похоже, мне нужно добавить новый столбец для уровня доступа для каждого из пунктов меню, а затем обновить мою модель меню, чтобы учесть, вошел ли пользователь в систему или нет, и запросить новое значение столбца доступа к элементу меню или что-то в этом роде. линии. У кого-нибудь есть предложения?