Наследование свойств

Раз уж большинство элементов системы подчинены иерархии, то вполне ожидаемо обнаружить связи между ними. И знаете что? Это связи действительно есть:)

Попробуем для начала рассмотреть структуру некоего сайта.

Будем считать, что для узла "корень сайта" заданы следующие наследуемые параметры:

  • шаблон template1
  • язык language1
  • статичный модуль static1

для узла "страница 1" заданы

  • модуль module1
  • статичный модуль static2

для узла "страница 1.1"

  • модуль module2

для узла "страница 2"

  • шаблон template2
  • язык language2
  • модуль module3

Для "страница 2.1" не задано ничего.

Итак, как же будет вести себя каждый из узлов?

корень сайта

  • шаблон template1
  • язык language1
  • статичный модуль static1

страница 1

  • шаблон template1 (унаследован от корня)
  • язык language1 (унаследован от корня)
  • модуль module1
  • статичный модуль static1 (унаследован от корня)
  • статичный модуль static2

страница 1.1

  • шаблон template1 (унаследован от корня)
  • язык language1 (унаследован от корня)
  • модуль module2
  • статичный модуль static1 (унаследован от корня)
  • статичный модуль static2 (унаследован от с.1.1)

страница 2

  • шаблон template2
  • язык language2
  • модуль module3
  • статичный модуль static1 (унаследован от корня)

страница 2.1

  • шаблон template2 (унаследован от с.2)
  • язык language2 (унаследован от с.2)
  • модуль module3 (унаследован от с.2)
  • статичный модуль static1 (унаследован от корня)

Сложно? Непонятно? Попробую прокомментировать.

Для нормального функционирования узлу нужны три элемента: набор модулей, шаблон и язык отображения (в случае, если языков больше одного). В противном случае, узлу просто нечего будет показывать, а ведь он не для этого создан:) В этом случае недостающие элементы будут запрашиваться у ближайшего родителя. В данную концепцию немного не вписываются статичные модули, но и с ними все становится просто, если запомнить что они наследуются всегда и от всех родителей.

Аналогичная картина при настройке групп пользователей: для группы должны быть указаны права доступа и настройки для каждого модуля. Если их нет, то они наследуются у ближайшей родительской группы и так далее, пока мы не поднимаемся до группы "гости", которая все эти настройки обязательно имеет.

Вот такое вот "дело о наследстве":)

 

Всего комментариев: 0

Имя*:

Email: