Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Переделать Загрузки под новую архитектуру #204

Open
3 tasks
Tracked by #195
simba77 opened this issue Jan 5, 2022 · 0 comments
Open
3 tasks
Tracked by #195
Labels
task A task that does not belong to the other types (not Bug, Feature).
Projects
Milestone

Comments

@simba77
Copy link
Member

simba77 commented Jan 5, 2022

В рамках данной задачи необходимо реализовать следующее:

  • Вынести маршруты модуля в конфиг
  • Страницы модуля сделать классами-контроллерами.
  • Проверку прав доступа (если требуется) реализовать c помощью middleware

Примерный план работ
Раньше модули в качестве точки входа использовали файл index.php в папке с модулем и дальше уже по GET параметру определяли страницу, которую нужно подключить и отобразить пользователю.
Сейчас определение страницы, которую необходимо показать пользователю выполняется роутером.

Допустим мы хотим переделать главную страницу загрузок.

  1. Создаем контроллер для главной страницы загрузок. Например DownloadsController (в качестве примера можно взять какой нибудь контроллер из новостей)
  2. В контроллере создаем метод index и в return можем вернуть простую строку return 'test';
  3. В папке config создаем файл routes.php (в качестве примера можно взять файл из модуля news и доработать его)
  4. В файле с роутами создаем группу маршрутов, которая будет обрабатывать всё, что запрашивается по пути /downloads
  5. В группе добавляем маршрут, который будет принимать в качестве первого аргумента "/", а вторым аргументом массив в котором будет наш контроллер и метод который будет выполняться.

После выполнения этих действий в консоли выполняем php johncms cache:clear . Дальше при открытии site.ru/downloads/ у нас должна открыться страница с надписью test.

После этого можно начинать переносить код из файла index.php в наш контроллер. Код попутно нужно будет адаптировать для работы в контроллере. В качестве примера можно брать контроллеры из других модулей. Там можно посмотреть как подключать шаблоны, как задавать заголовки страниц, хлебные крошки, получать конфиги и прочее.

@simba77 simba77 added this to To do in JohnCMS 10 via automation Jan 5, 2022
@simba77 simba77 added the task A task that does not belong to the other types (not Bug, Feature). label Jan 5, 2022
@simba77 simba77 added this to the v10.0 milestone Jan 5, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
task A task that does not belong to the other types (not Bug, Feature).
Projects
Status: In progress
JohnCMS 10
  
To do
Development

No branches or pull requests

1 participant