在本节我们将介绍如何来重写模块的输出,并且实现一个带有徽标的文章列表。
如何来重写模块的输出
为了便于管理和修改,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