Компоненты - это настраиваемые элементы кода, которые могут быть прикреплены к любой странице или макету. Компоненты - ключевая особенность October. Каждый компонент реализует некоторую функциональность, которая расширяет ваш сайт. Компоненты могут выводить HTML-разметку на странице, но это необязательно - другие важные особенности компонентов обрабатывают AJAX запросы, обрабатывают формы обратного вызова и обрабатывают цикл выполнения страницы, что позволяет вводить переменные на страницы или внедрять элементы безопасности веб-сайта.

This article describes the components basics and doesn't explain how to use components with AJAX. This topic is described in the AJAX article.

 В этой статье описываются основы компонентов и не объясняется, как использовать компоненты с AJAX. Эта тема описана в статье AJAX.

Введение

Если вы используете внутренний пользовательский интерфейс, вы можете добавить компоненты на свои страницы и макеты, щелкнув компонент на панели «Компоненты». Если вы используете текстовый редактор, вы можете прикрепить компонент к странице или макету, добавив его имя в раздел Конфигурация файла шаблона. В следующем примере показано, как добавить на страницу компонент «demoTodo»:

title = "Components demonstration"
url = "/components"

[demoTodo]
maxItems = 20
==
...

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

Когда вы ссылаетесь на компонент, он автоматически создает переменную страницы, которая соответствует имени компонента (demoTodo в предыдущем примере).Когда вы ссылаетесь на компонент, он автоматически создает переменную страницы, которая соответствует имени компонента (demoTodo в предыдущем примере). Компоненты, предоставляющие разметку HTML, могут отображаться на странице с тегом {% component %}. например:

{% component 'demoTodo' %}

Примечание: Если два компонента с одинаковым именем определены вместе на странице и макете, компонент страницы переопределяет любые свойства компонента макета.

Алиасы компонентов

Если есть два плагина, которые регистрируют компоненты с тем же именем, вы можете присоединить компонент, используя его полностью квалифицированное имя класса и присвоив ему алиас:

[October\Demo\Components\Todo demoTodoAlias]
maxItems = 20

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

{% component 'demoTodoAlias' %}

Алиас также позволяют вам определять несколько компонентов одного и того же класса на одной странице, используя сначала короткое имя и псевдоним. Это позволяет вам использовать несколько экземпляров одного и того же компонента на странице.

[demoTodo todoA]
maxItems = 10
[demoTodo todoB]
maxItems = 20

Передача переменных компонентам

Компоненты могут иногда использовать переменные во время рендеринга, подобно Чанкам, они могут быть указаны после имени компонента в теге {% component %}:

{% component 'demoTodoAlias' maxItems="7" %}

Note: Not all components support passing variables when rendering.