如何在Joomla模块中分别显示文章的描述和图片

3

我试图在 Joomla 中的另一个模块中显示文章图片和描述。就像 WordPress 的帖子一样。

这里我想要展示产品名称、图片和描述。因此我将标题作为产品名称,现在我想将 introtext 分成两个部分:图片和文章中的描述。

我有每个产品的帖子,其中类别 ID = 9。

这是我使用的代码:

<?php
catID = 9;
//echo $catID;
$doc = JFactory::getDocument();
$page_title = $doc->getTitle();
$db = JFactory::getDBO();
$db->setQuery("SELECT title, introtext FROM #__content WHERE catid = ".$catID);
$articles = $db->loadObjectList(); ?> 

<div class="row">
<div class="col-md-12">
    <div class="col-md-4">
    <div class="nopadding">
    <?php foreach($articles as $article){
$title = $article->title;?>
<!-- Image -->
<!-- Description -->
        <img class="ras-img" src=""><!-- Image should add here -->
        <div class="ras-hvr">
            <div class="ras-inner-hvr">
            <div class="row">
                    <div class="col-md-6  pro-name"><?php echo $article->title; ?></div>
            </div>
            <div class="row">
                    <div class="col-md-12  pro-des"><!-- Description here --></div>
            </div>
        </div>
        </div>
        <?php } ?>
    </div>
    </div>
    </div>
</div>

有人可以帮我解决这个问题吗?

请问您能否提供更多关于问题的信息?至于文章图片,请查看我之前发布的帖子:https://dev59.com/QYPba4cB1Zd3GeqPrmMO#25842122。 - emmanuel
1
首先,在文章布局中绝对不应该执行查询。如果没有其他办法,可以使用插件来获取数据。当您说“模块”时,是指Joomla模块还是组件?只需在任何地方回显图像数据,就像在文章或文章介绍的核心布局中一样(例如博客布局)。此外,使用Joomla API进行查询。目前仍然不清楚您正在做什么以及为什么需要超出布局覆盖的范围。 - Elin
1个回答

3

请看components\com_content\views\article\tmpl\default.php文件,大约在顶部你会看到这一行代码用来设置$images

$images  = json_decode($this->item->images);

更往下看,你将看到图片如何显示:
<?php if (isset($images->image_fulltext) && !empty($images->image_fulltext)) : ?>
<?php $imgfloat = (empty($images->float_fulltext)) ? $params->get('float_fulltext') : $images->float_fulltext; ?>
<div class="pull-<?php echo htmlspecialchars($imgfloat); ?> item-image"> <img
<?php if ($images->image_fulltext_caption):
    echo 'class="caption"'.' title="' .htmlspecialchars($images->image_fulltext_caption) . '"';
endif; ?>
src="<?php echo htmlspecialchars($images->image_fulltext); ?>" alt="<?php echo htmlspecialchars($images->image_fulltext_alt); ?>"/> </div>
<?php endif; ?>

描述:

$title = $article->introtext;   and/or   $title = $article->fulltext;

现在,你需要创建一个模板覆盖,以避免修改核心安装文件。请参阅如何覆盖Joomla!核心输出获取详细信息,但基本上,你可以使用你的模板(我将以beez3为例)执行以下操作:
  1. 创建文件夹 \templates\beez3\html\com_content\article
  2. \components\com_content\views\article\tmpl\default.php 复制到该文件夹中
  3. 对复制的php文件进行布局更改
  4. Joomla会从那里查找并加载它,而不是核心文件。

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