Создание дочернего шаблона Modern. При компиляции SCSS слетают стили

ЕСТЬ РЕШЕНИЕ InstantCMS 2.X
#1 22 января 2022 в 15:07

Здравствуйте, уважаемые Инстант-коллеги!

Разбираюсь в шаблоне Modern.

По возможности стараюсь не говно-кодить, не править исходники шаблона, а организовать правки максимально корректно и надёжно.

Соответственно, посмотрел замечательную статью Zau4man:
instantcms.ru/blogs/horoshie-mysli/kak-ne-poterjat-pravki-v-shablone-delaem-dochernii-shablon-4549.html

Несколько раз пробовал повторить шаги, описанные в инструкции.
Но после компиляции SCSS в исходном шаблоне Modern внешний вид сайта остаётся таким же, как и до компиляции.
А после переключения и на дочерний шаблон и его компиляции — внешний вид сайта ползёт.

Буду признателен за помощь в исправлении этой ошибки.

Сейчас распишу всё подробнее.

— — — - 

Итак, действую ровно по данной инструкции:
instantcms.ru/blogs/horoshie-mysli/kak-ne-poterjat-pravki-v-shablone-delaem-dochernii-shablon-4549.html

Предварительные шаги:
1. Разворачиваю чистый движок (версия 2.15.1).
2. Компилирую SCSS. В результате внешний вид сайта не меняется.

Внешний вид сайта — вот такой:
Изображение

— — — - 

Далее делаю шаги по инструкции:

1. Создаю файл manifest.php, аккуратно его заполняю (перепроверял несколько раз)
2. В результате в админке появляется новая тема. Переключаюсь на неё. Сайт пока пустой.
3. Выполняю импорт схемы, копирование виджетов.

После выполнения этих действий сайт приобретает такой вид:
Изображение 
То есть — логотип не загружился, но в остальном внешний вид сайта — ровно такой же, как и при использовании родительского шаблона Modern.

— — — - 

Шаг №4 в инструкции Zau4man я пропускаю, так как дополнительные поля в настройках шаблона в админке создавать не планирую.

— — — -

Далее делаю:

5. Аккуратно и целиком копирую подпапку /scss из папки исходного шаблона в свой.
Также на всякий случай аккуратно копирую подпапку /images/photoswipe и её содержимое.

После выполнения этого действия — внешний вид сайта не меняется.

— — — -

Шаг №6 в исходной инструкции я также пропускаю, так как планирую управлять логотипом в настройках шаблона.

— — — -

Далее на всякий случай выполняю шаг, указанный полужирным мини-заголовком после шестого и до итогов:

7.  «Подключим свой файл стилей»
Я копирую сайл main.tpl.php из папки исходного шаблона в свой.
Кодов в него не вношу, так как планирую использовать /scss/_custom.scss.

— — — -

После всех этих действий, если выбрать в настройках исходную тему Modern и скомпилировать SCSS, то результат выглядит вот так:

Изображение

То есть после компиляции шаблона Modern внешний вид сайта НЕ меняется.

— — — -

Но после компиляции дочернего шаблона (созданного согласно инструкции уважаемого Zau4man) сайт выглядит следующим образом:

Изображение

— — — -

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

Буду очень признателен за подсказки, наводки, идеи — что именно?

#2 22 января 2022 в 16:33

Истерия в комментариях не ускорит ответ. Это форум, а не техподдержка.

Проблемы нет.

Вы создаете дочернюю тему. У нее нет своих настроек цветов, и применяются те, что есть по умолчанию.

Сравните настройки цветов вашей дочерней темы и темы modern

Изображение

Видите разницу?

Настройте цвета так, как вам надо, и скомпилируйте стили еще раз.

Если нужно прям как в modern, то сделайте копию файла system\config\theme_modern.yml назвав копию theme_названиевашейтемы.yml

И тогда опции вашей дочерней темы будут такими же, как у modern

#3 22 января 2022 в 17:01

Истерия в комментариях не ускорит ответ. Это форум, а не техподдержка.

Проблемы нет.

Вы создаете дочернюю тему. У нее нет своих настроек цветов, и применяются те, что есть по умолчанию.

Сравните настройки цветов вашей дочерней темы и темы modern

Изображение

Видите разницу?

Настройте цвета так, как вам надо, и скомпилируйте стили еще раз.

Если нужно прям как в modern, то сделайте копию файла system\config\theme_modern.yml назвав копию theme_названиевашейтемы.yml

И тогда опции вашей дочерней темы будут такими же, как у modern

Zau4man

Спасибо огромное за ответ, данный вопрос решён!


Ситуацию я понимаю следующим образом:

1. При создании папки шаблона и файла manifest.php — в папке /system/config АВТОМАТИЧЕСКИ создаётся файл theme_НАЗВАНИЕ_ПАПКИ_С_ТЕМОЙ.yml.

2. В этом файле хранятся различные настройки темы.

3. Нюанс в том, что в данный файл НЕ переносятся значения из аналогичного файла исходной темы, а заполняются значения по-умолчанию.

4. В этом файле указаны не только цвета, но также интервалы, шрифты, другие элементы конфигурации шаблона.

5. Во время выполнения компиляции SCSS движок использует в том числе данные в этом файле и на основании их меняет файл theme.css и, возможно, какие-то ещё внутри темы.

6. Сответственно, если есть задача опираться на стили (цвета, шрифты, интервалы, а не только общий каркас) исходного шаблона Modern, то после выполнения действий, указанных в статье (https://instantcms.ru/blogs/horoshie-mysli/kak-ne-poterjat-pravki-v-shablone-delaem-dochernii-shablon-4549.html), есть смысл также аккуратно перенести данные из файла конфигурации исходного шаблона в дочерний.

7. Можно просто файл скопировать и переименовать, а можно — более точечно перенести нужные фрагменты кода или значения.

Мой вопрос решён.

Топик пока не закрываю, возможно, у кого-то возникнут вопросы уточнения, дополнения.

Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.