在客户站点的首页上,我想显示一些带有图像和标题的文章示例。麻烦的是,文章对象在文章类别模块中显示之前从 introtext 中删除了所有 HTML。
有没有办法在保留所有 HTML 的情况下显示模块的介绍文本?
在 3.2 版中,您可以通过将 introtext 显示选项设置为“隐藏”来绕过 _cleanIntrotext 方法。
在 /templates/your_template/html/mod_articles_category 中创建替代布局(或覆盖 default.php)并更改
<?php if ($params->get('show_introtext')) :?>
<p class="mod-articles-category-introtext">
<?php echo $item->displayIntrotext; ?>
</p>
<?php endif; ?>
到
<p class="mod-articles-category-introtext">
<?php echo $item->introtext; ?>
</p>
我终于找到了答案。结果
~siteroot~/modules/mod_articles_category/helper.php
有一个 _cleanIntrotext
函数,可以从 introtext 中删除大部分 html。注释掉 str_replace
和 strip_tags
行解决了我的问题。
这不是解决这个问题的最好方法,因为我必须记得在升级 Joomla 时重新实现它。
我修改了台词
$item->fulltext = $item->introtext;
$item->introtext = self::_cleanIntrotext($item->introtext);
and use fulltext for html an introtext for only text.
$item->displayIntrotext = $show_introtext ? self::truncate($item->introtext, $introtext_limit) : '';
$item->displayFulltext = $show_introtext ? self::truncate($item->fulltext, $introtext_limit) : '';
复制模块并重命名。 注释掉或删除 helper.php 中的 _cleanIntrotext、str_replace 和 strip_tags 行。 您必须将原始模块名称的所有文件和实例替换为新模块名称。 为重命名的类添加 CSS。 可能看起来很复杂,但逻辑思维在大约一个小时左右的时间内为我完成了。 由于它现在是第三方模块,因此不会被 Joomla! 覆盖。更新。