Документация

Начало работы

Модели (models)

Шаблоны (views) и маршрутизация (routes)

Формы

SQL запросы

Сессии и безопасность

Плагины

Создание нового шаблона

Предположим есть список страниц меню из модели "Pages": "О нас", "Галерея", "Контакты". Главной страницей является страница "О нас" (значение поля "Ссылка" равно "index") и она отображается по шаблону "view-index.php". Таким образом страницы "Галерея" и "Контакты" отображаются по шаблону "view-default.php".

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

  1. Задаем для страницы "Галерея" поле ссылка равным "gallery", теперь наша страница доступна по запросу "/gallery/".
  2. В файле "config/routes.php" добавляем новую строку и тем самым уводим запрос "gallery/" на новый шаблон.
    $mvFrontendRoutes = array(
    
    "index" => "view-index.php",
    
    "404" => "view-404.php",
    
    "default" => "view-default.php",
    
    "gallery/" => "view-gallery.php" 
    );
  3. В папке "views" создаем файл "view-gallery.php" со следующим содержимым (первые 2 строки нужны если вы хотите подсвечивать страницу меню, которое выдает модель "Pages" и выдавать 404 ошибку если страница не существует или отключена).
    <?
    $content = $mv -> pages -> defineCurrentPage($mv -> router);
    $mv -> display404($content);
    include $mv -> views_path."main-header.php";
    ?>
    
    <?
    include $mv -> views_path."main-footer.php";
    ?>
  4. Теперь по запросу "gallery" подключается файл шаблона "view-gallery.php", в котором мы можем добавить саму галерею из другой модели. Возьмем простейший вариант галереи на mV, которая представляет из себя одно поле простой модели.
    <?
    class Gallery extends Model_Simple
    {
        protected $name = "Галерея";
    
        protected $model_elements = array(array("Изображения галереи", "multi_images", "photos"));
    }
    ?>
    CREATE TABLE "gallery" (
    "key" VARCHAR PRIMARY KEY NOT NULL, 
    "value" VARCHAR)
    
  5. Создаем файл "models/gallery.model.php", таблицу "gallery", добавляем новую модель в файл "config/models.php" и  получаем администрируемый модуль "Галерея" в административной панели.
  6. Объект галереи доступен как "$mv -> gallery" представляет из себя экземпляр простой модели с единственным полем "photos". Извлекаем фотографии, создаем уменьшенные копии и оборачиваем все в html теги.
    <div id="gallery">
    <?
        $gallery_contents = $mv -> gallery -> loadIntoRecord(); //Получаем объект класса "Record"
    
        //Разделяем изображения на массив, комментарии отбрасываем
        $photos = $gallery_contents -> extractImages("photos", "no-comments"); 
    
        foreach($photos as $photo) //Выводим изображения как уменьшенную копию и ссылку на полноразмерное изображение
        {
            echo '<a class="lightbox" href="'.$mv -> root_path.$photo.'">';
            echo $mv -> gallery -> cropImage($photo, 200, 200)."</a>";
        }
    ?>
    </div>
    
  7. Итоговый вид файла "view-gallery.php"
    <?
       $content = $mv -> pages -> findRecord($mv -> pages -> defineUrlType($mv -> router));
       $mv -> display404($content);
       include $mv -> views_path."main-header.php";
    ?>
    <div id="gallery">
    <?
        $gallery_contents = $mv -> gallery -> loadIntoRecord();
        $photos = $gallery_contents -> extractImages("photos", "no-comments");
    
        foreach($photos as $photo)
        {
            echo '<a class="lightbox" href="'.$mv -> root_path.$photo.'">';
            echo $mv -> gallery -> cropImage($photo, 200, 200)."</a>";
        }
    ?>
    </div>
    <?
        include $mv -> views_path."main-footer.php";
    ?>

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

Index, default и 404 шаблоны

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

Вывод данных в шаблоне