MV framework logo
  • Архитектура
  • Философия
  • Админ панель
  • Поддержка
  • Обратная связь
Документация
Скачать .zip версия 3.2.0 от 25.12.2024
  • Архитектура
  • Философия
  • Админ панель
  • Поддержка
  • Обратная связь
Начало работы
  • Установка и запуск
  • Структура папок
  • Запуск простого сайта
  • Предустановленные модели
  • SQLite начало работы
  • Системные настройки
  • Миграции
  • Отладка
Модели
  • Общие принципы моделей
  • Типы данных
  • Настройка модели
  • Простые модели
  • Внешние ключи
  • Деревья
  • Многие ко многим
  • Группа
  • Управление записями
  • Управление простыми моделями
  • Дополнительные возможности
Шаблоны и маршрутизация
  • Общие принципы шаблонов
  • Объект класса Router
  • Объект MV
  • Создание нового шаблона
  • Вывод данных в шаблоне
  • Объект класса Record
  • Файлы и изображения
  • Дата и время
  • Редиректы и Http
  • Отправка email
  • Специальные методы
Формы
  • Создание форм
  • Настройка полей формы
  • Валидация полей формы
  • Безопасность форм
  • Работа с данными формы
  • Использование данных из моделей
  • Методы форм
SQL запросы
  • Конструктор запросов
  • Прямые запросы
  • Постраничная разбивка
  • Сортировка
  • Фильтрация
Дополнительно
  • AJAX
  • Плагины
  • Кэширование
  • Безопасность
  • Дополнения к административной панели
Документация
Начало работы
  • Установка и запуск
  • Структура папок
  • Запуск простого сайта
  • Предустановленные модели
  • SQLite начало работы
  • Системные настройки
  • Миграции
  • Отладка
Модели
  • Общие принципы моделей
  • Типы данных
  • Настройка модели
  • Простые модели
  • Внешние ключи
  • Деревья
  • Многие ко многим
  • Группа
  • Управление записями
  • Управление простыми моделями
  • Дополнительные возможности
Шаблоны и маршрутизация
  • Общие принципы шаблонов
  • Объект класса Router
  • Объект MV
  • Создание нового шаблона
  • Вывод данных в шаблоне
  • Объект класса Record
  • Файлы и изображения
  • Дата и время
  • Редиректы и Http
  • Отправка email
  • Специальные методы
Формы
  • Создание форм
  • Настройка полей формы
  • Валидация полей формы
  • Безопасность форм
  • Работа с данными формы
  • Использование данных из моделей
  • Методы форм
SQL запросы
  • Конструктор запросов
  • Прямые запросы
  • Постраничная разбивка
  • Сортировка
  • Фильтрация
Дополнительно
  • AJAX
  • Плагины
  • Кэширование
  • Безопасность
  • Дополнения к административной панели
MV tracker

Предустановленные модели

Pages страницы меню

Модель 'Меню страниц' создана для управления обыкновенными страницами сайта, которые не имеют специально сгенерированного контента из форм или других моделей. Содержимое страницы вводится в административной панели в текстовую область или визуальный редактор. Также изначально в данная модель создана как древовидная, одно из ее полей имеет тип parent, вследствие чего можно создавать внутренние подоазделы.

Структура модели, файл models/pages.model.php.

class Pages extends Model
{
    protected $name = 'Меню страниц';
 
    protected $model_elements = [
         ['Активировать', 'bool', 'active', ['on_create' => true]],
         ['Отображать в меню', 'bool', 'in_menu', ['on_create' => true]],
         ['Название', 'char', 'name', ['required' => true]],
         ['Заголовок', 'char', 'title'],
         ['Родительский раздел', 'parent', 'parent'],
         ['Ссылка', 'url', 'url', ['unique' => true]],
         ['Редирект', 'redirect', 'redirect'],
         ['Позиция', 'order', 'order'],
         ['Содержание', 'text', 'content', ['rich_text' => true]]
    ];
}

Изначально данная модель содержит 2 собственных метода. Другие методы наследуются от базового класса Model.

  • defineCurrentPage(Router $router)

Определение параметров для поиска страницы в таблице pages на основе переданного URL. Возвращает массив параметров для метода find(), который наследуется от класса Model. Метод find() в свою очередь строит на основе переданных параметров SQL запрос и в случае успеха возвращает объект класса Record, содержащий список всех полей страницы из базы данных.

$content = $mv -> pages -> defineCurrentPage($mv -> router);
 
echo $content -> name;
echo $content -> title;
echo $content -> content;
  • displayMenu($parent)

Функция для отображения списка пунктов меню. Возвращает список ссылок для тэга ul.

Активный пункт меню будет иметь класс 'active'. Атрибут ссылки href строится на основе полей id и url по следующему принципу: если у страницы заполнено поле url (например 'about'), то будет создана ссылка /about, либо будет использован id страницы и построится ссылки вида /page/17.

$parent - обязательный параметр, Id родительского раздела меню. Для вывода корневого списка страниц используется значение -1.

//Вывод из корневого раздела
echo $mv -> pages -> displayMenu(-1);

//Вывод из раздела с id=5
echo $mv -> pages -> displayMenu(5); 

Blocks текстовые блоки

Текстовые фрагменты информации, которая обычно используется для вывода HTML в верхней либо нижней частях сайта или боковых колонках. Данная информация может отображаться на всех страницах либо меняться в зависимости от вида страницы. Модель изначально не имеет собственных методов, все наследуются от класса Model.

Структура модели, файл models/blocks.model.php.

class Blocks extends Model
{
    protected $name = 'Текстовые блоки';
 
    protected $model_elements = [
         ['Активация', 'bool', 'active', ['on_create' => true]],
         ['Название', 'char', 'name', ['required' => true]],
         ['Содержание', 'text', 'content', ['rich_text' => true]]
    ];
}

Примеры использования, извлечение записи из базы данных и вывод полей.

$top_content = $mv -> blocks -> find(['id' => 1, 'active' => 1]);
$left_content = $mv -> blocks -> find(['id' => 43]);

echo $top_content -> name;
echo $left_content -> content; 

SEO данные

Модель используется для формирования meta тегов в HTML коде страницы, а также редактирует файл robots.txt. Данная модель отличается от двух предыдущих, тем что представляет собой простую модель. Подробнее о моделях данного типа можно прочесть в разделе Простые модели.

Структура модели, файл seo.model.php в папке models.

class Seo extends ModelSimple
{
    protected $name = 'SEO параметры';
 
    protected $model_elements = [
        ['Заголовок', 'char', 'title', ['help_text' => 'Значение заголовка (title) по умолчанию для всех страниц']],
        ['Ключевые слова', 'text', 'keywords', ['help_text' => 'Ключевые слова (meta keywords) по умолчанию для всех страниц']],
        ['Описание', 'text', 'description', ['help_text' => 'Описание (meta description) по умолчанию для всех страниц']],
        ['Robots.txt', 'text', 'robots', ['help_text' => 'Содержимое файла robots.txt']],
        ['Meta данные в head', 'text', 'meta_head', ['help_text' => 'Meta тэги, счетчики, плагины']],
        ['Meta данные в body', 'text', 'meta_footer', ['help_text' => 'Счетчики и плагины']]
   ];
}

Примеры использования.

Формирование meta тегов и заголовков страницы, обычно находится в файле views/main-header.php.

<title><? echo $mv -> seo -> title; ?></title>
<meta name='description' content='<? echo $mv -> seo -> description; ?>' />
<meta name='keywords' content='<? echo $mv -> seo -> keywords; ?>' />

<?
//Склейка параметров записи с общими данными seo
$content = $mv -> pages -> defineCurrentPage($mv -> router);
$mv -> seo -> mergeParams($content, 'name');

//Склейка с текствовой строкой
$mv -> seo -> mergeParams('Наша деятельность');
$mv -> seo -> mergeParams('Маркерная доска 120х200');

//Вывод общих мета данных и счетчиков
echo $mv -> seo -> displayMetaData('head');
echo $mv -> seo -> displayMetaData('footer');
?>

В данном случае в методе mergeParams() происходят следующие действия: 

  1. Передается объект класса Record, содержащий все поля страницы из базы данных.
  2. Если в объекте имеются заполненные поля с названиями title, keywords или description, то значения по умолчанию из таблицы seo будут полностью заменены данными этих полей. 
  3. Если какое-либо из трех полей не найдено в объекте, то используется второй необязательный параметр метода mergeParams().
  4. В этом параметре может быть передано имя поля, значение которого будет добавлено к значениям по умолчанию из таблицы seo для поддержания уникальности meta тегов на разных страницах.
  5. Также можно вызвать метод mergeParams() с единственным параметром, в котором будет содержаться текстовая строка. Данная строка будет добавлена к параметрам по умолчанию аналогично вызову метода с двумя параметрами.

Предыдущий раздел

Запуск простого сайта

Следующий раздел

SQLite начало работы
MV workshop banner
MV tracker

© 2014-2025, MV framework team

English MV tracker project Github

Поделиться