templates — Управление шаблонами¶
Позволяет просматривать, создавать и управлять шаблонами структуры пакетов.
Использование¶
modxapp templates path # показать путь к шаблону default
modxapp templates list # список доступных шаблонов
modxapp templates copy <name> # скопировать default в новый шаблон
Примеры¶
# Список доступных шаблонов
modxapp templates list
# Создать кастомный шаблон на основе default
modxapp templates copy ecommerce
# Скопировать во внешнюю папку
modxapp templates copy ./external-templates
Как работают шаблоны¶
Шаблоны хранятся в package_builder/templates/. Каждый шаблон — это папка с именем, повторяющая структуру MODX:
package_builder/templates/
├── default/ — встроенный шаблон
│ ├── core/components/ → core/components/<name>/
│ ├── assets/components/ → assets/components/<name>/
│ └── package_builder/packages/ → package_builder/packages/<name>/
├── ecommerce/ — кастомный шаблон
│ ├── core/components/
│ ├── assets/components/
│ └── package_builder/packages/
└── blog/ — ещё один кастомный
└── ...
При modxapp templates copy <name>:
- Если
<name>— простое имя (без/) — шаблон создаётся вpackage_builder/templates/<name>/ - Если
<name>— путь (содержит/) — шаблон копируется по указанному пути
Использование при создании пакета¶
# Использовать шаблон по имени
modxapp create my-shop --template=ecommerce
# По умолчанию — шаблон default
modxapp create my-tool
Шаблон ищется по приоритету:
package_builder/templates/<name>/— в проекте- Встроенные шаблоны Package Builder
- Как абсолютный/относительный путь
Путь к шаблону можно задать в modxapp.json (через modxapp init --interactive) — тогда указывать --template при каждом create не нужно.
Workflow¶
# 1. Создать кастомный шаблон
modxapp templates copy ecommerce
# 2. Отредактировать
# package_builder/templates/ecommerce/core/components/ — файлы компонента
# package_builder/templates/ecommerce/assets/components/ — JS, CSS
# package_builder/templates/ecommerce/package_builder/packages/ — конфиг
# 3. Создать пакеты с разными шаблонами
modxapp create my-shop --template=ecommerce
modxapp create my-blog --template=blog
modxapp create my-tool # → default
Плейсхолдеры в шаблонах¶
Файлы с расширением .template обрабатываются — в них заменяются плейсхолдеры:
| Плейсхолдер | Значение |
|---|---|
{{package_name}} |
Имя в lowercase |
{{Package_name}} |
Имя в PascalCase |
{{short_name}} |
Краткое имя |
{{author_name}} |
Имя автора |
{{author_email}} |
Email автора |
{{php_version}} |
Версия PHP |
{{gitlogin}} |
Git username |
{{repository}} |
URL репозитория |
{{current_year}} |
Текущий год |
{{current_date}} |
Текущая дата |
Файлы без .template копируются как есть.