在本节我们将介绍如何来重写模块的输出,并且实现一个带有徽标的文章列表。
如何来重写模块的输出
为了便于管理和修改,Joomla的模块也是按照MVC架构设计的。模块的英文单词是module.在Joomla的安装目录下,我们可以看到一个文件夹modules。这个文件夹中存放了所有的模块文件。所有的模块文件夹都以mod_模块的名字这种方式来组织。如图:
在模板中重写模块的输出步骤如下:
温馨提示:一般我们会从原先的布局中直接复制一份,然后再来做修改而不是完全新建。
planc模板重写新闻轮播模块(mod_articles_news)默认布局文件夹结构如下:
在本版中,我们在模板的html中重写了新闻轮播模块(mod_articles_news)默认布局,使得其输出我们期待的带有徽标的列表方式
4.1 代码片段如下:
<div class="newsflash<?php echo $moduleclass_sfx; ?>">
<?php $i=0;?>
<?php foreach ($list as $item) : ?>
<?php $i++; $badge="";?>
<?php if($i<=3){$badge ='<span class="badge">最新</span>';}?>
<?php if ($params->get('item_title')) : ?>
<?php $item_heading = $params->get('item_heading', 'h4'); ?>
<<?php echo $item_heading; ?> class="newsflash-title<?php echo $params->get('moduleclass_sfx'); ?>">
<?php if ($item->link !== '' && $params->get('link_titles')) : ?>
<a href="/<?php echo $item->link; ?>">
<?php echo $item->title; ?><?php echo $badge;?>
</a>
<?php else : ?>
<?php echo $item->title; ?><?php echo $badge;?>
<?php endif; ?>
</<?php echo $item_heading; ?>>
<?php endif; ?>
<?php if (!$params->get('intro_only')) : ?>
<?php echo $item->afterDisplayTitle; ?>
<?php endif; ?>
<?php echo $item->beforeDisplayContent; ?>
<?php if ($params->get('show_introtext', '1')) : ?>
<?php echo $item->introtext; ?>
<?php endif; ?>
<?php echo $item->afterDisplayContent; ?>
<?php if (isset($item->link) && $item->readmore != 0 && $params->get('readmore')) : ?>
<?php echo '<a class="readmore" href="' . $item->link . '">' . $item->linkText . '</a>'; ?>
<?php endif; ?>
<?php endforeach; ?>
</div>
4.2 执行的效果
4.3 v0.0.16版本的代码
关于v0.0.16版本的代码,可以在此下载[下载文件:]tpl_plancv0.0.16_2019-01-18_for_j3x.zip
评论 (0)