站长百科 | 数字化技能提升教程 数字化时代生存宝典
首页
数字化百科
电子书
▼
建站程序
开发
服务器
办公软件
开发教程
▼
服务器教程
软件使用教程
运营教程
热门电子书
▼
CSS教程
WordPress教程
导航
程序频道
推广频道
网赚频道
人物频道
网站程序
网页制作
云计算
服务器
CMS
论坛
网店
虚拟主机
cPanel
网址导航
WIKI使用导航
WIKI首页
热点词条
最新资讯
网站程序
站长人物
页面分类
使用帮助
编辑测试
创建条目
网站地图
站长百科导航
站长百科
主机侦探
IDCtalk云说
跨境电商导航
WordPress啦
站长专题
网站推广
网站程序
网站赚钱
虚拟主机
cPanel
网址导航专题
云计算
微博营销
虚拟主机管理系统
开放平台
WIKI程序与应用
美国十大主机
编辑“
PHPWEB 插件制作说明
”(章节)
人物百科
|
营销百科
|
网赚百科
|
站长工具
|
网站程序
|
域名主机
|
互联网公司
|
分类索引
跳转至:
导航
、
搜索
警告:
您没有登录。如果您做出任意编辑,您的IP地址将会公开可见。如果您
登录
或
创建
一个账户,您的编辑将归属于您的用户名,且将享受其他好处。
反垃圾检查。
不要
加入这个!
==插件程序开发== 在规划好一个插件应该按什么样的规则显示、有哪些参数可以设置后,就可以进行插件程序开发了。插件程序的作用就是按可选参数设置,将内容取出来,交给模板显示内容。接下来以“文章列表”插件为例,说明插件程序的开发方法: <pre> <?php /* [插件名称] 最新文章列表 [适用范围] 全站 */ function NewsList(){ #插件程序文件名和插件函数同名 global $fsql,$msql; #全局[[数据库]]连接类 $coltitle=$GLOBALS["PLUSVARS"]["coltitle"]; $shownums=$GLOBALS["PLUSVARS"]["shownums"]; $ord=$GLOBALS["PLUSVARS"]["ord"]; $sc=$GLOBALS["PLUSVARS"]["sc"]; $showtj=$GLOBALS["PLUSVARS"]["showtj"]; $cutword=$GLOBALS["PLUSVARS"]["cutword"]; $cutbody=$GLOBALS["PLUSVARS"]["cutbody"]; $target=$GLOBALS["PLUSVARS"]["target"]; $catid=$GLOBALS["PLUSVARS"]["catid"]; $projid=$GLOBALS["PLUSVARS"]["projid"]; $tags=$GLOBALS["PLUSVARS"]["tags"]; $pagename=$GLOBALS["PLUSVARS"]["pagename"]; $tempname=$GLOBALS["PLUSVARS"]["tempname"]; # 以上读入插件设置参数,在插件记录表中允许设置的项目,必须将设置参数读入,在程序中对参数进行判断;在插件记录表中设置为-1的字段,绝对不要在这里引入 或判断。这是因为当记录值为-1时,插件设置窗口将不显示该参数的设置,用户看不到,但程序一旦解释了,该值就是-1,会使运行结果和预期的不一样。 //地址栏参数 if($pagename=="query" && strstr($_SERVER["QUERY_STRING"],".html")){ $Arr=explode(".html",$_SERVER["QUERY_STRING"]); $nowcatid=$Arr[0]; }elseif($_GET["catid"]>0){ $nowcatid=$_GET["catid"]; }else{ $nowcatid=0; } #文章列表插件中根据插件插入的不同地方,判断当前页面的分类id,以求根据页面自动显示当前分类下的文章。 #默认查询条件 $scl=" iffb='1' and catid!='0' "; #如果插件设置了只显示推荐,则只取tj=1的数据 if($showtj!="" && $showtj!="0"){ $scl.=" and tj='1' "; } #显示分类规则:如果插件设置时未指定分类,则显示当前所在分类,否则不限分类 if($catid!=0 && $catid!=""){ $catid=fmpath($catid); $scl.=" and catpath regexp '$catid' "; }elseif($nowcatid!=0 && $nowcatid!=""){ $catid=fmpath($nowcatid); $scl.=" and catpath regexp '$nowcatid' "; } #匹配专题,如果插件设置中选择了只显示某个专题的文章,则只获取匹配某专题的数据 if($projid!=0 && $projid!=""){ $projid=fmpath($projid); $scl.=" and proj regexp '$projid' "; } #判断匹配标签,如果插件设置中填写了匹配标签,只获取匹配的记录 if($tags!=""){ $tags=$tags.","; $scl.=" and tags regexp '$tags' "; } #模版解释,读入插件模板,将插件模板中的代码按<!- ->标签进行分离,存入数组 #例如<!-start-> 和<!-start->之间的内容,就是$TempArr["start"],依此类推 $Temp=LoadTemp($tempname); $TempArr=SplitTblTemp($Temp); #首先将模板的start部分需要的显示的变量替换给模板 $var=array( 'coltitle' => $coltitle, 'morelink' => $morelink ); $str=ShowTplTemp($TempArr["start"],$var); #开始循环,按条件取出文章 $picnum=1; $fsql->query("select * from pw_news_con where $scl order by $ord $sc limit 0,$shownums"); while($fsql->next_record()){ $id=$fsql->f('id'); $title=$fsql->f('title'); $catpath=$fsql->f('catpath'); $dtime=$fsql->f('dtime'); $nowcatid=$fsql->f('catid'); $ifnew=$fsql->f('ifnew'); $ifred=$fsql->f('ifred'); $ifbold=$fsql->f('ifbold'); $author=$fsql->f('author'); $source=$fsql->f('source'); $cl=$fsql->f('cl'); $src=$fsql->f('src'); $cl=$fsql->f('cl'); $fileurl=$fsql->f('fileurl'); $downcount=$fsql->f('downcount'); $prop1=$fsql->f('prop1'); $prop2=$fsql->f('prop2'); $prop3=$fsql->f('prop3'); $prop4=$fsql->f('prop4'); $prop5=$fsql->f('prop5'); $prop6=$fsql->f('prop6'); $prop7=$fsql->f('prop7'); $prop8=$fsql->f('prop8'); $prop9=$fsql->f('prop9'); $prop10=$fsql->f('prop10'); $prop11=$fsql->f('prop11'); $prop12=$fsql->f('prop12'); $prop13=$fsql->f('prop13'); $prop14=$fsql->f('prop14'); $prop15=$fsql->f('prop15'); $prop16=$fsql->f('prop16'); $prop17=$fsql->f('prop17'); $prop18=$fsql->f('prop18'); $prop19=$fsql->f('prop19'); $prop20=$fsql->f('prop20'); $memo=$fsql->f('memo'); $mid=$fsql->f('memberid'); #对取出的数据进行一系列判断,取出在该插件中可能被显示的数据 if($mid>0){ $memberurl=ROOTPATH."member/home.php?mid=".$mid; }else{ $memberurl="#"; } if($GLOBALS["CONF"]["CatchOpen"]=="1" && file_exists(ROOTPATH."news/html/".$id.".html")){ $link=ROOTPATH."news/html/".$id.".html"; }else{ $link=ROOTPATH."news/html/?".$id.".html"; } $dtime=date("m/d",$dtime); if($ifbold=="1"){$bold=" style='font-weight:bold' ";}else{$bold="";} if($ifred!="0"){$red=" style='color:".$ifred."' ";}else{$red="";} if($cutword!="0"){$title=csubstr($title,0,$cutword);} if($cutbody!="0"){$memo=csubstr($memo,0,$cutbody);} if($src==""){$src="news/pics/nopic.gif";} $src=ROOTPATH.$src; $downurl=ROOTPATH."news/download.php?id=".$id; //显示所属分类 $msql->query("select cat from pw_news_cat where catid='$nowcatid'"); if($msql->next_record()){ $cat=$msql->f('cat'); } // 参数列 $i=1; $msql->query("select * from pw_news_prop where catid='$nowcatid' order by xuhao"); while($msql->next_record()){ $pn="propname".$i; $$pn=$msql->f('propname'); $i++; } #模版标签解释,将数据解释给模板 $var=array ( 'title' => $title, 'memo' => $memo, 'dtime' => $dtime, 'red' => $red, 'bold' => $bold, 'link' => $link, 'target' => $target, 'author' => $author, 'source' => $source, 'cat' => $cat, 'src' => $src, 'cl' => $cl, 'memberurl' => $memberurl, 'picnum' => $picnum, 'downurl' => $downurl, 'fileurl' => $fileurl, 'downcount' => $downcount, 'prop1' => $prop1, 'prop2' => $prop2, 'prop3' => $prop3, 'prop4' => $prop4, 'prop5' => $prop5, 'prop6' => $prop6, 'prop7' => $prop7, 'prop8' => $prop8, 'prop9' => $prop9, 'prop10' => $prop10, 'prop11' => $prop11, 'prop12' => $prop12, 'prop13' => $prop13, 'prop14' => $prop14, 'prop15' => $prop15, 'prop16' => $prop16, 'prop17' => $prop17, 'prop18' => $prop18, 'prop19' => $prop19, 'prop20' => $prop20, 'propname1' => $propname1, 'propname2' => $propname2, 'propname3' => $propname3, 'propname4' => $propname4, 'propname5' => $propname5, 'propname6' => $propname6, 'propname7' => $propname7, 'propname8' => $propname8, 'propname9' => $propname9, 'propname10' => $propname10, 'propname11' => $propname11, 'propname12' => $propname12, 'propname13' => $propname13, 'propname14' => $propname14, 'propname15' => $propname15, 'propname16' => $propname16, 'propname17' => $propname17, 'propname18' => $propname18, 'propname19' => $propname19, 'propname20' => $propname20 ); $str.=ShowTplTemp($TempArr["list"],$var); $picnum++; } #循环结束,将模板的结尾部分,即<!-end->标签之间的内容加入$str,最后返回$str,$str的内容将被完整显示。 $str.=$TempArr["end"]; return $str; } ?> </pre>
摘要:
请注意,您对站长百科的所有贡献都可能被其他贡献者编辑,修改或删除。如果您不希望您的文字被任意修改和再散布,请不要提交。
您同时也要向我们保证您所提交的内容是您自己所作,或得自一个不受版权保护或相似自由的来源(参阅
Wordpress-mediawiki:版权
的细节)。
未经许可,请勿提交受版权保护的作品!
取消
编辑帮助
(在新窗口中打开)