Шаблоны ( Макеты, Layouts ). October cms русский


OctoberCMS на русском — Документация

Toggle navigation
  1. Главная
  2. Документация

&copy 2015 - 2018 | Помощь проекту

octobercms.info

OctoberCMS на русском — Перевод

На гитхабе существует репозиторий, куда любой желающий может внести свой вклад в перевод документации OctoberCMS.

Лицензия

Переводы распространяются под лицензией GNU GPL и являются достоянием сообщества OctoberCMS и фонда свободного программного обеспечения. Все переводчики, публикующие свои переводы в репозитории тем самым добровольно передают результаты своей работы в общественное достояние.

Принципы сообщества

Методика работы

Основная заповедь переводчика - “не навреди”. Если Вы не знаете термин или не уверены в его переводе наверняка — пропустите его и вернитесь к нему позже, когда будете знакомы с контекстом. Ошибки в переводах очень тяжело найти. Если не уверены в своих силах, оставьте перевод более компетентному в данной области переводчику.

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

Не добавляйте отсебятины.

Использование жаргонизмов (например, "админка", "юзер", "учётка") категорически не приветствуется.

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

При переводе модулей и более глубоком знакомстве с контекстом не забывайте корректировать уже сделанные переводы. Также, если вы заметили чужую ошибку, не поленитесь ее исправить, удостоверившись, что Ваша правка корректна.

Переводы подчиняются правилам русского языка (в том числе и пунктуация). Слова, написанные в оригинале с заглавной буквы для акцента внимания, пишутся с прописной.

Не пользуйтесь автоматическими переводчиками: они переводят без привязки к предметной области, результат их работы — непредсказуем.

Прежде чем сохранить перевод длинной строки, попробуйте прочитать текст глазами конечного пользователя. Возможно, придется сделать перевод "с русского на русский". Также для удобства восприятия иногда имеет смысл разбивать длинное сложное предложение на несколько коротких.

 

Спасибо русскому сообществу Drupal!.

octobercms.info

OctoberCMS на русском — Документация

Введение

Фрагментыx - это небольшой кусок Twig разметки, который можно многократно использовать в любом месте сайта (на разных страницах или макетах). Хорошим примером фрагмента является подвал сайта, который отображается на всех страницах. Кроме того, они необходимы для обновления содержимого страницы при помощи AJAX.

Фрагменты находятся в папке /partials темы и должны иметь расширение htm. Пример простого фрагмента:

<p>This is a partial</p>

Раздел Конфигурации необязателен для фрагментов и может содержать параметр description, который отображается в административной части сайта, а также параметры компонентов. Далее представлен пример фрагмента с описанием:

description = "Demo partial" == <p>This is a partial</p>

Отображение фрагментов

Twig тег {% partial "partial-name" %} выводит фрагмент на страницу и имеет единственный обязательный параметр - название файла фрагмента без расширения. Если фрагмент находится в подпапке, то Вы должны указать ее название. Тег {% partial %} можно использовать в страницах, шаблонах и других фрагментах. Пример использования фрагмента на странице:

<div> {% partial "sidebar-contacts" %} </div>

Передача переменных во фрагменты

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

<div> {% partial "blog-posts" posts=posts %} </div>

Вы также можете задать свои переменные:

<div> {% partial "sidebar-contacts" city="Vancouver" country="Canada" %} </div>

Внутри фрагмента доступ к переменным осуществляется как и везде:

<p>Country: {{ country }}, city: {{ city }}.</p>

Динамические фрагменты

Фрагменты, как и страницы, могут использовать любые возможности Twig (см. Динамические страницы).

Жизненный цикл фрагментов

Существуют специальные функции, которые могут быть указаны в Разделе PHP фрагментов: onStart() и onEnd(). Функция onStart() выполняется перед тем как фрагмент будет отображен на странице и перед тем как фрагменты компонентов ./components будут отображены. Функция onEnd() выполняется перед тем как фрагмент будет отображен на странице, но после того как рагменты компонентов ./components будут отображены. В этих функциях, например, Вы можете задать переменные для отображения:

== function onStart() { $this['hello'] = "Hello world!"; } == <h4>{{ hello }}</h4>

Язык разметки, используемый в October, описан в Руководстве по разметке. Последовательность вызовов обработчиков описана в Динамических макетах.

Ограничения жизненного цикла

Фрагменты отображаются по мере загрузки страницы. Поэтому есть некоторые ограничения:

  1. События AJAX не будту работать нормально во фрагментах.
  2. Функции onStart() и onEnd() не могут возвращать значения.
  3. Обработка форм происходит во время отображения фрагментов.

Поэтому, в основном, их лучше использовать только для отображения простого кода.

octobercms.info

OctoberCMS на русском — Документация

В October CMS компилирующий обработчик шаблонов Twig имеет дополнительные функции, теги, фильтры и переменные, которые помогают использовать возможности CMS и получать доступ к информации о страницах внутри ваших шаблонов.

Переменные

Используйте двойные фигурные скобки, чтобы отобразить значение переменной на странице:

{{ variable }}

Вы можете использовать выражения в качестве переменных:

{{ isAjax ? 'Yes' : 'No' }}

Вы можете соединять строки при помощи символа ~:

{{ 'Your name: ' ~ name }}

Вы также можете использовать глобальные переменные, которые находятся в переменной this, и перечислены в разделе Переменные.

Теги

Теги являются уникальной особенностью Twig и обернуты символами {% %}.

{% tag %}

Теги обеспечивают более понятный способ описания логики:

{% if stormCloudComing %} Stay inside {% else %} Go outside and play {% endif %}

Используйте тег {% set %} для инициализации переменных внутри шаблона:

{% set activePage = 'blog' %}

Теги имеют разный синтаксис, с которым Вы можете ознакомиться в разделе Теги.

Фильтры

Фильтры действуют как модификаторы переменных и применяются с использованием символа |, за которым следует имя фильтра.

{{ 'string'|filter }}

Фильтры могут принимать аргументы:

{{ price|currency('USD') }}

Фильтры могут применяться последовательно:

{{ 'October Glory'|upper|replace({'October': 'Morning'}) }}

Фильтры перечислены в разделе Фильтры.

Функции

Функция возвращает некоторое значение в результате выполнения фрагмента программного кода.

{{ function() }}

Функция может принимать аргументы:

{{ dump(variable) }}

Функции перечислены в разделе Функции.

Логика доступа

Самое важная вещь, о которой нужно знать при работе с Twig, - это то, как он взаимодействует с PHP. Рассмотрим переменную {{foo.bar}}. При попытке отобразить ее в шаблоне:

  1. Проверяется, является ли foo массивом, аbar - допустимым элементом.
  2. Если нет, и если foo является объектом, проверяется, чтоbar является допустимым свойством.
  3. Если нет, и если foo является объектом, проверяется, чтоbar является допустимым методом (даже если bar является конструктором).
  4. Если нет, и если foo является объектом, проверяется, чтоgetBar является допустимым методом.
  5. Если нет, и если foo является объектом, проверяется, чтоisBar является допустимым методом.
  6. Если нет, то возвращается null.

Неподдерживаемые функции

Существуют некоторые функции, которые не поддерживаются в October CMS:

Тег Аналог в October CMS
{% extend %} Используйте Шаблоны или {% placeholder %}
{% include %} Используйте {% partial %} или {% content %}

octobercms.info

OctoberCMS на русском — Документация

Введение

Шаблоны определяют каркас страницы, т.е. все, что повторяется на странице: шапка, подвал и т.д. Шаблоны часто содержат следующие html-теги: head, title, body.

Шаблоны находятся в папке с темой в подпапке /layouts и должны иметь расширение htm. Внутри шаблона должен использоваться тег {% page %} для отображения содержимого страницы. Простой пример шаблона (макета, layout):

<html> <body> {% page %} </body> </html>

Для того, чтобы страница могла использовать шаблон, необходимо в Конфигурацях указать его название. Помните, если шаблон находится в подпапке, то ее тоже надо указать. Пример главной страницы, которая использует шаблон default.htm:

url = "/" layout = "default" == <p>Hello, world!</p>

Теперь при отображении страницы должен появиться следующий код:

<html> <body> <p>Hello, world!</p> </body> </html>

Обратите внимание на то, что Вы можете использовать фрагменты в шаблонах. Например, у Вас есть фрагмент с набором стилей и скриптов. Теперь, если Вы захотите добавить еще один скрипт или файл со стилями, Вам не надо будет редактировать каждый шаблон по отдельности. Достаточно будет изменить только фрагмент.

Раздел Конфигурации необязателен для шаблонов и используются только в административной части сайта. Поддерживаемые параметры: name и description. Пример шаблона с описанием:

description = "Basic layout example" == <html> <body> {% page %} </body> </html>

Заменители ( Placeholders )

Заменители позволяют страницам вставлять содержимое в шаблон при помощи тега {% placeholder name %}. Пример шаблона с заполнителем head:

<html> <head> {% placeholder head %} </head> ...

Страницы могут вставлять содержимое в заменители при помощи тегов {% put %} и {% endput %}. Следующий пример показывает, как страница вставляет CSS файл в заменитель head, который использовался в предыдущем примере:

url = "/my-page" layout = "default" == {% put head %} <link href="/themes/demo/assets/css/page.css" rel="stylesheet"> {% endput %} <p>The page content goes here.</p>

Вы можете найти больше информации о заменителях в Руководстве по Разметке.

Динамический шаблон

В шаблонах, как и в страницах, можно использовать любые возможности Twig (см. Динамические страницы).

Жизненный цикл шаблонов

Внутри PHP раздела Вы можете задать следующие функции: onInit(), OnStart (), onBeforePageStart () и OnEnd ().

Функция onInit() выполняется, когда все компоненты инициализированы, но перед обработкой AJAX запросов. Функция onStart() выполняется в начале процесса загрузки страницы. onBeforePageStart() - после работы компонентов, но перед выполнением функции onStart() страницы. Функция onEnd() выполняется после того, как страница была отображена. Последовательность выполнения обработчиков:

  1. Шаблон - onInit().
  2. Страница - onInit().
  3. Шаблон - onStart().
  4. Компоненты шаблона м- onRun().
  5. Шаблон - onBeforePageStart().
  6. Страница - onStart().
  7. Компоненты страницы - onRun().
  8. Страница - onEnd().
  9. Шаблон - onEnd().

octobercms.info

OctoberCMS на русском — Документация

Введение

Сортировка - модификатор контроллера, используемый для сортировки и переупорядочивания записей. Действие контроллера reorder() отображает список с записями, которые можно перетаскивать.

Вид списка зависит от класса модели, который должен имплементировать один из следующих трейтов:

  1. October\Rain\Database\Traits\Sortable
  2. October\Rain\Database\Traits\NestedTree

Вы должны добавить один из трейтов в свойство $implement класса контроллера для того, чтобы использовать сортировку. Также свойство $reorderConfig должно содержать ссылку на YAML файл с настройками.

namespace Acme\Shop\Controllers; class Categories extends Controller { public $implement = [ 'Backend.Behaviors.ReorderController', ]; public $reorderConfig = 'config_reorder.yaml'; // [...] }

Настройка сортировки

Файл с настройками сортировки, указанный в свойстве $reorderConfig, должен быть в формате YAML и находиться в папке с представлениями контроллера. Пример:

# =================================== # Reorder Behavior Config # =================================== # Reorder Title title: Reorder Categories # Attribute name nameFrom: title # Model Class name modelClass: Acme\Shop\Models\Category # Toolbar widget configuration toolbar: # Partial for toolbar buttons buttons: reorder_toolbar

Вы можете использовать следующие параметры:

Параметр Описание
title название страницы.
nameFrom определяет какой атрибут должен использоваться в качестве метки для каждой записи.
modelClass имя класса модели откуда будут загружаться записи.
toolbar ссылка на файл с настройками панели инструментов, или массив с настройками.

Отображение страницы с сортировкой

Вы должны создать файл с названием reorder.htm. Это представление - страница, где пользователи смогут сортировать записи. Файл должен содержать только вызов метода reorderRender().

<?= $this->reorderRender() ?>

octobercms.info


Prostoy-Site | Все права защищены © 2018 | Карта сайта