質問: jfactory::getdocument(); $doc->addstylesheet($this->baseurl . '/media/jui/css/bootstrap.min.css'); $doc->addstylesheet($this->baseurl . '/media/jui/css/bootstrap-responsive.css'); $doc->addstylesheet('templates/' . $this->template . '/css/style.css'); $doc->addscript('/templates/' . $this->template . '/js/main.js', 'text/javascript'); でも私をオーバーライドする主なスタイルはこのラインから来ていると思います<jdoc:include type="head" /> それがもたらすものを私は知りません。
回答: テンプレートを実行するときの一般的なルールは、_<jdoc:include type="head" />_の後にafter独自のcssファイルをロードすることです。この方法でcssルールを最終的に決定できるため、これは重要です。ただし、これはテンプレートで$doc->addstylesheet()を使用しないことも意味します。代わりに、jdocステートメントの後に、プレーンhtmlとして頭に書き込むだけです。テンプレート内にjavascriptまたはcssファイルを追加するためにapiを引き続き使用する理由は1つあります。これは、拡張機能によっても読み込まれる可能性のあるアセットを読み込む場合です。次に、joomlaは1回だけロードされるように注意しますが、それ以外の場合は2回ロードされている可能性があります。したがって、apiを使用してbootstrapファイルをロードすることは理にかなっていますが、独自のテンプレートスタイル(style.css)とjavascript(main.js)は、jdocタグの後にハードコードしてロードする必要があります。補足:bootstrap cssはjhtmlbootstrap::loadcss()を使用してロードできます( http://api.joomla.org/cms-3/classes/jhtmlbootstrap .html#method_loadcss )これは、テンプレート内で実行すると完全に正常ですが、拡張機能内でこの呼び出しを使用しないでください。ただし、bootstrap lessファイルから作業し、そこから独自のcssファイルをコンパイルする方が理にかなっている場合があります。それから、必要なものを混合して一致させ、すでに提供されているミックスインと変数を活用することもできます。 bootstrapによる。