Редактор тем: править вид сайта прямо в панели
Как завести свою тему, поменять в ней шаблоны и стили прямо в панели и ничего не сломать.
Редактор тем нужен, когда готовой темы мало: хочется другую шапку, свою страницу поиска, иной цвет кнопок, отдельный вид для одной рубрики. Править файлы готовых тем нельзя — их заменит обновление движка. Поэтому правка идёт в своей теме: это готовая тема плюс только те файлы, которые вы изменили. Всё остальное берётся у готовой темы, и её обновления до вас доходят.
Кто и когда может править
- Только владелец сайта. Раздел «Внешний вид → Редактор тем» виден ему одному; администратор с любыми правами его не увидит и открыть не сможет. Выдать такое право нельзя: оно не лежит в таблице прав.
- Редактор выключен по умолчанию. Владелец включает его на странице раздела, вводя пароль. Пока он выключен, файлы тем из панели не меняются вовсе.
- Пароль. Запись файла просит пароль, если вы не подтверждали его последние 5 минут. Удаление файла, откат к версии, переименование, удаление темы и включение редактора просят пароль каждый раз, даже если вы только что его вводили.
- Подбор. После пяти неверных паролей за 15 минут редактор перестаёт проверять пароль вообще — даже верный — до конца окна.
- В журнале действий остаётся, кто, когда и какой файл менял (путь, размер, короткий отпечаток), но не текст файла.
Что можно править
Только то, что не исполняется:
| Файл | Для чего |
|---|---|
*.tpl.html | шаблоны на тегах: шапка, подвал, вид страницы, поиск, вход, кабинет… |
*.css | стили |
*.svg | значки и рисунки (опасные части автоматически убираются, редактор называет, что убрал) |
*.txt | текстовые заметки |
png, jpg, webp, gif | картинки (загружаются заново и перекодируются, анимация GIF теряется — об этом сообщается) |
Нельзя никогда: PHP, скрипты (.js), theme.json, .htaccess и всё прочее исполняемое или неизвестное. Скрипты на сайт подключаются через настройки и модули, а не через тему. В имени файла — строчные латинские буквы, цифры, точка, дефис и подчёркивание; каталогов не глубже шести.
В стилях запрещены @import, адреса других серверов и выражения (expression, behavior), в шаблонах — программный код. Чужие картинки в шаблонах разрешены, но редактор предупредит: адрес посетителя уйдёт чужому серверу.
Как начать
- Внешний вид → Редактор тем. Если редактор выключен — включите (понадобится пароль).
- Создать свою тему. Придумайте короткое имя (оно всегда начинается с
my-), название и выберите готовую тему-основу. Новая тема пока ничем не отличается от основы и не включается сама. - Откройте тему, выберите файл слева. Файлы основы открываются только для чтения; кнопка «Изменить этот файл» копирует его в вашу тему, и копию можно править. В списке слева «Ваши файлы» — всё, что вы изменили.
- Внесите правку и нажмите «Сохранить». Перед записью шаблон проверяется (см. ниже).
- Когда тема готова, включите её в Внешний вид → Темы так же, как любую другую. Удалить можно только тему, которая сейчас не включена; удалённая тема уходит в папку истории и при необходимости возвращается вручную.
Проверка шаблона
Перед записью файла тегов редактор находит ошибки и называет строку:
- не закрыт или закрыт лишний
[if],[ifnot],[each], блоки перепутаны; [else]вне условия или внутри списка;- тег с именем из запретного списка (ключи защиты, пароли, почта, коды, устройства) — такие данные шаблонам не отдаются;
- слишком длинный шаблон, слишком много тегов, слишком глубокая вложенность;
- программный код.
Ошибка не даёт сохранить файл. Предупреждения (неизвестный тег — он ничего не выведет; то, что очистка уберёт при показе: скрипты, on…=, javascript:; картинка с чужого сервера) сохранить не мешают.
Теги: что вставить и как
Справа от поля — каталог тегов с поиском: нажмите на тег, и он встанет на место курсора. У каждого сказано, что он выводит. В каталоге теги ядра (название сайта, пользователь, страница, посетитель, формы, меню, крошки…) и вставляемые элементы модулей — списки записей, комментарии, баннеры и т. д. Полный перечень по каждому виду страницы — в справочнике «Виды на тегах».
Несколько приёмов:
- Условия и списки:
[if:user.logged]…[else]…[/if],[each:menu]…{item.title}…[/each]. - Дата в своём формате:
{date=d.m.Y H:i}; дата правки:{edit-date=d.m.Y}. - Обрезка любого текста:
{title limit=60 wordsafe=1}(по знакам, не рвать слово) или{title words=10}(по словам); обрезанное кончается «…». - Посетитель:
[if:visitor.mobile],[if:visitor.ios],[if:visitor.tv],{visitor.os},[if:visitor.lang=ru],[if:visitor.country=UA]. - Роль вошедшего:
[if:user.role=editor]— по машинному имени роли, оно не зависит от языка сайта; несколько через запятую.
Шаблон под рубрику
Хотите, чтобы одна рубрика выглядела иначе? Создайте рядом с обычным файлом второй, вставив ключ рубрики между именем вида и .tpl.html:
views/news/show.tpl.html— запись новости для всех рубрик;views/news/show.tehnika.tpl.html— запись новости в рубрике с ключомtehnika.
То же с главной разметкой: views/layouts/main.tehnika.tpl.html заменит шапку и подвал на страницах этой рубрики. Для других рубрик и страниц без рубрики остаётся обычный файл. Ключ рубрики — её короткое имя в адресе; работает в модулях, которые называют рубрику страницы (новости, форум, магазин, загрузки).
Предпросмотр, версии, сравнение
- Предпросмотр. Кнопка рядом с «Сохранить» показывает черновик в закрытом окне под полем кода. Ничего не сохраняется, скрипты в окне не работают, чужие адреса не загружаются, ссылка на окно действует 10 минут и привязана к вам и вашему сеансу. Окно показывает страницу-образец с вашими тегами и стилями сайта.
- Версии. Каждое сохранение, переименование и удаление кладёт прежний текст в историю: до 30 версий на файл. Откат — это тоже новая версия, поэтому ничего не пропадает. Откат просит пароль.
- Сравнение. «Сравнить» у версии показывает, что изменилось по строкам (красное было, зелёное стало). «Сравнить с файлом темы-основы» показывает, чем ваш файл отличается от оригинала.
- «Основа изменилась». Если после обновления движка файл темы-основы поменялся, у вашей копии появится плашка. Сравните и перенесите нужное: автоматически ничего не заменяется.
Если что-то пошло не так
- Сайт показывает странность после правки. Откройте файл → «Версии этого файла» → верните предыдущую. Или удалите ваш файл: сайт снова возьмёт файл основы.
- Шаблон не применяется. Файлы тегов своей темы заменяют не любой вид: вход, регистрация и другие страницы входа, письма, оплата и заказы остаются как у основы — на них могут быть формы с ключом защиты. Остальные виды и главная разметка заменяются.
- Тема сломалась целиком. Движок сам вернёт запасную тему, если свой файл вызывает ошибку, и сообщит владельцу.
- Копия сайта. Свои темы лежат в
storage/themesи в резервную копию базы не входят. Версии файлов лежат вstorage/theme-history. Скопируйте эти папки вместе с файлами сайта. - Что скажет безопасность. Папки со своими темами закрыты от прямого доступа по сети; стили, картинки и значки отдаёт движок через
/assetsс проверкой типа, значки SVG — с запретом скриптов. Если на сервере прямой адрес/storage/themes/…вдруг отдаёт файл, сообщите владельцу сервера: так быть не должно.
Обновлено 16.10.2026
Пока никто не высказался. Будьте первым.