Composant de thème Texte d'espace réservé du modèle de sujet

Texte d’espace réservé du modèle de sujet composant de thème

Ce composant de thème vous permet d’afficher les modèles de sujet comme des espaces réservés (filigranes) plutôt que comme du texte de modèle modifiable.

Cela vous permet de fournir des instructions personnalisées en tant qu’espace réservé pour chaque sujet.

Par exemple :

Ceci est le texte d’espace réservé (filigrane) normal.

NB : Vous pouvez déjà modifier cela à l’échelle du site en changeant le texte personnalisé

Allez dans Admin >> Personnaliser >> Texte

Ensuite, recherchez le texte que vous voyez à l’écran.
Une recherche de « BBCode » devrait vous donner ce que vous voulez :

Ensuite, modifiez les valeurs de js.composer.reply_placeholder pour le texte d’espace réservé que vous souhaitez afficher

Vous pouvez également définir un modèle de sujet dans chaque catégorie.

Dans la boîte de dialogue Modifier la catégorie, sélectionnez Modèles de sujet. Vous pouvez ajouter un modèle personnalisé pour votre catégorie.

Cela fonctionne bien, MAIS l’utilisateur doit supprimer le texte du modèle avant de pouvoir commencer à rédiger son message.

Ce composant de thème vous permet d’afficher le texte du modèle de sujet comme un texte d’espace réservé (filigrane) plutôt que comme du texte modifiable. Il vous suffit de cliquer dans la zone et de commencer à taper.

Il peut être configuré pour afficher tous les modèles de sujet comme des espaces réservés, ou vous pouvez le faire au cas par cas en ajoutant un indicateur [placeholder] au modèle de sujet.

Installer le composant de thème

:hammer_and_wrench: Dépôt Git : https://github.com/naidihr/discourse-topic-template-placeholders

:thinking: Comment installer un thème ou un composant de thème ?

Crédits

Merci à @merefield pour la refactorisation de l’élément JQuery afin d’utiliser le framework Ember et le noyau de Discourse.

Veuillez noter que la version mise à jour a été testée uniquement pour fonctionner sur les versions de Discourse à partir de 2.4.1. Si vous utilisez une version antérieure de Discourse, essayez la version originale, qui a été testée sur la version 2.3.10.
Dépôt de la version originale : https://github.com/naidihr/discourse-topic-template-placeholders_original

35 « J'aime »

Note de développement PS. J’ai dû recourir à un hack jQuery pour que cela fonctionne en tant que composant de thème. S’il est possible de mettre à jour l’espace réservé via le modèle, je vous serais reconnaissant de bien vouloir m’en informer.

8 « J'aime »

Vous pouvez essayer quelque chose comme ceci

<script type="text/discourse-plugin" version="0.8">
  api.modifyClass("model:composer", {
    applyTopicTemplate() {
      this._super(...arguments);

      Ember.run.schedule("afterRender", () => {
        // effectuez vos actions ici
      });
    }
  });
</script>

Cela devrait vous permettre d’ajouter une logique personnalisée lorsque Discourse applique les modèles de sujets par catégorie.

Cela dit, cette façon d’écrire est un peu dépassée. Je vous recommande également de lire ceci si vous prévoyez de passer beaucoup de temps sur les thèmes Discourse. Cela rendra la vie beaucoup plus facile.

9 « J'aime »

Bonne idée pour un composant de thème !

J’ai soumis une PR pour faire ce qui suit :

  • supprimer le besoin de jQuery
  • éliminer les soucis de synchronisation (utiliser le framework Ember et le cœur de Discourse, plutôt que de lutter contre eux)
  • modifier le modèle Composer pour aider à atteindre ce résultat (comme vous l’avez justement suggéré)

Je ne serai pas vexé si vous ne la fusionnez pas, mais j’espère que cela vous aidera à voir une autre façon de faire les choses :slight_smile:

(Je ne peux pas garantir qu’il n’y a aucun bug, mais je suis ravi de faire un suivi sur tout ! :cowboy_hat_face: )

9 « J'aime »

Merci Robert. J’ai fusionné cette PR. Très apprécié :+1:

2 « J'aime »

C’est exactement ce que je cherchais ! Tu es un dieu ! :bowing_man: :shallow_pan_of_food: :bowing_woman:
Veuillez accepter cette humble offrande d’emoji. :canned_food:

1 « J'aime »

Pour info, cela ne fonctionne que si vous allez d’abord dans la catégorie et créez un nouveau sujet. Si vous essayez de créer un nouveau sujet depuis la page « Derniers » puis sélectionnez une catégorie dans le menu déroulant, le texte ne s’affiche pas.

2 « J'aime »

C’est prévu ? C’est ainsi que la fonctionnalité des modèles de sujets fonctionne normalement. Le modèle de sujet ne sera pas pris en compte dans ce dernier cas.

Mais oui, à mon avis, cela pourrait être amélioré même dans Discourse vanilla sans cette TC pour prendre en charge votre dernier cas. Personnellement, j’ai trouvé frustrant que les utilisateurs ne voient pas le modèle s’ils empruntent la deuxième voie.

Cette TC s’appuie simplement sur le cœur du système…

Peut-être parlons-nous de choses différentes, mais voici comment cela fonctionne pour moi…

1 « J'aime »

Cela pourrait être dû à une autre raison, car cela fonctionne ici sur Meta. Si vous allez à /latest, ouvrez l’éditeur, puis sélectionnez la catégorie Marketplace, vous obtiendrez le modèle que nous avons pour celle-ci.

4 « J'aime »

Oui, c’est bizarre. Désolé, je pense que cela a peut-être été résolu. Cela me tracassait depuis longtemps, mais ça semble fonctionner maintenant.

Bon, cela présente un nouveau défi. Haha.

4 « J'aime »

Bonjour Robert, j’ai testé après la fusion et cela fonctionnait, mais plus pour moi ? Il s’agit du paramètre de substitution, sans utiliser le [placeholder]. Pourriez-vous vérifier avec votre build également ?

De plus, sur ma version originale, cela fonctionnait de la même manière si vous commenciez un nouveau sujet depuis la dernière page, puis sélectionniez la catégorie.

Je devrai peut-être revenir en arrière… ?

Je le regarde en ce moment. Accordez-moi un peu de temps.

OK, une PR pour la correction a été soumise : FIX: change the placeholder & template when switching selected Category by merefield · Pull Request #2 · naidihr/discourse-topic-template-placeholders · GitHub

Elle récupère désormais la catégorie à partir de la sélection dans le compositeur. Maintenant que cela est fait, cela semble fonctionner dans toutes les situations, mais veuillez confirmer.

2 « J'aime »

Bonjour Robert, j’ai fusionné cette dernière PR et mis à jour vers la dernière version du composant de thème, mais le texte du modèle par défaut s’affiche toujours, même si j’ai activé l’option « Afficher tous les modèles de sujets sous forme d’espaces réservés ». Je suis sur Discourse 2.4.1. As-tu d’autres idées ?

2 « J'aime »

Ça fonctionne, mais cela ne fonctionne absolument pas si « Afficher tous les modèles de sujets sous forme d’espaces réservés » est activé, même si je suis dans la catégorie. Je regrette déjà d’avoir proposé mes services ? :stuck_out_tongue_winking_eye:

2 « J'aime »

Pas de problème les amis. On itère simplement. :). Je vais jeter un coup d’œil.

Mise à jour : PR FIX: resolve issue with displaying all Topic Templates as Placeholders by merefield · Pull Request #3 · naidihr/discourse-topic-template-placeholders · GitHub

Lors de la vérification, n’oubliez pas de rafraîchir la page si vous modifiez un paramètre.

2 « J'aime »

Super, Robert. Ce dernier PR l’a résolu. Aussi, lors du démarrage d’un sujet depuis les pages « Derniers » ou « Catégories ». Tout semble bon maintenant. Merci d’avoir pris le temps d’examiner cela. Solution très élégante _super boulot :wink::+1:

3 « J'aime »

Pas de problème. C’est un plaisir. Désolé, mes tests initiaux auraient dû être plus complets. Merci pour votre patience.

Je pense que nous sommes sur la bonne voie pour le moment, espérons-le !

Continuez à proposer de nouvelles idées géniales et à les mettre en pratique !

3 « J'aime »

Salut tout le monde ! On adore l’idée de ce composant de thème !

Je viens d’essayer de l’installer sur notre instance Discourse, mais je rencontre quelques problèmes.
Il semble que lorsqu’il est activé dans le thème, cela casse une partie du style déjà présent dans le thème.
Par exemple, les boutons du menu déroulant de l’utilisateur :

deviennent comme ceci une fois activé :


En plus de cela, l’espace réservé ne semble pas fonctionner, que l’option 'Afficher tous vos modèles de sujets sous forme d'espaces réservés (texte filigrane)' soit activée ou désactivée.

Il se peut que notre instance Discourse soit en v2.3.10 ?

J’ai examiné le code ici et je ne parviens pas à comprendre pourquoi notre style est désordonné.

Nous dépendons d’une autre équipe pour gérer et mettre à jour notre instance Discourse, et c’est une tâche assez lourde à accomplir.

J’espère obtenir un conseil rapide pour potentiellement résoudre ce problème, mais si cela revient à notre version de Discourse, ce n’est pas grave !

Merci d’avance :smiley: