Оглавление

Начиная с версии MODx Revolution 2.2 можно создавать статические элементы, чтобы упростить управление ими. Эта функция доступна для всех элементов, включая шаблоны, чанки, сниппеты и плагины.

Статический элемент — это элемент, который получает свое содержимое из файла. При редактировании файла через менеджер MODx или IDE, элемент будет обновлять код, подхватывая тем самым любое изменение файла. Таким образом, вы можете управлять содержимым элементов через файлы.

Создание статического элемента

Чтобы сделать элемент статическим, просто установите флажок «Статичный», выберите «Источник файлов» и добавьте путь к файлу, содержимое которое должно передаваться в элемент. Путь к файлу можно указать через диспетчер файлов MODx в поле «Статичный файл».

Статичный элемент - сниппет

Файлы против Базы данных

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

Автоматическое создание статических элементов

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

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

Когда элемент удаляется или переименовывается, связанный с ним файл также удаляется.

Настройка автоматических статических элементов

  1. Перейдите в Системные настройки > core > Статические элементы. Укажите путь для хранения статических элементов в параметреstatic_elements_basepath.
  2. Включите автоматизацию статических элементов для каждого типа элемента, который вы хотите создавать автоматически. Например, включите параметр static_elements_automate_snippets, чтобы создать статические файлы для сниппетов и / или static_elements_automate_chunks, чтобы создавать статические файлы для чанков.
  3. В параметре static_elements_default_mediasource можно указать источник файлов по умолчанию для файлов статических элементов.
  4. При необходимости в параметре static_elements_default_categor  можно выбрать категорию по умолчанию для статических элементов.

Файлы будут созданы по пути: {static_elements_basepath}/{type}/{category}/{filename}.{extension} в указанном медиа-источнике.

Например, если указать в параметре static_elements_basepath следующее значение — core/components/mysite/, то на выходе мы получим создание файлов по следующим путям:

core/components/mysite/chunks/test.chunk.tpl

или для сниппетов:

core/components/mysite/snippets/snippet.snippet.php

В MODx 2.7.2 (и возможно ниже), автосоздание файлов как статических элементов работает очень редко или вообще не работает.