Quand utiliser un plugin vs theme component ?

Je dois apporter quelques modifications à certaines vues :
Par exemple :

Dois-je créer un plugin pour chaque modification ? Même si elle est vraiment petite, comme uniquement du CSS ?
Merci de votre aide.

1 « J'aime »

Non, les plugins ne sont requis que si vous avez l’intention de modifier le back-end.

S’il s’agit uniquement d’une modification locale, vous pouvez aller dans Admin → Personnaliser → Thème et entrer les modifications dans un nouveau Composant de Thème, puis l’ajouter à votre Thème actuel.

Jetez un œil à https://meta.discourse.org/c/documentation/theme-developers/127, en particulier :

8 « J'aime »

Merci !
Donc, si je dois changer une étiquette ou ajouter une info-bulle, je dois créer un thème, mais si je dois ajouter une nouvelle colonne à une page (par exemple, la liste des sujets), je dois créer un plugin ?

La distinction est la suivante :

  • Si vous devez modifier l’API, par exemple des données dans une route .json, des modifications de l’autorisation, le traitement back-end des données, vous avez besoin d’un plugin.
  • Pour de nombreux changements front-end qui ne nécessitent pas de données différentes, vous n’avez besoin que d’un TC. C’est-à-dire beaucoup de changements de présentation, ou toute logique en javascript qui n’est pas sensible.
5 « J'aime »

Et une zone grise (qui ne s’applique pas ici, je pense) est si vous avez besoin de données qui ne sont pas disponibles (comme les champs personnalisés de l’utilisateur), vous pourriez soit utiliser AJAX pour extraire ces données avec javascript lorsque vous en avez besoin, soit avoir un plugin qui ajoute les données au sérialiseur.

5 « J'aime »

ok merci. Dans le guide, je ne comprends pas comment configurer et importer un TC localement, il n’y a qu’un exemple pour un TC distant.

Je suggérerais d’utiliser cet outil formidable pour créer facilement des TC localement :

2 « J'aime »

Sauf si vous avez une modification CSS très mineure, je vous recommande d’utiliser un thème distant ou l’outil CLI.

Mais si vous cliquez sur « installer le thème », la boîte de dialogue vous permettra de créer un thème (ou un composant de thème si vous le faites sur la page des composants).

dans la liste des sujets de catégorie, je dois ajouter une nouvelle colonne avec la colonne « created_at » et changer la date de « tiny » à étendue (par exemple : JJ/MM/AAAA HH:MM)

Si vous voulez ajouter de nouvelles choses à un modèle, je commencerais par GitHub - discourse/discourse-theme-skeleton: Template for Discourse themes, mais je ne sais pas comment ajouter une colonne là-bas. Je suppose qu’il y a de la magie JavaScript que vous pourriez faire, mais ce n’est pas ma spécialité.

Vous savez que vous pouvez voir ces informations en survolant avec la souris, n’est-ce pas ?

Voir également Composant de thème des emplacements de sortie de plugin, mais il n’y a pas de sortie de plugin là-bas.

2 « J'aime »

Vous avez ces prises de plugin : topic-list-after-columns et topic-list-header-after.

https://github.com/discourse/discourse/blob/main/app/assets/javascripts/discourse/app/raw-templates/list/topic-list-item.hbr#L90

https://github.com/discourse/discourse/blob/main/app/assets/javascripts/discourse/app/raw-templates/topic-list-header.hbr#L27

Bonne remarque. Il semblait erroné qu’il n’y ait pas de point d’extension là. Je suppose que le composant de thème ne l’affiche tout simplement pas.

1 « J'aime »

Le composant thématique des emplacements de sorties de plugin n’affiche pas actuellement les sorties brutes.

Ce composant thématique vous montre comment ajouter une colonne GitHub - discourse/discourse-add-category-column

3 « J'aime »