PHP Урок 19. Добавляем меню навигации
PHP Урок 19. Меню
Предыдущие уроки:
Программируем на PHP - Введение
PHP - Запросы от браузера к серверу
PHP - Как работает сервер
PHP - Урок 4. PHP - интерпретатор
PHP - Урок 5. Переменные сервера и глобальные переменные
PHP - Урок 6. Конструкции print и echo. Кавычки одинарные и двойные и конкатенация строк
PHP - Урок 7. Переменные, константы и условия
PHP - Урок 8. Точка входа в приложение. Настройка mod_rewrite и файл .htaccess
PHP - Урок 9. Массивы и switch. Кодим основной каркас
PHP - Урок 10. COOKIE
PHP - Урок 11. Функции. Добавляем ядро системы core.php
PHP - Урок 12. Обзор модели MVC. Добавляем шаблоны страниц в наше приложение
PHP - Урок 13. Введение в базы данных и SQL. СУБД MySQL. Подключаемся к БД из нашего приложения
PHP - Урок 14. Регистрация пользователей на сайте
PHP Урок 15. Авторизация пользователей
PHP. Урок 16. Проверка авторизации. Функция check().
PHP Урок 17. Добавляем CSS фреймворк Bootstrap и jQuery
PHP Урок 18. Загрузка файлов на сервер
Теория
Понятно, что ни одна социальная сеть не обходится без меню. Особенно верхнего. Оно и в твиттере, и в голосе и даже в инстаграме есть. Так будет же и у нас. Надеюсь все помнят как ведет себя меню:- Если вы авторизированы - вам предоставляется панель управления вашими личными данными и настройками.
- Если вы не авторизированы - кнопка войти. Ну естественно заголовки и всякий популярный контент, мол посмотрите как у нас тут хорошо.
Наше меню не будет исключением. А поскольку мы подключили библиотеку bootstrap3 то добавив уже готовые стили, попробуем предать ему благородный вид. (Если что у меня с версткой все плохо не говоря уже о дизайне=))
Практика
Нам необходимо добавить даже 2 меню. Так понятнее. Тем-более там в основном копипаст. Одно будет для авторизованных пользователей, а другое нет.
Так как наше меню должно всегда отражаться, несзвисимо на какой странице пользователь.
Поэтому добавляем его в начале шаблона обертки - index.tpl.php
Поскольку саму авторизацию мы уже сделали, нам будет не сложно. Мы будем проверять id не равен ли он нулю. Если ноль, значит - нужно отобразить меню с кнопкой Войти.
Вставляется это дело сразу после тега body и там оно выложится до секции с подключением внутряка.
Тут много тегов не нравится редактору голоса поэтому картинкой
Среди множества бутстраповских тегов мы можем заметить
<?if(!$this_id){?>
<?}else{?>
Непосредственно так мы и определяем какое меню показывать. A $this_id как мы помним мы определили в главном файле приложения index.php
$pdo = init();
// Проверка авторизации
$cookie_id = $_COOKIE['id'];
$cookie_hash = $_COOKIE['hash'];
$this_id = check($pdo, $cookie_id, $cookie_hash);
Так как инициализация переменной до сегмента switch (точнее вне его) то эта переменная будет присутствовать во всех шаблонах, в том числе и index.tpl.php