如何在文章分类模块中获取Joomla文章的完整HTML introtext?

5
在客户网站的首页上,我想展示一些带有图像和标题的文章样本。问题是,文章对象会在显示文章类别模块中的introtext之前剥离所有HTML标签。
是否有一种方法可以显示模块的introtext并保留所有HTML标签?

尝试在Joomla! 3.0上操作,但对我无效。 - cutrightjm
4个回答

5
在版本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; ?>

to

<p class="mod-articles-category-introtext">
  <?php echo $item->introtext; ?>
</p>

2
我终于找到了答案。原来在~siteroot~/modules/mod_articles_category/helper.php中有一个_cleanIntrotext函数,它会从introtext中删除大多数html标签。注释掉str_replacestrip_tags行就可以解决我的问题了。
这并不是最好的解决方法,因为当我升级Joomla时,我必须记得重新实现它。

1
我修改了这些行。

$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) : '';

0

复制模块并将其重命名。 在helper.php中注释或删除_cleanIntrotext、str_replace和strip_tags行。 您必须将所有文件和原始模块名称的实例替换为新模块名称。 为重命名的类添加CSS。 可能看起来很复杂,但逻辑思维让我在大约一个小时内完成了它。 由于现在是第三方模块,它不会被Joomla!更新覆盖。


请加入 [joomla.se] Stack Exchange,以便您可以向该专业社区做出与 Joomla 相关的贡献。 - mickmackusa

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接