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

Роутинг на детальную страницу

Ответов: 8
Борис
13.07.2022 21:03

Каким образом реализовать обработку урлов если они из двух частей? Например, раздел и статья? index/*/ это не работает, возвращает 404. Может надо где-то еще помимо routes.php что-либо делать?

"index" => "view-index.php",
    "index/*/" => "view-index-detail.php",
Прочтений: 1111
Ответов: 8
Admin
14.07.2022 14:41

В что у вас содержится в файле view-index-detail.php? скорее всего проблема там

Борис
15.07.2022 14:14

Вряд ли там проблема. Т.к. по таким роутам все работает корректно "news/" => "news/view-news.php",
"news/*/" => "news/view-news-details.php",
Но стоит news заменить на index, то не работает.
Пример: "news" => "news/view-news.php", - Этот роут работает корректно.
А этот "news/*/" => "news/view-news-details.php", - не работает, возвращает 404 страницу. Главная страница вообще подразумевает что у нее будет урлы из двух и более частей?

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

include $mv->views_path . "main-header.php";
?>
<div class="wrapper">
    <div id="content">
        <div class="breadcrumbs">
            <a href="<? echo $mv->root_path; ?>">Главная</a>
            <a href="<? echo $mv->root_path; ?>news/">Новости</a>
        </div>
        <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>
        <div id="previous-next">
            <!-- <? //echo $mv->news->displayPreviousAndNext($record->id, $record->date); ?> -->
        </div>
    </div>
</div>
<?
include $mv->views_path . "main-footer.php";
?>
Борис
15.07.2022 14:42

'videos/*/*/' => '/videos/videos-index-detail.php',
Такие урлы невозможны, для них подходит 'videos->' => '/videos/videos-index-detail.php',
Но вот хочу для Index страницы также сделать - как итог не работает

'index->' => '/videos/videos-index-detail.php',
Maxim
15.07.2022 16:02

Попробуйте в файле view-index-detail.php в самом начале поставить код exit("123");
И теперь если при переходе в браузере на /index/test/ вы на экране увидите 123, то значит маршрутизация работает правильно и дело в методе defineNewsPage и последующем переходе на 404 страницу методом $mv->display404($record).

И тогда нужно смотреть метод defineNewsPage и как там происходит разбор URL.

Борис
15.07.2022 16:18

Смотрите если это делать не на главной получается белая страница и на ней 123. Как и предполагалось. Но тут http://localhost:8080 отдает страницу "news/view-news.php", , a http://localhost:8080/test/ не отдает "news/view-news-details.php" выдает только 404

"index" => "news/view-news.php",
 "index/*/" => "news/view-news-details.php",
Не работает 

"index" => "news/view-news.php",
"index->" => "news/view-news-details.php",
Тоже не работает


В начале добавил
<?
exit("123");

// $record = $mv->news->defineNewsPage($mv->router);
// $mv->display404($record);
// $mv->seo->mergeParams($record, "name");
Maxim
15.07.2022 17:17

У вас видимо http://localhost:8080/test/ ведет на view-default.php а потом на 404.
Подробнее об этом тут https://mv-framework.ru/obshie-principy-shablonov/

Вам наверно лучше сделать так

"index/news/*/" => "news/view-news-details.php"
Борис
15.07.2022 17:24

Понимаете, какое дело. Мне нужно будет чтобы на главной был уже необходимый функционал. index/news не подойдет моим требованиям. т.к. я хотел вторую часть урла использовать под код раздела.

Maxim
18.07.2022 13:50

Если вы хотите чтобы http://localhost:8080/test/ показывал шаблон вьюхи news/view-news-details.php, то шаблоны URL вида index/*/ и index-> лучше не использовать, они работать не будут. При обработке http://localhost:8080/test/ вначале пойдет поиск в config/routes.php по точному совпадению, например "test/" => "view-test-page.php" и если оно найдено не будет, то произойдет вызов шаблона view-default.php, и если b там страница не будет найдена то вызовется 404.

Таким образом, в вашем случае остается только вариант обработать http://localhost:8080/test/ во view-default.php. Попробуйте уже там сделать включения шаблона news/view-news-details.php

<?
//view-default.php

if(...)
{
    include $mv -> views_path."news/view-news-details.php";
    exit();
}

$content = $mv -> pages -> defineCurrentPage($mv -> router);
$mv -> display404($content);
$mv -> seo -> mergeParams($content, "name");

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

© 2014-2025, MV framework team

English MV tracker project Github

Поделиться