omppatil
(Om Patil)
Novembro 28, 2023, 12:34pm
1
Olá!
Sou novo na criação de plugins para Discourse e gostaria de ajuda para adicionar um botão de alternância ao menu de postagem e implementar sua ação no plugin.
Lilly
(Lillian )
Novembro 28, 2023, 12:41pm
2
Olá @omppatil , talvez esta postagem possa ajudá-lo a seguir na direção certa:
Se você deseja adicionar um botão ao menu de posts, precisará de algo um pouco diferente, pois os posts são widgets .
Você precisará adicionar algo como isto ao seu tema ou plugin.
api.addPostMenuButton("my-button", () => {
return {
action: "someAction",
icon: "someIcon",
className: "someClass",
title: "some title",
};
});
A API de plugins possui um método para adicionar novos botões, o que torna isso relativamente fácil.
discourse/app/assets/javascripts/discourse/app/lib/…
Também, se você é novo na programação de plugins do Discourse:
Eu só comecei agora, mas aqui está minha “dica inicial” para você começar:
Leia:
estes
este
Tente ler o código dos plugins mais simples, mas populares , e veja se consegue entender o que eles fazem (nem sempre é fácil, especialmente com a complexidade de lidar com múltiplos arquivos e a às vezes brutal brevidade funcional do JavaScript, mas persista)
Você precisa aprender:
Muito JavaScript (não precisa ir além dos excelentes e divertidos (!) vídeos de @mpj , Fun Fun Function (obrigado, mano!…
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’…
Olá!
Você pode usar addPostMenuButton
api.addPostMenuButton('coffee', () => {
return {
action: 'drinkCoffee',
icon: 'coffee',
className: 'hot-coffee',
title: 'coffee.title',
position: 'first' // pode ser `first`, `last` ou `second-last-hidden`
};
});
Em seguida, você pode adicionar sua ação desta forma:
api.attachWidgetAction("post", "drinkCoffee", function () {
//
}
EDIT: Fui “Lillianizado” . Também seria uma boa ideia seguir os guias que a Lilly postou!
omppatil
(Om Patil)
Novembro 28, 2023, 12:53pm
4
Portanto, qual estrutura de arquivos deve ser implementada e onde o código acima deve ser colocado?
Lilly
(Lillian )
Novembro 28, 2023, 1:26pm
5
Ler os tópicos vinculados acima deve responder às suas perguntas relacionadas ao desenvolvimento. É possível que você consiga o que deseja com um componente de tema em vez de um plugin. Assim, também adicionaria estes à sua lista de leitura:
Este é um curso intensivo sobre os conceitos básicos de temas do Discourse. O público-alvo é qualquer pessoa que não esteja familiarizada com temas do Discourse. Se você já utilizou temas ou componentes de tema do Discourse, provavelmente este guia não é algo que você precise ler.
O que são temas e componentes de tema?
Um tema ou componente de tema é um conjunto de arquivos agrupados, projetados para modificar visualmente o Discourse ou adicionar novos recursos.
Vamos começar pelos temas.
Te…
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…
também, do primeiro link que postei: