Помощник
|
Паттерн MVC. В браузере не отображается содержимое одного из файлов. |
Pavl_mw
|
Сообщение
#1
|
|||
|
|
|||
|
||||
miketomlin |
24.7.2020, 14:55;
Ответить: miketomlin
Сообщение
#2
|
|
То есть, по идее, когда открываешь index.php, вместо содержимого 404.tpl, должно выводиться содержимое index.tpl, но так почему-то не происходит. Нет. Файл index.php – это фронт-контроллер. Если специально не определен /index.php, как валидный адрес, то будет отрабатывать шаблон 404. Почитайте про роутинг. Вы должны определить конкретные адреса или адресные маски и привязать к ним обработчики, иначе по всем адресам будет выдаваться 404-ая. Например, в G-Drive и т.п. для определения страницы /page нужно создать в основной таблице запись с id="page" (и module="handler", если хотите, чтобы использовался шаблон handler.php, а не page.php). P.S. Даже для главной (/) нужно определять спец. обработчик, иначе будет выдаваться 404-ая. Например, см. первую запись первой таблицы здесь ;) Сообщение отредактировал BLIK - 25.7.2020, 15:57
Причина редактирования: удалил один url
-------------------- |
|
|
Pavl_mw
|
Сообщение
#3
|
|
miketomlin, дело в том, что я писал этот код с видеоурока, который нашёл в интернете. Делал всё точь-в-точь, как в видеоуроке. С одним отличием - возможно я слишком глубоко в файловой системе разместил эти страницы. У автора урока код нормально работает, все страницы отображаются, а у меня нет. Возможно, я что-то напутал с путями к файлам, но, как это определить, ведь в браузере не появляется ошибка, что не найден, какой-то файл или папка? Появляется, только сообщение ""Страница не найдена", но опять же - это созданная страница 404.tmpl, а не ответ браузера.
|
|
|
miketomlin |
24.7.2020, 23:33;
Ответить: miketomlin
Сообщение
#4
|
|
Когда вы копируете, вникайте в каждую строчку, при необходимости корректируйте с возможностью отката к оригиналу. В упомянутом мной фронте все предельно просто, например:
$r0['module'] содержит значение поля module основной таблицы (или поля id, если в таблице поле module отсутствует или содержит пустое значение). У вас имя каталога шаблонов, судя по названию, задается константой DIR_TMPL. Хардкодить абсолютные пути – близко к идиотизму. Используйте абсолютные, но определяйте через какую-то базу, как я показал. -------------------- |
|
|
Pavl_mw
|
Сообщение
#5
|
|
$r0['module'] содержит значение поля module основной таблицы (или поля id, если в таблице поле module отсутствует или содержит пустое значение). В видеоуроке даже речи не идёт о создании таблиц и подключении к базе данных, несмотря на значительное количество созданных папок и файлов! У автора и без базы данных всё хорошо работает. Или Вы это прекрасно понимаете, но настаиваете, что нужно создать таблицу для выполнения текущего задания, так как по Вашему мнению так будет гораздо лучше и правильнее? |
|
|
miketomlin |
25.7.2020, 10:59;
Ответить: miketomlin
Сообщение
#6
|
|
|
Это был всего лишь наглядный пример того, как работает роутинг. Если у вас нет таблицы в БД, то должна быть «таблица» в файлах (список роутов) или последовательный многократный вызов функции, которой в одном из параметров передается адрес (или маска), обращение по которому нужно обрабатывать.
по Вашему мнению так будет гораздо лучше и правильнее? Попытайтесь «добить» до конца свой вариант. Потом переходите к изучению чего-то другого. Основные виды роутинга я перечислил. У каждого есть свои преимущества. Кроме того, их можно совмещать, например в этом комменте (см. фрагмент кода) показано, как можно к упомянутому мной фронту прикрутить элемент совсем другого вида роутинга, чем упомянутый мной табличный на основе данных из БД (который используется там же внутри второго блока ветвления, т.е. elseif). P.S. Конечно, может быть и примитив вроде определения имени файла непосредственно из адреса, например из /page получается имя page.php или page.tpl, потом проверяется существование этого файла и т.д. Но такие вещи даже рассматривать не надо.
-------------------- |
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Не открывается maultalk.com в браузере Хром | 4 | noviktamw | 1865 | 18.1.2024, 6:23 автор: Skyworker |
|
Автоматизация работы в браузере (BAS) | 11 | Moonsoon | 7351 | 11.4.2023, 6:23 автор: Skyworker |
|
Куплю выгрузку из serp stat для одного домена serp stat для одного домена |
1 | Smartseowork | 1552 | 24.5.2022, 20:49 автор: Latinos |
|
ZennoPoster-услуги по написанию ботов, автоматизация работы в браузере. Сбор любых баз. ZennoPoster-услуги по написанию шаблонов |
0 | Progernaut | 1184 | 13.11.2020, 20:20 автор: Progernaut |
|
FinFile - новые возможности для монетизации Ваших файлов! | 3 | FileXmaster | 2051 | 25.7.2020, 16:10 автор: -Condis- |
Текстовая версия | Сейчас: 29.3.2024, 19:05 |