Joomla!-开源天空

2008-12-05
首页 专栏热点 Joomla! 源代码分析 中文自动标签生成Joomla!扩展制作教程(四)-创建插件


中文自动标签生成Joomla!扩展制作教程(四)-创建插件

E-mail

正如我们在序言中说的那样,我们需要一个插件,来在正文显示之前,显示文章的标签,本文就创建这样一个组件。我们需要三个文件来完成这项工作。 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:
您还没有登录,登录后方能下载,如果您还没有注册,请点击 免费注册
相关文章:
中文tags cloud Joomla! 组件发布
中文自动标签生成Joomla!扩展制作教程(九)-tags cloud 模块完整版
中文自动标签生成Joomla!扩展制作教程(八)-tags cloud 模块
简体中文标签自动生成Joomla!组件,插件,标签云模块
中文自动标签生成Joomla!扩展制作教程(七)-com_tags管理后台分页
中文自动标签生成Joomla!扩展制作教程(六)-自动生成文章标签
中文自动标签生成Joomla!扩展制作教程(五)-增加组件列表功能
中文自动标签生成Joomla!扩展制作教程(三)-增加组件的tags生产功能
中文自动标签生成Joomla!扩展制作教程(二)-创建组件框架
中文自动标签生成Joomla!扩展制作教程(一)-前言


收藏此文章:
Digg! Reddit! Del.icio.us! JoomlaVote! Google! Live! Facebook! StumbleUpon! Yahoo! Free social bookmarking plugins and extensions for Joomla! websites!

发表您的文章评论

您的姓名 (昵称)
标题:
评分: 很差一般较好很好
评论:
验证码:
请输入验证码