session_start(); if (!isset($_SESSION['cart'])) { $_SESSION['cart'] = array(); } if (!isset($_SESSION['user_id'])) { $_SESSION['user_id'] = 0; } // Загрузим из БД данные об авторизованном пользователе if ($_SESSION['user_id'] > 0) { $user = db_select('SELECT * FROM `users` WHERE `id` = :id', array(':id' => $_SESSION['user_id'])); $user = reset($user); if ($user) { $_SESSION['user'] = $user; } else { $_SESSION['user_id'] = 0; $_SESSION['user'] = array(); } } else { $_SESSION['user'] = array(); } $action = get_current_action(); $path_to_controller = CONTROLLERS_DIR . '/' . $action . '.php'; // подключим файл, которые содержит код для выбранного $action if (file_exists($path_to_controller)) { require_once $path_to_controller; } else { // если передан несуществующий action - покажем 404 страницу not_found_404(); } // запишем данные сессии в файл сессии session_write_close();
/** * Возвращает список элементов меню сайта. */ function get_menu_items() { $is_logged_in = is_logged_in(); $items = array(array('title' => 'Домашняя страница', 'action' => 'homepage', 'visible' => true), array('title' => 'Товары', 'action' => 'products', 'visible' => true), array('title' => 'Регистрация', 'action' => 'signup', 'visible' => !$is_logged_in), array('title' => 'Авторизация', 'action' => 'login', 'visible' => !$is_logged_in), array('title' => 'Корзина', 'action' => 'cart', 'visible' => true)); $action = get_current_action(); // для каждого элемента меню в цикле определим foreach ($items as &$item) { // активен ли он $item['is_active'] = $action == $item['action']; // и ссылку на раздел сайта, за который отвечает элемент меню $item['url'] = './index.php?action=' . $item['action']; } unset($item); // уберём из массива элементы, которые не должны отображаться foreach ($items as $k => $item) { if (!$item['visible']) { unset($items[$k]); } } return $items; }