こんにちは、@david さん。head_tag.html のスクリプトからモーダルを表示させることは可能でしょうか?よろしくお願いします。
ハッキングを多用すれば技術的には可能ですが、推奨されません。
代わりに、プラグインAPIを使用して拡張し、そのコードからモーダルをトリガーします。具体的に何をしようとしているのか説明してもらえますか?この問題はすでに回避しましたか?
サムさん、こんにちは。私も似たような質問があります。
当社のサイトでは、カスタマイズのために head_tag のみを利用してきました。以前は、magnific と jQuery、iframe を使用して、別のドメインからインタラクティブなリストアイテムをモーダルに表示していましたが、最近になって Discourse が magnific/jQuery を公式に廃止したと判断しました。なぜなら、同じリンクをクリックしても何も表示されず(コンソールにも何も表示されません)、何も起こらなくなったからです。
そこで、次の最善の選択肢を探しています。DModal を使用することが私のニーズに最も適した選択肢であることを確認していただけますか?どのような支援でも大変助かります!
以下は、magnific popup トリガーをアタッチするために使用したコードの一部です。
if (window.jQuery) {
const $document = $(document)
$document.on('click', '.otpc-magnific-trigger', function() {
var $button = $(this)
if ($button.hasClass('initialized')) {
$button.magnificPopup('open')
} else {
$button.magnificPopup({
type: 'inline',
preloader: false
})
$button.magnificPopup('open')
$button.addClass('initialized')
}
return false
})
Brandon様
一般的に、複雑なカスタマイズには「headタグ」の使用を避けることをお勧めします。代わりに、適切なgitベースのテーマを設定することを検討してください。
それが完了すれば、DModalがおそらく必要となるでしょう。そのためのドキュメントはこちらにあります。
Davidさん、返信ありがとうございます。
主に head_tag.html で JavaScript を変更する、git ベースのカスタムテーマを使用しています。その点が不明確だったらすみません。これまでハンドルバーテンプレートにはスクリプトタグを使用してきましたが、特定のコネクタテンプレートには専用ファイルを使用することが推奨されていることがわかりました。
Magnific が Discourse と互換性がなくなったことを確認していただけますか? ポップアップ機能が壊れた原因を特定しようとしています。
magnificPopup に変更があったという認識はありませんが、近日中に削除する予定ですので、ドキュメント化された DModal API に移行することをお勧めします。
最近変更された点として、jQuery の読み込み方法があります。これは、起動プロセスで少し遅れて利用可能になります。そのため、Discourse が起動するまで window.JQuery が利用できない場合があります。
起動後にスクリプトを実行するには、<script> を Discourse の「プラグインイニシャライザ」に切り替えます。
<script type="text/discourse-plugin" version="0.8">