Я хочу изменить базовый HTML в плагине, который я тестирую (было бы удобно внести все изменения в один плагин). Это был бы HTML, который я бы разместил в разделе header настраиваемых параметров темы в панели администратора, если бы использовал эту панель вместо плагина.
В теме у вас была бы просто обычная папка с названием common, содержащая различные файлы, например header.html.
Я знаю, что общие стили для плагина можно разместить в plugin/assets/stylesheets/common. Где мне разместить файл header.html в плагине?
Мы постоянно добавляем новый HTML в темы и в пользовательизатор. Я хочу добавить это в свой плагин (вместо темы), чтобы у меня была единая кодовая база.
Где в плагине следует размещать HTML, который при создании темы вы бы поместили в «header» в общей папке?
Для CSS эквивалентом в плагине является [plugin]/assets/stylesheets/common/[file.scss]
Следуя этому формату, я попытался добавить файл по пути [plugin]/assets/views/layouts/common/header.html, но это не сработало (также не сработал вариант views/header.html).
Я могу изменять шаблоны, но для простых изменений HTML, подобных тем, что мы делаем в темах, было бы удобно вносить простые правки в header.html (или его аналог). Например, где в плагине (который уже выполняет сложную серверную логику, отсюда и необходимость в плагине) следует разместить следующее:
Мне тоже непонятны различия в том, как выполнять подобные действия в плагине по сравнению с темой. Можно поступить проще и использовать компонент темы для таких задач, но, судя по всему, вы ищете оптимальное решение, а не самое быстрое. (хотя есть и преимущества в том, чтобы вынести такие вещи отдельно для независимого обслуживания)
Думаю, вам нужно добавить строку в файл plugin.rb, которая подключит нужный файл. Я обычно клонирую репозиторий all-the-plugins из GitHub-репозитория Discourse и ищу там пример с помощью grep.
Круто. Спасибо. Да, я подумал, что, возможно, дело в том, что сейчас нет простого способа вносить изменения в HTML внутри плагина так, как это делается в теме — для правки HTML нужно заходить в шаблоны или коннекторы плагина (это не слишком сложно, но отличается от более простого подхода в темах, где обычно правят common/header.html).
Я изучу файл plugin.rb и посмотрю, будет ли это сейчас проще, чем идти стандартным путём через шаблоны или компоненты.
Это не там, где я говорил, но вы помещаете его в дерево ассетов с правильным именем. Непонятно, пока не разберешься, а потом всё становится абсолютно очевидным.
Редактирование: Привет, @JQ331. Я только что понял, что, кажется, сделал то, что вы хотите, в плагине вчера, но я так плохо это сделал, что не осознал, что это именно то, что вы ищете. Смотрите GitHub - literatecomputing/discourse-max-topics-per-month · GitHub. Это очень просто, поэтому ничто не мешает найти пример.