作为一个新手,也是刚刚玩转discuz的插件的一些功能,感觉网上的关于discuz的教程很简单,原因可能是这个东西是商业化的东西,本着分享的精神的人就不是很多,我现在就幻灯片插件教程,拿出来大家一起分享一下。希望能给大家一些启示或者帮助吧!
在我们在discuz的门户上发表文章,有时会上传一些图片,就相当于文章的附件。我们可以设计设计一个插件,去提取附件图片或者图片自动生成的缩略图,来生成一个幻灯片。
一、首先建立一个新插件后,建立pages.class.php
<?php
/**
* [文章附件图幻灯(skx_slide.{modulename})] .
*/
if(!defined('IN_DISCUZ')) {
exit('Access Denied');
}
require "skx_slide.func.php";
class plugin_skx_slide {
//TODO - Insert your code here
}
class plugin_skx_slide_portal extends plugin_skx_slide {
function view_article_skx_slide(){
global $_G;
$html ="";
$test = $slide_var = $check = array();
$slide_var = slide_var($_G["cache"]["plugin"]["skx_slide"]);// 取参数
$check["mgt"] = in_array( $_G["adminid"], $slide_var["slidemgtgroup"] ) ? $_G["adminid"] : 0; // 管理权
$check["view"] = in_array( $_G["groupid"], $slide_var["slideviewgroup"] ) ? $_G["groupid"] : 0; // 浏览权
$divid = "skx_slide";
$aid = empty($_GET['aid'])?0:intval($_GET['aid']);
if($check["view"]){
$old = DB::fetch_first("SELECT * FROM ".DB::table('skx_slidecp')." WHERE aid=$aid ORDER BY sid DESC");
if(!$old) {
if($check["mgt"]){ //无数据加可管理提示
$html .= '<a style="margin-top:-30px;" class="y" href="plugin.php?id=skx_slide:portalcp&aid='
.$aid.'&mod=add" target="_blank">编辑幻灯</a>';
return slide_html($html);
}
return false; // 如果无数据,直接返回
}
$html .= "<div id='$divid'></div><script type='text/javascript'>ajaxget('plugin.php?id=skx_slide&aid="
.$aid."&rand=".rand(1,1000)."','$divid');</script>";
}
$html = slide_html($html) ;
return $html;
}
}
?>
二、建立skx_slide.func.php
<?php
if( !defined('IN_DISCUZ') ) {
exit('Access Denied');
}
$slide_mgtmod = array("add","edit");
$slide_path = './source/plugin/skx_slide';
function slide_html($html){ // 返回HTML的包围层
return '<div class="skx_slide cl">'.$html.'</div>';
}
function slide_var($var){ //解析本插件参数
foreach($var as $k => $v ){
$dunser = dunserialize($v);
$var[$k]= $dunser ? $dunser : $v ;
}
return $var;
}
fun