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

Список с фильтрацией

Создаем файлы моделей models/price_categories.model.php и models/price_list.model.php

class Price_categories extends Model
{
    protected $name = "Разделы прайс листа";
   
    protected $model_elements = [
        ["Активировать", "bool", "active", ["on_create" => true]),
        ["Название", "char", "name", ["required" => true]),
        ["Позиция", "order", "order"]
    );
}

class Price_list extends Model
{
    protected $name = "Прайс лист";
 
    protected $model_elements = [
        ["Активировать", "bool", "active", ["on_create" => true]),
        ["Название", "char", "name", ["required" => true]),
        ["Направление", "char", "department"],
        ["Категория", "enum", "category", ["foreign_key" => "Price_categories",
                                                     "order_asc" => "name"]),
        ["Цена", "int", "price"],
        ["Позиция", "order", "order"]
    );
}

Вносим название модели в файл config/models.php

$mvActiveModels = ['pages', 'blocks', ... , 'price_categories', 'price_list'];

Создаем SQL таблицы в базе данных, после чего модели станут работать в административной панели

CREATE TABLE `price_categories` (
  `id` int(11) NOT NULL,
  `active` tinyint(4) NOT NULL,
  `name` varchar(250) NOT NULL,
  `order` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

ALTER TABLE `price_categories` ADD PRIMARY KEY (`id`);
ALTER TABLE `price_categories` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

CREATE TABLE `price_list` (
  `id` int(11) NOT NULL,
  `active` tinyint(4) NOT NULL,
  `name` varchar(250) NOT NULL,
  `department` varchar(250) NOT NULL,
  `category` int(11) NOT NULL,
  `price` int(11) NOT NULL,
  `order` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

ALTER TABLE `price_list` ADD PRIMARY KEY (`id`), ADD KEY `category` (`category`);
ALTER TABLE `price_list` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

Создаем файл шаблона views/view-price.php и вносим маршрут к шаблону в файл config/routes.php

$mvFrontendRoutes = [ ... ,

"price-list/" => "view-price.php"
];

Добавляем методы в файл модели price_list.model.php

public function display()
{
    $params = $this -> filter -> getConditions();
    $params["order->asc"] = "name";
    $params["active"] = 1;

    $rows = $this -> select($params);
    $html = "";
        
    if(!count($rows))
        return "Цен по заданным параметрам не найдено.\n";
            
    foreach($rows as $row)
    {
        $row["price"] = $row["price"] ? $row["price"]." руб" : "По запросу";
            
        $html .= "\n";
        $html .= "".$row["name"]."\n";
        $html .= "".$row["department"]."\n";
        $html .= "".$this -> getEnumTitle("category", $row["category"])."\n";
        $html .= "".$row["price"]."\n";
        $html .= "\n";
    }
            
    return $html;
}

Содержимое файла шаблона view-price.php

$mv -> seo -> mergeParams("Прайс-лист");

$mv -> price_list -> runFilter(["name", "department", "category", "price"]);
$mv -> price_list -> filter -> setEnumEmptyValueTitle("category", "Все категории");
$mv -> price_list -> filter -> filterValuesList("category", ["active" => 1]);

include $mv -> views_path."main-header.php";


echo $mv -> price_list -> filter -> display();
echo $mv -> price_list -> display();
Наименование Направление Категория Цена
include $mv -> views_path."main-header.php";

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

Слайдер с баннерами

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

Форма с загрузкой файла
MV workshop banner
MV tracker

© 2014-2025, MV framework team

English MV tracker project Github

Поделиться