(deprecated) Plugin outlet locations theme component

:mega: the ability to debug plugin outlets is now included in core. Check out this topic for more details

Original theme component info

Continuing the discussion from Plugin Outlet Locations:

I needed an updated version with all the plugin outlets that have been added recently and then I realised that it would be really easy to create a theme component for this, so there is no need to install a plugin any more.

Repository: GitHub - communiteq/plugin-outlets-theme-component

The repository includes a script (gen/generate.rb) that will auto-generate the outlets based on the Discourse source code.

To toggle the plugin outlets, click the “connector” icon in the top right.

When you click a specific plugin outlet, the display will change and you will be able to see all the arguments to the plugin outlet. Click it again to change it back.

firefox_whjNGBiVSB

Install this theme component

Theme preview: Theme Creator

63 лайка
Introducing Discourse developer toolbar
Plugin Outlet Locations
Is there a theming 'map'? (An easy way to find plugin-outlets etc)
Custom text at top of search results page
List of components or PluginOutlets with explanatory documentation
Plugin Outlet Locations
Locations Plugin :earth_africa:
Add localizable strings to themes and theme components
Developing Discourse Plugins - Part 2 - Connect to a plugin outlet
Adding custom html under header (d-header-wrap) instead of main-outlet
I want to insert images (banner) between the topic answers. How do I start?
How to add a link shortcut to the area under the title
Add Banner/HTML (Widget) before reply button
FKB Pro - Social theme
Stat Banner
Total Posts count instead of Post per month
Settings not appearing
Enable Dev Tools Button
Be able to put the banner above the main content but not above the sidebar
Adding new columns to user lists in groups
I want to add a message below each question
Theme Confusion
How to override the site-header.hbs file from custom theme?
Add HTML above
Developing Discourse Themes & Theme Components
Featured Lists
When to use a plugin vs theme component?
How I can add plugin to my discourse
Add custom content that only appears on your homepage
What HTML can you customize?
Fetch third party data for topic list
Is there a theming 'map'? (An easy way to find plugin-outlets etc)
Help me to append html code on Hamburger Section
Using scripts in the topic
Why is the styleguide so well hidden?
api.decorateWidget - how can I find the template's names?
Using Plugin Outlet Connectors from a Theme or Plugin
Can I put the search form at the top of our 404 page?
Add background video to certain user profiles?
Plug in to check HTML tag's Discourse Site

Didn’t @Mittineague write something like this before?

1 лайк

Yes, see the link at the very top of this topic, that refers to the topic about that. @Mittineague wrote a plugin in 2015. I was using it and then I found out that it needed to be updated (it hadn’t been updated for over 2 years).

The next step was me realizing that this could be done much easier now using a theme component.

7 лайков

Yes, I had started to update the plugin to take into account the changes in the number and locations of plugin outlets a few weeks ago, but other priorities moved it down on my ever growing todo list.

If the same information can be provided as a theme component that works in the GUI and doesn’t require editing app.yml and running launcher I think it would be easier for most. I may be wrong, but I have a feeling most prefer GUI over CLI.

6 лайков

Я часто использую этот компонент темы (и предварительный просмотр темы), так как разрабатываю несколько тем, но так и не поблагодарил @RGJ.

Не могу сказать точно, сколько времени этот компонент темы помог мне сэкономить, но очень много. Отличная работа, очень-очень полезно.

10 лайков

При установке компонента возникает ошибка «Bad Gateway». Также ошибка появляется при попытке вручную вставить сгенерированный контент в файл head_tag.html.

Существует ли ограничение на длину этого файла? Потому что всё работает нормально, если разделить контент на два отдельных файла.

Ограничения по длине нет (по крайней мере, нет такого, которое было бы близко к текущей длине файла).

Установка компонента темы занимает некоторое время; ваш сервер может быть недостаточно быстрым и завершить работу по тайм-ауту из-за большого количества используемых модулей плагинов или фрагментов скриптов.

2 лайка

В процессе разработки я постоянно включал и выключал эту тему, чтобы видеть выходы плагинов. Чтобы упростить это в моей среде разработки, я добавил кнопку-переключатель для управления видимостью выходов плагинов. Возможно, это будет полезно и другим, поэтому я создал PR для этого.

13 лайков

Это великолепно. Спасибо!
PR принят.

9 лайков

Отличная идея! Мне очень нравится иконка кнопки плагина :slight_smile:

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

2 лайка

@merefield

Ах да, вы правы. :sweat_smile: Я перешёл к добавлению класса к body для переключения видимости, и, похоже, это решило проблему. PR здесь:

6 лайков

Чего мне не хватает? Я установил компонент. Но нужно ли мне всё ещё запустить скрипт, чтобы это заработало? Находится ли скрипт где-то на моём сервере, чтобы я мог его запустить, или мне нужно скопировать и вставить? Если я редактирую common/head_tag.html, нужно ли мне вернуть его в исходное состояние, чтобы отключить этот компонент?
:folded_hands:

Скрипт присутствует только для обслуживания плагинов, вам он не нужен.

Просто установите компонент темы, добавьте его в вашу основную тему и нажмите значок «включить».

firefox_jDikn4jVrC

6 лайков

При использовании вместе с Custom Header Links (icons) обнаружена небольшая ошибка.
Нажатие на иконку пользовательского заголовка вызывает кнопку выхода:

1 лайк

Есть небольшая ошибка с карточкой нового пользователя как компонентом темы. Не уверен, что это произойдет, когда она будет включена в ядро (если это так). Тем не менее… выходы в экспериментальной карточке пользователя все еще отображаются, даже когда выходы отключены:

Кстати, если я еще не говорил этого, этот компонент темы просто потрясающий.

2 лайка

Да, я могу воспроизвести эту проблему, спасибо за сообщение!! :+1:

Я выпущу новую версию компонента темы в начале следующей недели, в ней появятся новые выходы для 3.1 и исправление этой ошибки.

3 лайка

Могу я предложить одно изменение? Выберите цвет фона. Я рад, что «брутальный красный» заменили на «яркий зелёный», но лично мне нравятся приглушённые цвета. :slight_smile:

(Хотя я могу создать pull request).

4 лайка

Новая версия!!

  • Обновлено с учётом всех плагинов из PluginOutlets версии 3.2beta
  • Настраиваемые цвета
  • Нажмите на слот, чтобы увидеть реальные параметры :fire:

firefox_whjNGBiVSB

13 лайков

Похоже, есть небольшая ошибка: теперь по умолчанию включено на каждой перезагрузке страницы на моём ПК, и выводится несколько предупреждений об устаревании:

[THEME 105 'Plugin Outlet Locations'] Предупреждение об устаревании: виджет header-icons устарел, и decorateWidget больше не поддерживается как переопределение. [устарело с версии Discourse v3.3.0.beta1-dev] [id устаревания: discourse.header-widget-overrides] [инфо: https://meta.discourse.org/t/296544]
[THEME 105 'Plugin Outlet Locations'] Предупреждение об устаревании: виджет header-icons устарел, и attachWidgetAction больше не поддерживается как переопределение. [устарело с версии Discourse v3.3.0.beta1-dev] [id устаревания: discourse.header-widget-overrides] [инфо: https://meta.discourse.org/t/296544]
1 лайк

Ах, спасибо, что обратили на это внимание @Firepup650! :+1:
Я проверил только свои плагины на предмет этого устаревания, но забыл о компонентах темы.

Я выкатил обновление, чтобы исправить это устаревание.

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

8 лайков