Yes, and presumably you can apply to every available Theme so this can’t be switched off? (to address @sarahann concern about this approach).
I could use display: none but it might now be as secure as we need it to be. And I figured it would be helpful to have a discussion on how to remove / change Discourse UI templates.
It’s tricky to do properly, unfortunately. For a big customer of ours who needs functionality removed, my approach has been to hide the elements with CSS and remove the controller side actions by using add_to_class to overwrite the methods with an error in plugin.rb.
I have a same problem. I’m working on plugin with topic, and I have to change the html structures but it’s impossible with only CSS. So I was tried to overwrite template but changes never applied.
So do you have find any solution for that?
You can override any template in the application if you like (although outlets are always preferred!). How were you doing it? did you confirm the name is exactly the same as the template you are replacing?
I tried to override the “list/topic-list-item.raw.hbs” template, but even though I removed all of the content in template, the topic items still appearing as original, any changing in override template never worked.
Please help me what I was wrong.
See: GitHub - discourse/discourse-simple-theme: Sam's simple discourse theme for an example of how it is done.
Hello,
When I run the command git grep “plugin-outlet” – “*.hbs” in my Linux Terminal, nothing shows up. Any ideas why? Thanks for your help!
Caveat: This is a sysadmin answer, not a plugin developer answer, and I can’t guess what you might have done before you did your git command.
Did you add it to git? What about
grep -r plugin-outlet .
Building on Jay’s shoulders here, you can of course focus on the specific file type:
grep -r "plugin-outlet" --include \*.hbs
¿Hay algo que debas considerar de manera diferente si el outlet del plugin se ve así?
{{plugin-outlet name="users-top" connectorTagName="div" args=(hash model=model)}}
¿Los atributos connectorTagName y args significan que los desarrolladores de plugins tienen restricciones particulares o accesos adicionales al utilizar estos outlets?
Sí, se supone que debes trabajar con la API que establecen los outlets.
En users-top se te pasa un model que puedes utilizar, y el conector se renderizará con un div en este caso.
No he encontrado {{plugin-outlet}}. He encontrado algunos componentes con el mismo nombre. ¿Son iguales?

Creo que el código de Discourse cambió y que la guía puede estar desactualizada.
Buscando este ejemplo:
Encontré esto en su lugar:
Y usando este increíble componente temático (deprecated) Plugin outlet locations theme component puedo ver este outlet donde debería estar:
Para responder a tu pregunta, supongo que es lo mismo, pero con una nueva sintaxis.
También he encontrado esta etiqueta. ¿Podría alguien confirmar que son todas iguales?
{{~raw-plugin-outlet name="topic-list-after-title"}}
La referencia más actualizada sobre los enchufes es esta:
Intentaré actualizar el OP en los próximos días.
OP actualizado con la nueva sintaxis y un enlace a la documentación completa.
Creo que el comando debería actualizarse a:
git grep "<PluginOutlet" -- "*.gjs"
Ese enlace dice “obsoleto” (deprecated).
Edición: Encontré el enlace para hacer un PR bajo la publicación principal, así que hice un PR.
Reemplazado por:
https://meta.discourse.org/t/introducing-discourse-developer-toolbar/346215?u=merefield

