Перейти к основному контенту

Заблокировать наследование

Мы уже видели это, установив стандартный макет, другие страницы, которые не имеют собственных блоков, будут наследовать блоки из макета по умолчанию. Однако существует еще один вид наследования кварталов.

Родитель/дочерний маршрут#

В phpBB SiteMaker мы говорим о вложенных маршрутах с точки зрения реальных вложенных (под) каталогов или практически вложенных путей/маршрутов. Оставайтесь со мной :).

  • Real Parent/Child маршруты: Например, путь /some_directory/sub_directory/index.php является потомком /some_directory/index.php
  • Виртуальные маршруты Родитель/Дочерние маршруты: Например, viewtopic.php считается потомком viewforum.php.

Вот несколько примеров маршрутов родителя/дочернего маршрута:

РодительДочерний
/index.php/viewforum.php, /dir/index.php
/viewforum.php?f=2/viewtopic.php?f=2&t=1
/app.php/articles/app.php/articles/my-article

Наследование родительских/детских блоков#

Для маршрутов родителя/ребенка, дочерний маршрут наследует блоки родительского маршрута (если родительский имеет свои собственные блоки) или из макета по умолчанию (если он был установлен). Другими словами, даже если есть макет по умолчанию, дочерний маршрут наследует блоки из родительского маршрута, если родительский маршрут имеет свои собственные блоки. Но не все кварталы от родительского маршрута должны быть унаследованы.

Управление наследованием блоков#

На уровне блоков можно контролировать, когда блок можно унаследовать от дочерних маршрутов. Мы коснулись этого ранее в Настройки блока редактирования.

Рассмотрим следующую реальную структуру каталогов:

phpBB├── index.php└── Movies/    ├── index.php    ├── page.php    └── Comedy/        └── index.php

Для целей наследования блоков мы говорим:

  • Родительский маршрут /phpBB/Movies/Comedy/index.php - это /phpBB/Movies/index.php, а не /phpBB/Movies/page.php
  • Все страницы в подкаталоге по отношению к /phpBB/index.php - это дочерний маршрут /phpBB/index.php. Таким образом, /phpBB/Movies/index.php и /phpBB/Movies/page.php являются детьми /phpBB/index.php и поэтому они наследуют свои блоки, если у них нет собственных блоков. В данном случае:
    • Когда на /phpBB/index.php установлен блок для отображения на Скрыть на дочерних маршрутах, блок будет отображаться на /phpBB/index. hp (родительский маршрут), но не на дочерних маршрутах
    • Когда на /phpBB/index.php установлен блок для отображения Показать только на дочерних маршрутах, он будет отображаться на /phpBB/Movies/index. hp и /phpBB/Movies/page.php (дочерние маршруты), но не на /phpBB/index.php (parent), ни /phpBB/Movies/Comedy/index.php (мы только занимаемся углубленным уровне)
    • Когда на /phpBB/index.php установлен блок для отображения всегда (по умолчанию), он будет отображаться на /phpBB/index. hp (parent), /phpBB/Movies/index.php и /phpBB/page.php (дочерние маршруты), но не на /phpBB/Movies/Comedy/index.php (мы только переходим на один уровень). В этом случае /phpBB/Movies/Comedy/index.php будет наследовать из маршрута по умолчанию (если он существует)

Потенциальное будущее состояние#

Меня интересует ваша обратная связь в этой области. Большинство пользователей phpBB не будут иметь реальных каталогов, как указано выше. Поэтому я подумываю использовать структуру, которая определяется в блоке меню как виртуальная структура каталогов и применять ее родитель/ребенок наследование к нему. Я также рассматриваю возможность выходить за пределы глубины одного уровня. Пожалуйста, сообщите мне, если это будет полезно для вас.