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: 

  • О нас
  • Галерея
  • Контакты

Главной страницей является страница ‘О нас' и она отображается по шаблону view-index.php. Таким образом страницы 'Галерея' и 'Контакты' отображаются по шаблону view-default.php.

Теперь мы решаем выводить на странице ‘Галерея’  список изображений из другой модели. Для этого нам нужно убрать галерею с шаблона fallback и создать для данной страницы самостоятельный шаблон, где и выведем галерею.

  1. Задаем для страницы Галерея поле ссылка равным 'gallery', теперь наша страница доступна по запросу /gallery.
  2. В файле config/routes.php добавляем новую строку и тем самым уводим запрос /gallery на новый шаблон.

    $mvFrontendRoutes = [
    
        '/' => 'view-index.php',
        'e404' => 'view-404.php',
        'fallback' => 'view-default.php',
    
        '/gallery' => 'view-gallery.php' 
    ];
  3. В папке views создаем файл view-gallery.php со следующим содержимым (первые 2 строки нужны если вы хотите подсвечивать страницу меню, которое выдает модель Pages и выдавать 404 ошибку если страница не существует или отключена).

    <?
    //Файл views/view-gallery.php
    
    $content = $mv -> pages -> defineCurrentPage($mv -> router);
    $mv -> display404($content);
    include $mv -> views_path.'main-header.php';
    ?>
        <div class="main">
            <h1><? echo $content -> name; ?></h1>
            <div class="gallery">
    
            </div>
        </div>
    <?
    include $mv -> views_path.'main-footer.php';
    ?>
  4. Теперь по запросу /gallery подключается файл шаблона view-gallery.php, в котором мы можем добавить саму галерею из другой модели. Возьмем простейший вариант галереи на MV, которая представляет из себя одно поле простой модели.

    //Файл models/gallery.model.php
    
    class Gallery extends ModelSimple
    {
        protected $name = 'Галерея';
    
        protected $model_elements = [
            ['Изображения галереи', 'multi_images', 'photos']
        ];
    }
  5. Создаем файл models/gallery.model.php, запускаем миграцию и получаем таблицу gallery в базе данных. Добавляем новую модель в файл config/models.php и получаем администрируемый модуль Галерея в административной панели.
  6. Объект галереи доступен как $mv -> gallery представляет из себя экземпляр простой модели с единственным полем photos. Извлекаем фотографии, создаем уменьшенные копии и оборачиваем все в html теги.

    //Файл views/view-gallery.php
    
    <div class="gallery">
    <?
        $photos = $mv -> gallery -> photos;
        $photos = $mv -> gallery -> extractImages($photos);
    
        foreach($photos as $photo)
        {
            echo '<a href="'.$mv -> root_path.$photo['image'].'">';
            echo $mv -> gallery -> cropImage($photo['image'], 200, 200).'</a>';
        }
    ?>
    </div>
  7. Итоговый вид файла views/view-gallery.php

    <?
    $content = $mv -> pages -> defineCurrentPage($mv -> router);
    $mv -> display404($content);
    include $mv -> views_path.'main-header.php';
    ?>
        <div class="main">
            <h1><? echo $content -> name; ?></h1>
            <div class="gallery">
            <?
                $photos = $mv -> gallery -> photos;
                $photos = $mv -> gallery -> extractImages($photos);
    
                foreach($photos as $photo)
                {
                    echo '<a href="'.$mv -> root_path.$photo['image'].'">';
                    echo $mv -> gallery -> cropImage($photo['image'], 200, 200).'</a>';
                }
            ?>
            </div>
        </div>
    <?
    include $mv -> views_path.'main-footer.php';
    ?>

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

Объект MV

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

Вывод данных в шаблоне
MV workshop banner
MV tracker

© 2014-2025, MV framework team

English MV tracker project Github

Поделиться