omppatil
(Om Patil)
28 Noviembre, 2023 12:34
1
¡Hola!
Soy nuevo en la creación de plugins de Discourse y agradecería algo de ayuda para agregar un botón de alternancia al menú de publicaciones e implementar su acción en el plugin.
Lilly
(Lillian )
28 Noviembre, 2023 12:41
2
Hola @omppatil , quizás esta publicación te ayude a ir en la dirección correcta:
Si quieres agregar un botón al menú de publicaciones, necesitarás algo un poco diferente, ya que las publicaciones son widgets .
Deberías agregar algo como esto a tu tema o plugin.
api.addPostMenuButton("my-button", () => {
return {
action: "someAction",
icon: "someIcon",
className: "someClass",
title: "some title",
};
});
La API de plugins tiene un método para agregar nuevos botones que hace que esto sea relativamente sencillo.
discourse/app/assets/javascripts/discourse/a…
Además, si eres nuevo en la programación de plugins de Discourse:
Solo he comenzado, pero aquí está mi “punto de partida” para ponerte en marcha:
Lee:
Estos
Esto
Intenta leer el código de los plugins más sencillos, pero populares y trata de entender qué hacen (esto no siempre es fácil, especialmente por la complejidad de manejar múltiples archivos y la a veces brutal brevedad funcional de JavaScript, pero persiste).
Necesitas aprender:
Mucho JavaScript (no busques más allá de los excelentes y divertidos (!) videos de @mpj sobre Fun Fun Function (¡gracias…
There are a few ‘how to start’ guides for working with Discourse already and a wealth of useful info on meta, but I thought it might help to give an insight to the mental processes of starting from little, if any, prior coding experience to building substantial Discourse plugins.
Discourse is written by experienced developers and has a large codebase. This can feel intimidating. This intimidation factor can be a significant barrier for novice developers. This is a kind of ‘psychological primer’…
Hola!
Puedes usar addPostMenuButton
api.addPostMenuButton('coffee', () => {
return {
action: 'drinkCoffee',
icon: 'coffee',
className: 'hot-coffee',
title: 'coffee.title',
position: 'first' // puede ser `first`, `last` o `second-last-hidden`
};
});
Luego puedes añadir tu acción de esta manera:
api.attachWidgetAction("post", "drinkCoffee", function () {
//
}
EDIT: Me han tomado el pelo . También sería una buena idea seguir las guías que publicó Lilly.
omppatil
(Om Patil)
28 Noviembre, 2023 12:53
4
Por lo tanto, ¿qué estructura de archivos se debe implementar y dónde se debe colocar el código anterior?
Lilly
(Lillian )
28 Noviembre, 2023 13:26
5
Leer los temas enlazados anteriormente debería responder a tus preguntas relacionadas con el desarrollo. Es posible que puedas lograr lo que deseas con un componente de tema en lugar de un plugin. Por lo tanto, también añadiría esto a tu lista de lectura:
Este es un curso intensivo sobre los conceptos básicos de los temas de Discourse. El público objetivo es cualquier persona que no esté familiarizada con los temas de Discourse. Si ya has utilizado temas de Discourse o componentes de temas, probablemente esta guía no sea algo que necesites leer.
¿Qué son los temas y los componentes de temas?
Un tema o componente de tema es un conjunto de archivos empaquetados juntos diseñados para modificar visualmente Discourse o para agregar nuevas funciones. …
Discourse Themes e Theme Components (Componentes de Tema) podem ser usados para personalizar a aparência, o estilo e a funcionalidade do frontend do Discourse. Esta seção dos guias do desenvolvedor visa fornecer todos os materiais de referência necessários para desenvolver temas simples para um único site, até componentes de tema complexos de código aberto.
Esta introdução visa fornecer um mapa de todas as ferramentas e APIs para o desenvolvimento de temas. Se você prefere um tutorial passo a p…
Además, del primer enlace que publiqué:
Joe:
Este componente de tema utiliza ese método para añadir un nuevo botón a ese menú basándose en algunas condiciones y define una nueva acción, así que échale un vistazo aquí
https://github.com/discourse/raw-post-button