Utiliser un composant de thème au lieu d'un iframe pour créer un minuteur de sujet

Il est probablement préférable de supprimer complètement l’iframe. Pour un défi personnel amusant, j’ai élaboré une preuve de concept approximative qui applique le minuteur via un composant de thème. Pour l’instant, il ajoute un minuteur au premier message d’un sujet et dispose de quelques boutons de contrôle. Voici à quoi il ressemble actuellement :

Si vous souhaitez que je développe cela, faites-le-moi savoir. C’est une personnalisation intéressante à travailler.

5 « J'aime »

Merci @tshenry d’avoir examiné ce problème. La solution iframe n’était qu’une solution « rapide et sale » pour nous permettre de faire fonctionner la fonctionnalité du minuteur. Mais OUI, nous sommes ABSOLUMENT intéressés par le minuteur personnalisé sur lequel vous expérimentiez. Votre solution semble bien plus élégante et propre… mais elle dépasse largement mes compétences en matière de codage. Donc, encore une fois, oui, je suis très intéressé à voir ce que vous allez proposer et à pouvoir l’appliquer à mon forum.

1 « J'aime »

D’accord, ça me va. Je continue à travailler dessus et je reviens vers toi dès que j’ai quelque chose de prêt à montrer.

3 « J'aime »

@tshenry En concevant ce thème, je me demande s’il vous est possible d’intégrer la possibilité de sélectionner la catégorie ou les sous-catégories auxquelles l’appliquer ? Je ne souhaiterais pas que ce thème s’applique à tous les messages de mon forum, mais uniquement à quelques catégories spécifiques.

Par exemple, sur notre Forum, je voudrais que le thème Timer ne s’applique qu’aux messages de la catégorie “Examens précédents”. Idéalement, j’aimerais pouvoir sélectionner exactement quels messages de la catégorie “Examens précédents” doivent bénéficier de cette fonctionnalité, car une minuterie serait appropriée dans 99 % des cas, mais il existe quelques messages où l’utilisation d’un minuteur serait inappropriée. Cependant, je pourrais facilement contourner ce problème en déplaçant ces 1 % de messages inappropriés ailleurs (dans une autre catégorie) ou même en les supprimant.

1 « J'aime »

C’est drôle que tu mentionnes cela ! Je viens d’ajouter la possibilité de spécifier un tag comme facteur déterminant pour les sujets sur lesquels le chronomètre s’affichera. Cela empêche son application à n’importe quel sujet « À propos » ou à tout autre sujet dans une catégorie donnée que tu ne souhaites pas voir afficher le minuteur :

Est-ce que cela te convient ou l’utilisation d’un tag poserait-elle problème dans ton cas ?

Puisque nous en sommes là, y a-t-il d’autres aspects que je devrais prendre en compte ? C’est presque terminé, je suis en train d’affiner le code et de le tester rigoureusement. Cela devrait être prêt soit ce week-end, soit la semaine prochaine :slightly_smiling_face:

2 « J'aime »

Voici à quoi cela ressemble pour le moment :

2 « J'aime »

Je pense que cela semble parfait ! Le tag identifiant est aussi une solution parfaite à ma question ci-dessus. C’est un excellent travail ! Merci.

1 « J'aime »

Très bien, le composant de thème est désormais disponible ! N’hésitez pas à me faire part de tout problème que vous pourriez rencontrer ou de vos idées d’amélioration.

Par ailleurs, pour ceux qui souhaitent répondre à la question initiale sur la désactivation du défilement dans les iframes, il suffit d’ajouter ce code à l’onglet </head> d’un thème de votre choix :

<script type="text/discourse-plugin" version="0.8.18">
   api.decorateCooked($elem => $elem.children('iframe').attr("scrolling", "no"));
</script> 

(Un grand merci à @vinothkannans pour avoir mis en lumière l’utilité de decorateCooked() :grinning:)

3 « J'aime »