トピックタイマーを作成する際に、iframe の代わりにテーマコンポーネントを使用する

iframe はそもそも廃棄したほうがよいでしょう。個人的な楽しみのために、テーマコンポーネントを通じてタイマーを適用する簡易的な概念実証を作成しました。現在はトピックの最初の投稿にタイマーを追加し、いくつかの制御ボタンを備えています。現在の外観は以下の通りです:

もしこれをさらに拡張したいとお考えであれば、お知らせください。取り組む価値のある興味深いカスタマイズです。

@tshenry さん、ご確認いただきありがとうございます。iframe による解決策は、タイマー機能を動かすための「手っ取り早い(が不十分な)」暫定対応でした。しかし、あなたが試行錯誤されていたカスタムタイマーには、間違いなく興味があります!あなたの案の方が、はるかに美しくクリーンに見えますが、私のコーディングスキルでは手が届かないレベルです。ですので、改めて申し上げますが、あなたがどのような成果を上げてくれるか、そしてそれを私のフォーラムに適用できるかどうか、非常に楽しみにしています。

了解しました。引き続き作業を進め、公開可能なものができ次第、ご報告いたします。

@tshenry このテーマを構築する際、どのカテゴリまたはサブカテゴリに適用するかを選択できる機能を追加することは可能でしょうか?私のフォーラムのすべての投稿にこのテーマを適用するのではなく、特定のいくつかのカテゴリにのみ適用したいと考えています。

例えば、私たちのフォーラムでは、「過去問」カテゴリの投稿にのみタイマーテーマを適用したいと考えています。理想的には、「過去問」カテゴリ内のどの投稿に適用するかを細かく選択できると嬉しいです。タイマー機能は99%のケースで適切ですが、ごく一部の投稿ではタイマーを表示するのが不適切な場合があるためです。ただし、タイマーが不適切な1%の投稿を別のカテゴリに移動させるか、あるいは削除することで、この問題は確実に回避できます。

そう言われると面白いことに、ちょうど今、ストップウォッチが表示するトピックを決定する要因としてタグを指定できる機能を追加しました。これにより、「About」トピックや、カテゴリ内の他の不要なトピックにタイマーが表示されるのを防げます:

これで問題なく動作しますか?それとも、あなたのシナリオではタグの使用に問題がありますか?

ついでに、他に考慮すべき点はありませんか?ほぼ完成しており、現在はコードの微調整と徹底的なテストを行っています。今週末か、来週中のどこかで完成する予定です :slightly_smiling_face:

現時点では、以下のような見た目になります:

これで完璧だと思います!タグ識別子も、上記の私の質問に対する完璧な解決策です。素晴らしい仕事ですね!ありがとうございます。

さて、テーマコンポーネントがリリースされました!何か問題が見つかった場合や、改善のアイデアがあれば、お知らせください。

また、元の質問(iframe のスクロールを無効にする方法)を解決したい方のために、任意のテーマの </head> タブに以下のコードを追加するだけで対応できます。

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

decorateCooked()有用性 を明らかにしてくれた @vinothkannans さん、ありがとうございます :grinning: