Страница 1 из 2

Создание дочернего стиля для чайников

Добавлено: 06.02.2019 19:21
Пафнутий K
Прошу прощения, если баян, но пошаговой инструкции по созданию дочернего стиля я не нашел, поэтому привожу свой вариант.

Официальное руководство длинное и непонятное. Есть еще советы на русском, как создать свой стиль, но это не то что нам нужно, поскольку нам нужен пустой дочерний стиль, а не копирование всех файлов из исходного стиля.

Пользователи WordPress меня поймут, потому что там дочерний стиль по умолчанию абсолютно пуст и содержит два пустых файла styles.css и functions.php, и никто родительскую тему в дочернюю не копирует.

Методом научного тыка мне удалось выяснить, что в phpBB дочерний стиль тоже почти пуст. Он включает лишь 2 обязательных файла, остальные файлы вспомогательные и почти ненужные, без них можно и обойтись. Но лучше их все же включить, поскольку без них браузер может начать ругаться. Все файлы просто скопированы из родительского стиля.

Итак, вот наш дочерний стиль:
Prosilver-Child.png

Prosilver-Child-01.png

Prosilver-Child-02.png

Prosilver-Child-03.png

Prosilver-Child-04.png
В папке template ничего нет.


В обязательные файлы style.cfg и stylesheet.css согласно официальной инструкции вносим следующие изменения:

  • В prosilver_child/style.cfg

Код: Выделить всё

name = prosilver_child
parent = prosilver

  • В prosilver_child/theme/stylesheet.css

Код: Выделить всё

@import url("../../prosilver/theme/normalize.css?v=3.2");
@import url("../../prosilver/theme/base.css?v=3.2");
@import url("../../prosilver/theme/utilities.css?v=3.2");
@import url("../../prosilver/theme/common.css?v=3.2");
@import url("../../prosilver/theme/links.css?v=3.2");
@import url("../../prosilver/theme/content.css?v=3.2");
@import url("../../prosilver/theme/buttons.css?v=3.2");
@import url("../../prosilver/theme/cp.css?v=3.2");
@import url("../../prosilver/theme/forms.css?v=3.2");
@import url("../../prosilver/theme/icons.css?v=3.2");
@import url("../../prosilver/theme/colours.css?v=3.2");
@import url("../../prosilver/theme/responsive.css?v=3.2");


Всё. Стиль готов к использованию. Остаётся только подключить его в административной панели форума.


P.S. Свои собственные пользовательские стили userstyles.css можно складировать в папке prosilver_child/theme/ и подключать их в файле prosilver_child/theme/stylesheet.css следующей дополнительной строкой кода:

Код: Выделить всё

@import url("userstyles.css?v=3.2");


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

В этом случае можно:
  • Пользоваться в своих стилях свойством !important (не всегда хорошая практика)
  • Скопировать из родительского стиля файл overall_header.html в папку prosilver_child/template и подключить свой стиль внутри этого файла после строки '{$STYLESHEETS}' (не всегда удобно)
  • Создать свое простенькое расширение и подключать свои стили из этого расширения к событию 'overall_header_stylesheets_after' (хорошая практика)
Все три варианта работают, я проверял ;)

Re: Создание дочернего стиля для чайников

Добавлено: 31.03.2019 15:33
static77
Здравствуйте, эксперты.
Подскажите, не лучше ли будет в своем стиле добавить в overall_header.html ссылки на css файлы prosilver'а, а stylesheet.css оставить только свои, изменённые стили?

Re: Создание дочернего стиля для чайников

Добавлено: 31.03.2019 15:44
Татьяна5
Есть такой вариант
По моему мнению, красивей в stylesheets стиля подтянуть нужные из prosilver, перед подключением там своих, но это только моё мнение

Re: Создание дочернего стиля для чайников

Добавлено: 03.07.2019 10:20
Mkulya
Подскажите как в дочернем стиле подключить свой файл функций и добавлять туда свой функционал (аналог function.php в дочерней теме вордпресса)

Re: Создание дочернего стиля для чайников

Добавлено: 03.07.2019 13:51
Татьяна5
Это в phpBB делается не в стиле
Вы можете создавать свои расширения и разграничивать их по стилям при желании (в styles можно не создавать общих папок, а создать только для нужного стиля)

Re: Создание дочернего стиля для чайников

Добавлено: 11.11.2019 15:20
RWinner
А можно ли сделать дочерний стиль от дочернего стиля? :)

то есть:

- prosilver
-- prosilver_child
--- child_of_prosilver_child

??

И если так можно - практикуется ли?

Или это тормозить будет?

Re: Создание дочернего стиля для чайников

Добавлено: 11.11.2019 16:00
Nekstati
Можно.
Чему там тормозить-то, всё кэшируется же.

Re: Создание дочернего стиля для чайников

Добавлено: 11.11.2019 17:48
Татьяна5
RWinner писал(а): 11.11.2019 15:20 практикуется ли?
Да

Re: Создание дочернего стиля для чайников

Добавлено: 11.11.2019 20:26
RWinner
Пафнутий K писал(а): 06.02.2019 19:21 Пользователи WordPress меня поймут, потому что там дочерний стиль по умолчанию абсолютно пуст и содержит два пустых файла styles.css и functions.php, и никто родительскую тему в дочернюю не копирует.
Поймут, поймут))

Всё равно тут как-то наследование криво реализовано )) по идее должно быть достаточно просто заполнить манифест, указать в нем parent тему, и всё.

А тут этого недостаточно.

Я просто прямо сейчас решил по-быстренькому смастерить дочернюю тему (от другой дочерней), но начались какие-то взбрыки, а разбираться под вечер с ними ни сил ни желания уже нет))) тупо продублировал файлы из парент темы - вроде теперь работает )) буду теперь по кусочку отрезать в свободное время))) разбираться что лишнее, а что нет))

Re: Создание дочернего стиля для чайников

Добавлено: 11.11.2019 20:42
Пафнутий K
RWinner писал(а): 11.11.2019 20:26
Пафнутий K писал(а): 06.02.2019 19:21 Пользователи WordPress меня поймут, потому что там дочерний стиль по умолчанию абсолютно пуст и содержит два пустых файла styles.css и functions.php, и никто родительскую тему в дочернюю не копирует.
Поймут, поймут))

Всё равно тут как-то наследование криво реализовано )) по идее должно быть достаточно просто заполнить манифест, указать в нем parent тему, и всё.

А тут этого недостаточно.

Я просто прямо сейчас решил по-быстренькому смастерить дочернюю тему (от другой дочерней), но начались какие-то взбрыки, а разбираться под вечер с ними ни сил ни желания уже нет))) тупо продублировал файлы из парент темы - вроде теперь работает )) буду теперь по кусочку отрезать в свободное время))) разбираться что лишнее, а что нет))

Это да, до оптимальности тут конечно далеко :facepalm:

Долго приходится въезжать и шаманить. Но разобраться в принципе можно. Правда, через полгода все навыки вылетают из головы напрочь. Так что снова приходится шаманить и вспоминать.

Я до сих пор не обновлялся. Боюсь. У меня еще 3.2.5 стоит

Re: Создание дочернего стиля для чайников

Добавлено: 10.01.2020 22:33
Webliberty
У меня дочерний стиль давно используется и состоит из:
  1. theme (Каталог с файлами и папками, точно такими же, что в стандартном Prosilver, но некоторые файлы изменены. Обновляю вручную по patch-файлам.)
  2. template (Каталог, только с теми файлами, которые у меня изменены. На данный момент всего 1 файл, который в будущем также планирую удалить и заменить внесенные в него правки на расширение. Нужно кстати проверить, оставлял его, т.к. не было нужного события, сейчас возможно появилось. Обновляю вручную по patch-файлам.)
  3. style.cfg (Файл с правками, указанными в первом сообщении этой темы: name = prosilver_child, parent = prosilver. Обновляю вручную по patch-файлам.)
Импорт @import в stylesheet.css не использую по той причине, что в стилях есть ручные правки и уже не помню какие (рудименты после перехода с версии phpBB 3.0.x). В целом стремлюсь к использованию стандартных решений и по надобности - к установке расширений, но еще нахожусь на пути к совершенству :D

Отправлено спустя 5 минут 15 секунд:
А вообще есть же "phpBB Skeleton Extension" - заготовка для создания расширения, было бы не плохо официальной команде phpBB придумать что-то типа "phpBB Skeleton Style" в качестве помощи при создании дочерних стилей.

Re: Создание дочернего стиля для чайников

Добавлено: 18.10.2020 22:19
southklad
приветствую, не могу создать дочерний стиль, делаю так

Код: Выделить всё

name = My-child
parent = My_v2
но стиль для установки не появляется. Данный стиль наследует с другого стиля, который в свою очередь наследует от prosilver

Re: Создание дочернего стиля для чайников

Добавлено: 19.10.2020 1:31
Татьяна5
igorbond, это не весь style.cfg, это строки, которые надо изменить в полном

Re: Создание дочернего стиля для чайников

Добавлено: 29.04.2021 18:41
southklad
Такой вот вопрос, создал дочернюю тему, а как теперь запретить выбор других тем? Нужно оставить две, остальные скрыть, включая родные.

Re: Создание дочернего стиля для чайников

Добавлено: 29.04.2021 19:05
Sheer
Две не получится, удалить prosilver нельзя, родительский стиль для дочернего тоже нельзя.
изображение.png