正如我们在序言中说的那样,我们需要一个插件,来在正文显示之前,显示文章的标签,本文就创建这样一个组件。我们需要三个文件来完成这项工作。 tags.php,tags.css,tag.xml安装文件。
关于插件开发的教程和规范请参考这篇文章:[翻译]教程:Joomla! 插件开发指南(序言)
我们先来看看tags.xml安装文件,代码如下:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE install SYSTEM "http://dev.joomla.org/xml/1.5/plugin-install.dtd">
<install type="plugin" group="content" version="1.5">
<name>Content - tags</name>
<author>xieyingwu</author>
<creationDate>October 26, 2007</creationDate>
<copyright>(C) Maycode All rights reserved.</copyright>
<license>http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL</license>
<authorEmail>
为防备电子邮件地址收集器,这个 E-mail 地址被隐藏,你的浏览器必须支持 Javascript 才可看到这个邮件地址
</authorEmail>
<authorUrl>www.maycode.com</authorUrl>
<version>0.9.8 Beta</version>
<description>chinese tags</description>
<files>
<filename plugin="tags">tags.php</filename>
<filename plugin="tags">tags.css</filename>
</files>
<params>
<param name="count" type="text" default="10" label="count" size="30" description="items count">
</param>
</params>
</install>
我们看到这是一个内容插件,安装的文件有两个一个是tags.php和tags.css。
再来看看tags.php,代码如下:
<?php
defined('_JEXEC') or die('Restricted access');
$mainframe->registerEvent("onAfterDispatch", "addTagsStyleSheet");
$mainframe->registerEvent('onAfterDisplayContent', 'plgTags');
function addTagsStyleSheet()
{
$document = & JFactory::getDocument();
$document->addStyleSheet( JURI::base() . "plugins/content/tags.css", "text/css", null, array() );
}
function plgTags( &$row, &$params)
{
if(JRequest::getVar('view')=='article'){
$plugin =& JPluginHelper::getPlugin('content', 'tags');
$html = '';
$db = & JFactory::getDBO();
$count=$params->get('count',5);
$query='select * from #__tags where articleid='.$row->id.' limit '.$count;
$db->setQuery($query);
$items = $db->loadObjectList();
if($items){
$html.='<div class="tags"><B>Tags:</B> ';
foreach ( $items as $item )
{
$html.='<span class="tag"><a href="/index.php?option=com_tags&view=list&key='.urlencode($item->tag).'" target="_blank">';
$html.=$item->tag;
$html.='</a></span>';
}
$html.='</div>';
}
$row->text = $html.$row->text;
}
return;
}
?>
代码中有两个事件函数,addTagsStyleSheet 完成了在页头中添加了tags.css文件。
plgTags函数相对简单,根据文章的编号,从tags表中查出相关的标签,并显示出来,值得注意的是,标签的连接我们还没有在组件中实现的。
请下载附件安装试试。页面的效果如下:

Attatchments: 您还没有登录,登录后方能下载,如果您还没有注册,请点击
免费注册