また、「divにラップされているJoomlaモジュールを停止する方法」を解決しようとしている場合にも、この質問が関連することがあります。
問題は何ですか?
モジュールをJoomlaに含めると、以下のようにdivタグでラップされます。
<div class="custom">
Module content
</div>
モジュールをカプセル化/ラップしたくありません。ページレイアウトで問題が発生するため。状況によっては、CSSスタイルで修正できる場合もありますが、すべての状況に当てはまるわけではありません。
私のセットアップと私が失敗したこと
スタイリングしようとしたモジュールが記事に含まれていました。
{loadmodule module, title, style}
実際のコードは{loadmodule mod_custom, mymodule, none}
でした上記はうまくいくはずだと確信していました。上記のスタイリングを担当するコードはtemplates/system/html/modules.php
にあり、
/*
* none (output raw module content)
*/
function modChrome_none($module, &$params, &$attribs)
{
echo $module->content;
}
それもうまくいきませんでした! WoopDeeDoo!モジュールがclass=”custom”
でdivにラップされているのを確認できました
この問題を解決するにはどうすればよいですか?
解決策は、\modules\mod_custom\tmpl\default.php
のモジュールオーバーライドを作成することでした。
そのファイルの問題のコードは
<div class="custom<?php echo $moduleclass_sfx ?>" <?php if ($params->get('backgroundimage')) : ?> style="background-image:url(<?php echo $params->get('backgroundimage');?>)"<?php endif;?> >
<?php echo $module->content;?>
</div>
上記のコードを取得して編集し、templates/current-site-template/mod_custom/default.php
のオーバーライドに追加しました。新しいコードは
<?php echo $module->content;?>
これで問題が解決しました。
追加情報
私の理解から、オーバーライドは私のサイトで公開されているすべてのモジュールからdivを削除します。特定のモジュールにスタイルを適用したい場合もあるので、最初はこれは望ましくないと思いましたが、その後、HTMLコードを再調査しました。これは、HTMLの外観モジュールのオーバーライド前が適用され、なしのクロムスタイルが使用された方法です。
<div class="custom" >
Module content
</div>
これは、HTMLの外観モジュールのオーバーライド前が適用され、html5のクロムスタイルが使用された方法です。
<div class="moduletable">
<div class="custom" >
Module content
</div>
</div>
つまり、必要に応じて、特定のモジュールにカスタムdivとクラスを適用することもできますモジュールのオーバーライドを使用している間。 chrome style as html5を選択した場合、
<div class="moduletable">
Module content
</div>
オーバーライドをnoneのクロムスタイルで使用した場合、
Module Content
このモジュールでも同じ問題が発生していました。私たちが使用している新しいJoomlaバージョンでは何かが発生する可能性がありますが、ooooooの答えを得ることができませんでした。従う必要があるわずかに新しいディレクトリ構造があります(Joomla 3.6.2を使用しています)。オーバーライドは、テンプレート内の「html」ディレクトリに配置する必要があります。
https://docs.joomla.org/How_to_override_the_output_from_the_Joomla!_core
PATH_TO_JOOMLA/components/com_content/views/article/tmpl/default.php
to
TEMPLATE_NAME/html/com_content/article/default.php
これはモジュールを使用した別の例です
PATH_TO_JOOMLA/modules/mod_login/tmpl/default.php
to
TEMPLATE_NAME/html/mod_login/default.php
含まれているだけのmod_customの空のdefault.phpテンプレートを作成する必要がありました
<?php echo $module->content;?>
入れて
/templates/my-templates/html/mod_custom/default.php
それから初めて、Joomlaが私のモジュールを包んでいる余分な綿毛をすべて取り除くことができました。モジュールhtmlのみを表示するオプションがあり、それ以外はありません。
「モジュールテーブル」ラッパーを取り除くには、モジュールスタイルを作成するだけです。
Templates/your_template/htmlフォルダーに、「modules.php」という名前のファイルを作成します。
<?php
function modChrome_BoHivex($module, &$params, &$attribs) {
$module_class_sfx = htmlspecialchars($params->get('moduleclass_sfx'));
?>
<div class="custom<?php echo $moduleclass_sfx; ?>" <?php if ($params->get('backgroundimage')) : ?> style="background-image:url(<?php echo $params->get('backgroundimage'); ?>)"<?php endif; ?> >
<?php echo $module->content; ?>
</div>
<?php
}
新しい関数を追加するだけでスタイルを追加でき、出力を完全にカスタマイズして「モジュールテーブル」ラッパーを取り除くことができます。
モジュールのバックエンド->高度な->モジュールスタイルでスタイルを見つけることができます。
特別なヒント:/ htmlフォルダーにpagination.phpを追加することで、同様の方法でcom_contentのページネーションをオーバーライドできます。
「カスタム」ラッパーを取り除くには、templates/your_template/html/mod_custom/your_override.php:にオーバーライドを追加します
<?php
defined('_JEXEC') or die;
echo $module->content;
スタイル関数でHTMLなしでエコー出力を実行し、オーバーライドでHTMLを出力することも可能です。