Verwendung einer Theme-Komponente statt eines Iframes zur Erstellung eines Themen-Timers

Es ist wahrscheinlich am besten, das iframe ganz zu entfernen. Als eine kleine persönliche Herausforderung habe ich einen groben Proof of Concept erstellt, bei dem der Timer über ein Theme-Component hinzugefügt wird. Derzeit fügt er einen Timer zum ersten Beitrag eines Themas hinzu und verfügt über einige Steuerelemente. Aktuell sieht es so aus:

Falls du möchtest, dass ich das ausbaue, lass es mich bitte wissen. Es ist eine interessante Anpassung, an der man arbeiten kann.

5 „Gefällt mir“

Vielen Dank @tshenry, dass du dich darum gekümmert hast. Die Iframe-Lösung war nur die „schnelle und schmutzige

1 „Gefällt mir“

Alles klar, das klingt gut. Ich arbeite weiter daran und melde mich, sobald ich etwas Zeigefertiges habe.

3 „Gefällt mir“

@tshenry Bei der Erstellung dieses Themes frage ich mich, ob du die Möglichkeit einbauen kannst, dass ich auswähle, auf welche Kategorie oder Unterkategorien es angewendet werden soll? Ich möchte nicht, dass dieses Theme auf alle Beiträge in meinem Forum angewendet wird, sondern nur auf eine ausgewählte Anzahl von Kategorien.

Zum Beispiel würde ich auf unserem Forum das Timer-Theme nur auf Beiträge in der Kategorie „Past Exam“ anwenden. Idealerweise wäre es toll, genau auswählen zu können, auf welche Beiträge in der Kategorie „Past Exam“ dies angewendet werden soll, da die Timer-Funktion in 99 % der Fälle angemessen wäre, es jedoch ein paar Beiträge gibt, bei denen ein Timer unpassend wäre. Das könnte ich jedoch definitiv umgehen, indem ich die 1 % der Beiträge, bei denen ein Timer unpassend ist, woanders platziere (in einer anderen Kategorie) oder sie sogar lösche.

1 „Gefällt mir“

Schön, dass du das erwähnst! Ich habe gerade die Möglichkeit hinzugefügt, ein Tag als entscheidenden Faktor dafür festzulegen, für welche Themen die Stoppuhr angezeigt wird. Dadurch wird verhindert, dass sie auf etwaige „Über uns“-Themen oder andere Themen in einer bestimmten Kategorie angewendet wird, bei denen du die Anzeige des Timers nicht möchtest:

Funktioniert das für dich so gut, oder wäre die Verwendung eines Tags in deinem Szenario problematisch?

Da wir schon dabei sind: Gibt es noch andere Aspekte, die ich berücksichtigen sollte? Es ist fast fertig; ich verfeinere gerade den Code und versuche, ihn gründlich zu testen. Sollte entweder dieses Wochenende oder irgendwann nächste Woche bereit sein :slightly_smiling_face:

2 „Gefällt mir“

So sieht es übrigens im Moment aus:

2 „Gefällt mir“

Ich finde, das sieht perfekt aus! Der Tag-Bezeichner ist auch eine perfekte Lösung für meine oben gestellte Frage. Das ist großartige Arbeit! Vielen Dank.

1 „Gefällt mir“

Alles klar, das Theme-Komponente wurde veröffentlicht! Bitte lass mich wissen, falls du Probleme damit findest oder Ideen hast, wie sie verbessert werden könnte.

Für alle, die sich für die Lösung der ursprünglichen Frage interessieren, wie man das Scrollen in Iframes deaktiviert, füge einfach diesen Code in den </head>-Tab eines beliebigen Themes ein:

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

(Ein großes Dankeschön an @vinothkannans, der die Nützlichkeit von decorateCooked() ans Licht gebracht hat :grinning:)

3 „Gefällt mir“