N1 Nex1on

Редактор тем: править вид сайта прямо в панели

Как завести свою тему, поменять в ней шаблоны и стили прямо в панели и ничего не сломать.

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

Кто и когда может править

  • Только владелец сайта. Раздел «Внешний вид → Редактор тем» виден ему одному; администратор с любыми правами его не увидит и открыть не сможет. Выдать такое право нельзя: оно не лежит в таблице прав.
  • Редактор выключен по умолчанию. Владелец включает его на странице раздела, вводя пароль. Пока он выключен, файлы тем из панели не меняются вовсе.
  • Пароль. Запись файла просит пароль, если вы не подтверждали его последние 5 минут. Удаление файла, откат к версии, переименование, удаление темы и включение редактора просят пароль каждый раз, даже если вы только что его вводили.
  • Подбор. После пяти неверных паролей за 15 минут редактор перестаёт проверять пароль вообще — даже верный — до конца окна.
  • В журнале действий остаётся, кто, когда и какой файл менял (путь, размер, короткий отпечаток), но не текст файла.

Что можно править

Только то, что не исполняется:

ФайлДля чего
*.tpl.htmlшаблоны на тегах: шапка, подвал, вид страницы, поиск, вход, кабинет…
*.cssстили
*.svgзначки и рисунки (опасные части автоматически убираются, редактор называет, что убрал)
*.txtтекстовые заметки
png, jpg, webp, gifкартинки (загружаются заново и перекодируются, анимация GIF теряется — об этом сообщается)

Нельзя никогда: PHP, скрипты (.js), theme.json, .htaccess и всё прочее исполняемое или неизвестное. Скрипты на сайт подключаются через настройки и модули, а не через тему. В имени файла — строчные латинские буквы, цифры, точка, дефис и подчёркивание; каталогов не глубже шести.

В стилях запрещены @import, адреса других серверов и выражения (expression, behavior), в шаблонах — программный код. Чужие картинки в шаблонах разрешены, но редактор предупредит: адрес посетителя уйдёт чужому серверу.

Как начать

  1. Внешний вид → Редактор тем. Если редактор выключен — включите (понадобится пароль).
  2. Создать свою тему. Придумайте короткое имя (оно всегда начинается с my-), название и выберите готовую тему-основу. Новая тема пока ничем не отличается от основы и не включается сама.
  3. Откройте тему, выберите файл слева. Файлы основы открываются только для чтения; кнопка «Изменить этот файл» копирует его в вашу тему, и копию можно править. В списке слева «Ваши файлы» — всё, что вы изменили.
  4. Внесите правку и нажмите «Сохранить». Перед записью шаблон проверяется (см. ниже).
  5. Когда тема готова, включите её в Внешний вид → Темы так же, как любую другую. Удалить можно только тему, которая сейчас не включена; удалённая тема уходит в папку истории и при необходимости возвращается вручную.

Проверка шаблона

Перед записью файла тегов редактор находит ошибки и называет строку:

  • не закрыт или закрыт лишний [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

На этой странице
Поделиться: Telegram WhatsApp
Откладывать можно и без входа: закладки сохранятся в этом браузере, а после входа их можно перенести в учётную запись. Вход
Обсуждение

Комментарии

Обсуждение ещё не началось

Пока никто не высказался. Будьте первым.

Пожаловаться на запись