我已经创建了一个在模块中使用的替代模板(文章类别NewsFlash)。我正在展示三篇文章。三个特定类别中的一个(我有三个以上的类别,但我只想从这三个类别中显示)。
Newsflash允许我选择要查看的特定类别 - 所以这不是问题。
我将模板设置为如下所示:
<?php $images = json_decode($item->images);
$item_heading = $params->get('item_heading', 'h4'); ?>
<a href="<?php echo $item->link;?>">
<img width="130" height="82" src="<?php echo htmlspecialchars($images->image_intro); ?>" alt="<?php echo htmlspecialchars($images->image_intro_alt); ?>" />
</a>
<!--------------------------->
<h1>CHECK THE CATEGORY HERE</h1>
<!--------------------------->
<p class="valign" style="margin-top: 13px;">
<a class="gray" href="/reviews/bikes/kawasaki-adversys-versys-650-project">
<-- The span below changes based on the category -->
<span class="green fs12 db mb5">Latest Bike Review</span>
<?php echo $item->title;?>
</a>
</p>
它完美无缺。它显示三篇文章,水平内嵌,首先显示介绍图像,然后显示一行文字,然后显示文章的标题。
我的问题是,如何查看当前文章的类别?上面的代码正在循环中。我假设它与$item->category
的内容类似,但我似乎无法弄明白或在任何地方找到它。
如果可以,请帮忙!
更新
我最终使用了不同的模块mod_articles_category
。使用此模板中的默认值,我将default.php更改为以下内容:
<?php
defined('_JEXEC') or die;
?>
<div class="main sub-page" role="main">
<div class="header layout-img">
<p class="fl mt20">
<span class="yellow2 fs18">LATEST</span>
<br>
<span class="white fs14">REVIEWS</span>
</p>
<ul>
<?php
$mediafound = 0;
$gearfound = 0;
$bikefound = 0;
$currentitem = '';
foreach ($list as $item) :
$images = json_decode($item->images);
$item_heading = $params->get('item_heading', 'h4');
if(strpos($item->catslug, 'media') !== FALSE) {
$mediafound = $mediafound + 1;
$currentitem = 'media';
} elseif(strpos($item->catslug, 'gear') !== FALSE) {
$gearfound = $gearfound + 1;
$currentitem = 'gear';
} elseif(strpos($item->catslug, 'bike') !== FALSE) {
$bikefound = $bikefound + 1;
$currentitem = 'bike';
} ?>
<?php if($currentitem == 'media' && $mediafound == 1) { ?>
<li>
<a href="<?php echo $item->link;?>">
<img width="130" height="82" src="<?php echo htmlspecialchars($images->image_intro); ?>" alt="<?php echo htmlspecialchars($images->image_intro_alt); ?>" />
</a>
<h1></h1>
<p class="valign" style="margin-top: 13px;">
<a class="gray" href="/reviews/bikes/kawasaki-adversys-versys-650-project">
<span class="green fs12 db mb5">Latest Media Review</span>
<?php echo $item->title;?>
</a>
</p>
<span class="article-separator"> </span>
</li>
<?php } elseif($currentitem == 'gear' && $gearfound == 1) { ?>
<li>
<a href="<?php echo $item->link;?>">
<img width="130" height="82" src="<?php echo htmlspecialchars($images->image_intro); ?>" alt="<?php echo htmlspecialchars($images->image_intro_alt); ?>" />
</a>
<h1></h1>
<p class="valign" style="margin-top: 13px;">
<a class="gray" href="/reviews/bikes/kawasaki-adversys-versys-650-project">
<span class="green fs12 db mb5">Latest Gear Review</span>
<?php echo $item->title;?>
</a>
</p>
<span class="article-separator"> </span>
</li>
<?php } elseif($currentitem == 'bike' && $bikefound == 1) { ?>
<li>
<a href="<?php echo $item->link;?>">
<img width="130" height="82" src="<?php echo htmlspecialchars($images->image_intro); ?>" alt="<?php echo htmlspecialchars($images->image_intro_alt); ?>" />
</a>
<h1></h1>
<p class="valign" style="margin-top: 13px;">
<a class="gray" href="/reviews/bikes/kawasaki-adversys-versys-650-project">
<span class="green fs12 db mb5">Latest Bike Review</span>
<?php echo $item->title;?>
</a>
</p>
<span class="article-separator"> </span>
</li>
<?php } ?>
<?php endforeach; ?>
</ul>
</div>
</div>
这可以很好地显示三个不同类别的最新文章。
答案 0 :(得分:0)
您尚未指定Joomla版本,但在2.5以上版本中,以下情况属实,可能有所帮助。
$item
模板文件中的_item.php
对象包含catid
,即$item->catid
是当前$item
中文章类别的ID。这是一个int
值,如19
。
您还可以从catslug
获取$item
,这是类别ID, slug (别名)与冒号:
连接起来{典型{ {1}}将是catslug
。