0

插件设计文档

发表者:p分类:wiki2019-03-01 16:19:13 阅读[178]


插件全部放在home/plugins目录下


插件必须包含两个文件

info.php和do.php


info.php是插件配置信息



info.php信息结构如下

<?php
$plugin_info['id'] = 'new_article';                               //比如保证此字段唯一性,也就是安全的
$plugin_info['plugin_point'] = '1';                               //插件类别,1标示边栏插件,下面会列出具体的类别表
$plugin_info['name'] = '最新文章';                               //插件名字
$plugin_info['desc'] = '在边栏显示最新文章';                          //插件描述
$plugin_info['author'] = 'pengwenfei';                             //插件作者
$plugin_info['version'] = '1.0';                                //插件版本
$plugin_info['cp_type'] =0;                                   //是否拥有管理面板,比如可以在后台管理
$plugin_info['install'] =true;                                  //是否还有附带安装,比如安装信息到边栏
?>


$plugin_info['plugin_point']参考值对应表如下


钩子值作用传递参数
1在边栏运行的插件
4发表评论后array('user_name'=>$user_name, 'content'=>$content, 'email'=>$email, 'home'=>$home)
5添加日志后array('blog_id'=>$blog_id,'blogurl'=>$blogurl)
6博客运行页面array('blog_id'=>$id)
7注册会员成功后array('user_id'=>$_SESSION['user_id'])
8会员登录后array('user_id'=>$_SESSION['user_id'])
9提交评论没有进行任何数据操作array('user_name'=>$user_name, 'content'=>$content, 'email'=>$email, 'home'=>$home)




do.php

比如包含一个运行函数,比如插件名字为newcomments,那么必须有newcomments()函数


比如

function new_article($arr=array())
{
        $sql='SELECT blog_id,title,url_type  FROM '.table('blog').' WHERE 1 LIMIT 10';
        if ($blog_list=$GLOBALS['db']->getall($sql))
        {
                foreach ($blog_list as $key=>$val)
                {
                        $blog_list[$key]['url']=build_url('blog',$val['blog_id'],$val['url_type']);
                }
        }
        $GLOBALS['smarty']->assign('new_article',$blog_list);
}


要调用数据库资源,只需要使用$db这个对象,比如$GLOBALS['db']->query($sql);

要使用模板资源,只需要使用$smarty这个对象,比如$GLOBALS['smarty']->assign('new_article',$blog_list);



如果还需要将信息写入到边栏或者扩展表,可以在do.php中加入插件id_install()和插件id_uninstall(),比如new_article_install(),new_article_uninstall()



function new_article($arr=array())
{
        $sql='SELECT blog_id,title,url_type  FROM '.table('blog').' WHERE 1 LIMIT 10';
        if ($blog_list=$GLOBALS['db']->getall($sql))
        {
                foreach ($blog_list as $key=>$val)
                {
                        $blog_list[$key]['url']=build_url('blog',$val['blog_id'],$val['url_type']);
                }
        }
        $GLOBALS['smarty']->assign('new_article',$blog_list);
}



$modules['type']标示安装类别,1 标示边栏挂件



type值用途
1边栏挂件
2表示拥有 后台管理界面


function new_article_uninstall()
{
	$modules['id']='new_article';		//1表示边栏模块
	$modules['type']=1;					//1表示边栏模块
	return $modules;
}


名字:

个人主页地址:

E-mail:

评论列表