Запуск простого сайта на MV
В данном разделе описан пример запуска простого сайта на MV. Предполагается что уже произведена установка и запуск фреймворка.
Предположим имеется сверстанный шаблон в HTML.
<head>
<title>Тестовый сайт</title>
<link rel='stylesheet' type='text/css' href='/media/css/style.css' />
</head>
<body>
<header>
<ul>
<li class='active'><a href='/about'>О нас</a></li>
<li><a href='/services'>Услуги</a></li>
<li><a href='/contacts'>Контакты</a></li>
</ul>
</header>
<section class='content'>
<h1>Заголовок страницы</h1>
<p>Содержание страницы</p>
</section>
<footer>© Привет мир</footer>
</body>
Здесь будет использована модель Pages, описанная в разделе Предустановленные модели. Модели для сайта уже созданы, мы будем работать только с шаблонами из папки views. Более подробно о маршрутизации можно прочитать в разделах Общие принципы шаблонов и Объект MV.
1. Разделение шаблона на header и footer
Большинство сайтов имеют повторяющуюся верхнюю и нижнюю части, которые обычно называются header и footer. Данные части отделяются от основного шаблона в отдельные файлы и подключаются в верхней и нижней части страниц.
В MV header и footer представлены файлами main-header.php и main-footer.php в папке views. Отделим верхнюю и нижнюю части от нашего шаблона и сохраним их в эти файлы.
Содержимое файла views/main-header.php
<head>
<title><? echo $mv -> seo -> title; ?></title>
<meta name='description' content='<? echo $mv -> seo -> description; ?>' />
<meta name='keywords' content='<? echo $mv -> seo -> keywords; ?>' />
<link rel='stylesheet' type='text/css' href='<? echo $mv -> media_path; ?>css/style.css' />
</head>
<body>
<header>
<ul>
<? echo $mv -> pages -> displayMenu(-1); ?>
</ul>
</header>
Здесь для вывода меню мы используем метод displayMenu() модели Pages. В качестве параметра он принимает id родительского раздела, из которого осуществляется вывод пунктов меню. Если мы выводим пункты меню корневого раздела, то в качестве параметра id указываем -1. Дополнительные примеры вывода меню можно найти в разделе Предустановленные модели.
Содержимое файла views/main-footer.php
<footer>© Привет мир</footer>
</body>
2. Шаблон главной страницы
Открываем файл view-index.php, его исходное стартовое содержимое можно удалить.
Добавляем элементы нашего шаблона и получаем итоговый вид файла views/view-index.php.
<?
//Ищем строку в базе данных с содержимым главной страницы
$content = $mv -> pages -> defineCurrentPage($mv -> router);
//Если не нашли показываем 404 ошибку
$mv -> display404($content);
//Склеиваем параметры для meta тэгов
$mv -> seo -> mergeParams($content, 'name');
//Подключаем верхнюю часть шаблона и выводим поля из базы данных
include $mv -> views_path.'main-header.php';
?>
<section class='content'>
<h1><? echo $content -> name; ?></h1>
<? echo $content -> content; ?>
</section>
<?
//Подключаем нижнюю часть шаблона
include $mv -> views_path.'main-footer.php';
?>
3. Шаблон типовой внутренней страницы
Данный шаблон отображается если запрошена не главная страница, и все другие шаблоны были пропущены маршрутизатором. Переход на данный шаблон не является 404 ошибкой, хотя если при разборе URL данная страница не будет определена, то произойдет переход на шаблон 404 страницы.
Данный шаблон соответствует маршруту ‘fallback’ из файла config/routes.php.
Итоговый вид файла views/view-default.php.
<?
$content = $mv -> pages -> defineCurrentPage($mv -> router);
$mv -> display404($content);
$mv -> seo -> mergeParams($content, 'name');
include $mv -> views_path.'main-header.php';
?>
<section class='content'>
<h1><? echo $content -> name; ?></h1>
<? echo $content -> content; ?>
</section>
<?
include $mv -> views_path.'main-footer.php';
?>
4. Шаблон 404 ошибки
Если были пройдены все этапы поиска страницы в базе данных, и она не была определена, то происходит вызов шаблона ошибки 404. В MV есть для данного случая специальный шаблон views/view-404.php.
Итоговое содержание данного файла для нашего сайта.
<?
$content = $mv -> pages -> find(['url' => 'e404']);
$mv -> seo -> mergeParams($content, 'name');
include $mv -> views_path.'main-header.php';
?>
<section class='content'>
<h1><? echo $content -> name; ?></h1>
<? echo $content -> content; ?>
</section>
<?
include $mv -> views_path.'main-footer.php';
?>
5. Управление сайтом
Теперь когда все шаблоны настроены можно переходить в административную часть сайта, которая по умолчанию находится по адресу /adminpanel. В разделе 'Меню страниц' можно создавать, редактировать и удалять страницы, которые будут затем отображаться в меню.
Страница, у которой значение поля 'Ссылка' равно 'index', будет главной страницей сайта. Содержимое страницы ошибки 404 будет браться из страницы с полем ссылка равным 'e404'.
Предыдущий раздел
Структура папок