Редактор тем: змінюйте вигляд сайту просто в панелі
Як завести власну тему, змінити в ній шаблони та стилі просто в панелі й нічого не зламати.
Редактор тем потрібен, коли готової теми замало: хочеться іншу шапку, власну сторінку пошуку, інший колір кнопок, окремий вигляд для однієї рубрики. Правити файли готових тем не можна — їх замінить оновлення рушія. Тому правка йде у власній темі: це готова тема плюс лише ті файли, які ви змінили. Усе інше береться з готової теми, і її оновлення до вас доходять.
Хто і коли може правити
- Лише власник сайту. Розділ «Зовнішній вигляд → Редактор тем» видно тільки йому; адміністратор із будь-якими правами його не побачить і відкрити не зможе. Видати таке право не можна: його немає в таблиці прав.
- Редактор вимкнено за замовчуванням. Власник вмикає його на сторінці розділу, вводячи пароль. Поки він вимкнений, файли тем із панелі не змінюються взагалі.
- Пароль. Запис файлу просить пароль, якщо ви не підтверджували його останні 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
Пока никто не высказался. Будьте первым.