MV framework logo
  • Архитектура
  • Философия
  • Админ панель
  • Поддержка
  • Обратная связь
Документация
Скачать .zip версия 3.2.0 от 25.12.2024
  • Архитектура
  • Философия
  • Админ панель
  • Поддержка
  • Обратная связь
Начало работы
  • Установка и запуск
  • Структура папок
  • Запуск простого сайта
  • Предустановленные модели
  • SQLite начало работы
  • Системные настройки
  • Миграции
  • Отладка
Модели
  • Общие принципы моделей
  • Типы данных
    • Общие характеристики
    • Булевый bool
    • Строковый char
    • Числовые int, float, order
    • Специальные строковые url, redirect, email, phone
    • Пароль password
    • Текстовый text
    • Дата и время date, date_time
    • Файл и изображение file, image
    • Массив изображений multi_images
    • Выбор enum
    • Родитель parent
    • Многие к одному many_to_one
    • Многие ко многим many_to_many
    • Группа group
  • Настройка модели
  • Простые модели
  • Внешние ключи
  • Деревья
  • Многие ко многим
  • Группа
  • Управление записями
  • Управление простыми моделями
  • Дополнительные возможности
Шаблоны и маршрутизация
  • Общие принципы шаблонов
  • Объект класса Router
  • Объект MV
  • Создание нового шаблона
  • Вывод данных в шаблоне
  • Объект класса Record
  • Файлы и изображения
  • Дата и время
  • Редиректы и Http
  • Отправка email
  • Специальные методы
Формы
  • Создание форм
  • Настройка полей формы
  • Валидация полей формы
  • Безопасность форм
  • Работа с данными формы
  • Использование данных из моделей
  • Методы форм
SQL запросы
  • Конструктор запросов
  • Прямые запросы
  • Постраничная разбивка
  • Сортировка
  • Фильтрация
Дополнительно
  • AJAX
  • Плагины
  • Кэширование
  • Безопасность
  • Дополнения к административной панели
Документация
Начало работы
  • Установка и запуск
  • Структура папок
  • Запуск простого сайта
  • Предустановленные модели
  • SQLite начало работы
  • Системные настройки
  • Миграции
  • Отладка
Модели
  • Общие принципы моделей
  • Типы данных
  • Настройка модели
  • Простые модели
  • Внешние ключи
  • Деревья
  • Многие ко многим
  • Группа
  • Управление записями
  • Управление простыми моделями
  • Дополнительные возможности
Шаблоны и маршрутизация
  • Общие принципы шаблонов
  • Объект класса Router
  • Объект MV
  • Создание нового шаблона
  • Вывод данных в шаблоне
  • Объект класса Record
  • Файлы и изображения
  • Дата и время
  • Редиректы и Http
  • Отправка email
  • Специальные методы
Формы
  • Создание форм
  • Настройка полей формы
  • Валидация полей формы
  • Безопасность форм
  • Работа с данными формы
  • Использование данных из моделей
  • Методы форм
SQL запросы
  • Конструктор запросов
  • Прямые запросы
  • Постраничная разбивка
  • Сортировка
  • Фильтрация
Дополнительно
  • AJAX
  • Плагины
  • Кэширование
  • Безопасность
  • Дополнения к административной панели
MV tracker

тех поддержка - форум

Ответов: 8
winstrool
25.08.2015 01:54

Ваш проект, существует с 2010 года, почему нет форума по тех поддержки и развитию классов, плагинов, моделей, шаблонов, готовых решений?

Прочтений: 2108
Ответов: 8
Admin
25.08.2015 15:26

На данный момент, можно задавать вопросы в разделе поддержки
http://mv-framework.ru/questions/

или через обратную связь
http://mv-framework.ru/feedback/

в разделе Поддержка мы отвечаем на возникающие вопросы и выкладываем примеры кода,
в обозримом будущем планируется также вести проект на github

winstrool
25.08.2015 20:59

Тогда вопрос такой, как можно создать ленту новостей/статей?

Admin
27.08.2015 10:43

Чтобы сделать новостную ленту вначале нужно создать модель, по типу такой, создать класс, таблицу в БД и прописать модель в файле config/models.php
все как описано тут http://mv-framework.ru/obshchie-printcipy-modeley/

class News extends Model
{
    protected $name = "Новости";

    protected $model_elements = array(
        array("Активация", "bool", "active", array("on_create" => true)),
        array("Дата", "date", "date", array("required" => true)),
        array("Название", "char", "name", array("required" => true)),
        array("Ссылка", "url", "url", array("unique" => true, "translit_from" => "name")),
        array("Изображение", "image", "image"),
        array("Текст новости", "text", "content", array("rich_text" => true))
    );
}
Admin
27.08.2015 10:54

После этого модель будет видна в админке. Затем нужно в файле config/routes.php прописать маршруты URL для списка новостей и отдельной новости и создать файлы самих вьюх (шаблонов в папке views)
например так:

"news/" => "view-all-news.php",
"news/*/" => "view-news.php",
Admin
27.08.2015 11:02

Теперь URL типа news/ и news/54/ будут переходить на созданные вьюхи, в самих вьюхах можно писать код для вывода списка новостей и отдельной новости. Для шаблона отдельной новости нужна функция поиска новости в базе.

public function defineNewsPage(Router $router)
{
    $url_parts = $router -> getUrlParts();$record = false;
        
    if(count($url_parts) == 2)
        if(is_numeric($url_parts[1]))
            $record = $this -> findRecord(array("id" => $url_parts[1], "active" => 1));
        else
            $record = $this -> findRecord(array("url" => $url_parts[1], "active" => 1));

        return $record;
}    
    
public function display()
{
        $params = array("active" => 1, "order->desc" => "date");
            
        $rows = $this -> select($params);
        $html = "";
        
        foreach($rows as $row)
        {
            $url = $this -> root_path."news/".($row['url'] ? $row['url'] : $row['id'])."/";
            
            $html .= "<div class="news-wrapper">";
            $html .= "<h2><a href="".$url."">".$row['name']."</a></h2>";
            $html .= "<p class="news-date">".I18n :: formatDate($row['date'])."</p>";
            
            if($row['image'])
            {
                $html .= "<a href="".$url."" class="news-image">";
                $html .= $this -> cropImage($row['image'], 187, 127)."</a>";
            }
                
            $html .= "<p class="news-content">".Service :: cutText($row['content'], 350, " ...")."</p>";
            $html .= "</div>";
        }
                
        return $html;
}
Admin
27.08.2015 11:07

Далее шаблон общего списка новостей выглядит примерно так

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

    <h1>Новости</h1>
    <? echo $mv -> news -> display(); ?>

<?
include $mv -> views_path."main-footer.php";
?>
Admin
27.08.2015 11:10

А страница отдельной новости так

<?
$record = $mv -> news -> defineNewsPage($mv -> router);
$mv -> display404($record);
$mv -> seo -> mergeParams($record, "name");

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

    <h1><? echo $record -> name; ?></h1>
    <div class="news-inside-date"><? echo I18n :: formatDate($record -> date); ?></div>
    <div class="news-inside-content">
    <?
        echo $mv -> news -> cropImage($record -> image, 383, 258); 
        echo $record -> content; 
     ?>
    </div>

<?
include $mv -> views_path."main-footer.php";
?>
Admin
27.08.2015 11:12

Подробнее можно почитать тут
http://mv-framework.ru/obshie-principy-shablonov/
http://mv-framework.ru/sozdanie-novogo-shablona/
http://mv-framework.ru/vyvod-dannyh-v-shablone/

Ответить на вопрос
Ответить
MV tracker

© 2014-2025, MV framework team

English MV tracker project Github

Поделиться