Drupal 8: Маршрутизация, връзки, разрешения, раздели или "Hello YML"

# 1 - Просто HelloWorld страница

Нека регистрираме пътя за бъдещата страница във файла testpage.routing.yml

И ще покажем заветния поздрав на страницата. Файл Src/Controller/TestPageController.php

Сега на страницата/helloworld можете да видите желания текст:-)

Нека отидем по-нататък: сега ще определим нашите собствени права върху тази страница в нашия модул:

# 2 - страница HelloWorld с настройка на разрешенията

Използвахме hook_permission по-рано. Познайте къде да декларирате права в Drupal 8? Създайте .yml файл отново в корена на нашия модул, наречен module_name.permissions.yml.

'view testpage' е системното име на новите права за достъп. Той не трябва да съвпада с името на модула, в противен случай оформлението на страницата за управление на правата за достъп ще се счупи.
„ограничи достъпа“ - опцията показва дали тези права са свързани със сигурността на сайта. Ако е TRUE, към описанието на правата ще бъде добавено съответно предупреждение.
Не забравяйте да нулирате кеша на сайта, за да видите промените на страницата admin/people/permissions:

Вече можем да правим промени в маршрута testpage.testpage1:

Можете да прочетете повече за разрешенията на drupal.org

# 3 - страница HelloWorld в раздела за конфигуриране

Страхотен. Сега нека си представим, че "Здравей, свят!" - това е някаква администраторска страница и ние ще се опитаме да я покажем в раздела за конфигуриране „admin/config“ в съществуващ контейнер, например „Разработка“. За да тествам тази задача, ще регистрирам нов път, за да не се бъркам в примери.

Но това не е в администраторския панел. Въпросът е, че списъкът с връзки в този панел се основава на йерархията на елементите от менюто. Нашият маршрут е само пътека. Няма обвързване на менюто. Следователно системата не може да намери тази страница и не я показва в администраторския панел. Ще покажем на Drupal къде растат краката, откъдето трябва да се покаже тази страница. Нека създадем нов файл testpage.links.menu.yml в корена на модула

След нулиране на кеша, системата ще добави нов елемент от менюто към менюто за управление. И при формирането на страницата за конфигурация/admin/config, нашият елемент ще бъде намерен и добавен към панела:

маршрутизация

# 4 - страница HelloWorld в раздела за конфигуриране в нов раздел

И сега добавете тези елементи в менюто "Контрол"
Добавете към файла testpage.links.menu.yml

Не забравяйте да нулирате кеша, за да видите промените. Целта е постигната. Сега в раздела за конфигуриране има нов панел "Персонализирани настройки", който показва нашата страница "Heloworld".

# 5 - Раздели

Не е лошо начало. Сега нека се опитаме да разберем как да правим раздели (Tabs). Така че сега ще добавим нов раздел "Tab2" към страница # 4. Първо, нека регистрираме нов път за раздела:

Добавете нов маршрут във файла testpage.routing.yml:

Файлът module_name.links.task.yml в корена на модула отговаря за регистрирането на раздели. Нека го създадем.

Е, това са всички чудеса. Нулирайте кеша и отидете на страницата „admin/config/custom/helloworld“

# 6 - Раздели от второ ниво!

Този процес вече не може да бъде спрян. Искам нов раздел с повече раздели!
Регистриране на нови маршрути.

Добавете нови маршрути във файла testpage.routing.yml:

Във файла testpage.link.task.yml ще опишем новите елементи в структурата на раздела:

Сега вероятно ще завърша този пост. Предстоят още много интересни неща!