Какие бывают модули

В LabCMS модули бывают четырех типов:

  1. Компоненты
  2. Статичные
  3. Обычные
  4. Системные (с версии 3.0)

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

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

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

Начиная с третьей версии, появились, так называемые, "системные" модули. Единственное их отличие от прочих заключается в том, то они подключаются  до компонента. Этот тип в интерфейсе никак не обозначен и интересен скорее для разработчиков.

Теперь немного технических подробностей. Компоненты удобный тем, что для их подключения не надо залезать в шаблоны. Так как компонент на странице всего один, то место для него всегда зарезервировано и обозначено тегом {$_component}. Иная ситуация со всеми прочими модулями: Подключая новый модуль, необходимо указать в шаблоне место, куда данный модуль должен встать. Выглядит это так {$_module_имя_модуля} (можно посмотреть в параметрах модуля). В общем-то, это единственная ручная операция - все остальное происходит автоматически. Чтобы избежать влияния различных модулей друг на друга, следует при вставке модуля в шаблон заключать его в теги {nocache}{/nocache}. То есть итог должен выглядеть так:

{nocache}{$_component}{/nocache}

или

{nocache}{$_module_имя_модуля}{/nocache}

 

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

Имя*:

Email: