出力がレンダリングされない場合、割り当てられた位置にモジュールが表示されないようにするにはどうすればよいですか?空のモジュールを公開する理由まあ、それは常に空というわけではありませんが、特定の条件が満たされない場合、表示する出力はありませんが、それが公開された空の位置はまだそこにあります。
私はそれをグーグルで調べました、しかしv1.5からの例だけを見つけました、そしてそれらはすべてハックまたはテンプレートの修正です。これはv3 +で対処/修正されていますか?その場合、どうすればそれを達成できますか?.
モジュールが出力を返さない場合(falseを返す)、何も生成されません。モジュールスタイルも生成されません/ chrome(ref:JDocumentRendererModules works)。
与えられたモジュール位置からのモジュールのコンテンツが空かどうかを確認します。 $ this-> countModules()と組み合わせると、モジュールが存在し、コンテンツが空でない場合、モジュールの位置が表示されます。
function modulesHaveContent( $position ) {
$modules = JModuleHelper::getModules( $position );
foreach($modules as $module) {
if (!empty($module->content)) {
$moduleHasContent = true;
}
}
return $moduleHasContent;
}
結局のところ、Joomlaは出力のプレゼンテーションをテンプレートに任せています。彼らは一般的に$module->count
その決定を行うために、そして出力を調べるためのテンプレートの協力なしに、空のブロックが表示されることは完全に理にかなっています。
私は解決策を見つけましたが-私の場合、条件付きモジュール出力を持つページはすべてcom_content記事であるため、モジュール出力を取得するコンテンツプラグインを作成しました。モジュールが表示するものを返した場合、記事の出力を変更しました。 CSSを使用して、モジュールの出力を必要な方法で配置し、私がやろうとしていたことを達成することができました。