#Что можно менять, а что нельзя
Короткий ответ: меняйте вёрстку и данные, не меняйте код решения. Длинный — ниже, по частям.
#Таблица границ
| Что | Можно | Переживёт обновление |
|---|---|---|
| вёрстка вида (HTML, CSS, JS) | да, прямо в панели | да — правленый вид не затирается |
| завести свой вид рядом с чужим | да | да, он ничей |
| добавить поле в справочник решения | да | да, лишние поля не удаляются |
| изменить тип поля решения | не стоит | обновление предупредит и не тронет |
| удалить поле решения | нет | решение перестанет работать |
| переименовать справочник решения | нет | решение его не найдёт |
код решения (.php) | только на своём сервере | нет, перезапишется |
#Вёрстка — можно всё
Вёрстка любого вида правится целиком: разметка, стили, скрипты. Правка помечается, и обновление решения её не затрагивает — как это устроено.
Если правка получилась большой и вы хотите сохранить обе версии, заведите свой вид рядом с авторским: Модули → модуль → Добавить вид. Свои виды обновление не трогает вовсе — они никому не принадлежат.
#Поля справочников — можно добавлять
Добавить своё поле в справочник решения безопасно. Обновление решения смотрит, каких полей не хватает, и добавляет недостающие; лишние — ваши — не удаляет.
Тип поля лучше не менять. Обновление сверяет типы и ведёт себя так:
- хранилище то же (например,
Текст→Выбор из справочника) — тип поправят молча, значения не пострадают; - хранилище разное (например,
Текст→Число) — поле **не тронут**, а в отчёте появится строка «ВНИМАНИЕ, поля другого типа — не трогаю, разберитесь сами».
Молча превращать текст в число нельзя: часть значений превратилась бы в нули.
#Код решения — нет
Логика решений (.php-файлы) живёт в каталоге сайта. В облаке править
её через панель нельзя, и это не ограничение ради ограничения:
- обновление решения перезапишет файл, и правка пропадёт;
- ошибка в коде решения кладёт не блок, а сайт целиком.
На своём сервере файлы ваши, и править их никто не мешает. Но правило то же: обновление решения из витрины ляжет поверх. Меняете код — либо откажитесь от обновлений этого решения, либо ведите свою версию под своим кодом.
#Как правильно, когда вёрстки не хватает
Частая ситуация: блок решения показывает не то, что нужно. Прежде чем лезть в код, посмотрите, не решается ли это штатно:
| Задача | Правильный путь |
|---|---|
| «нужно другое поле в карточке» | добавить поле в справочник, вывести меткой |
| «нужно 6 записей, а не 12» | условие в вызове: {module.portfolio:limit=6} |
| «нужен другой порядок» | orderBy= и order= в вызове |
| «нужен другой отбор» | условие по полю: {module.portfolio:tag=Кухни} |
| «нужна вторая вёрстка того же» | завести второй вид и звать его view= |
| «нужны совсем другие данные» | завести свой модуль |
Почти всё, ради чего хочется править код, делается условиями вызова или своим модулем.
#Тема как отправная точка
Купленную тему можно править как свою — это законно и предусмотрено. Но помните: обновления темы вы после этого не увидите до тех пор, пока не нажмёте «Вернуть исходный код» и не потеряете правку.
Если тема — только основа и вы всё равно перепишете её целиком, разумнее собрать свою тему на её основе: тогда версия ваша, обновления не мешают, и её можно поставить на другой сайт.