首页 | 企业建站 | 智能网店 | 专业建站 | 模版展示 | 虚拟主机 | 域名注册 | 会员中心 | 在线视频 | 电子杂志
 
高级搜索 热门关键词 自助建站 企业建站 模板建站
 
企业网站管理系统  (503)
文章内容网站系统  (13)
商贸信息网站系统  (5)
城市美食网站系统  (4)
学校网站管理系统  (20)
医院网站管理系统  (20)
综合网店管理系统  (30)
网上花店管理系统  (20)
网上书店管理系统  (9)
三语易站系统模版  (1300)
律师网站系统模版  (21)
服装网店系统模板  (20)
手机网店系统模板  (20)
乡镇门户系统模板  (30)
分类信息系统模板  (1)
汽车门户系统模板  (1)
房产信息系统模板  (1)
您现在的位置: > 帮助中心 > 服务指南
频道搜索
智能建站插件程序调用原理详解
  2009-09-10 09:29:18 作者:SystemMaster 来源: 文字大小:[][][]
插件程序是用来对模版中的插件进行解释并输出内容的程序。插件程序存放在module目录,文件名和插件对应。比如对应的插件程序就是NewsList.php。

  每一个插件程序都是一个函数(少数可能是多个嵌套函数),函数名称和文件名称相同。下面以NewsList.php为例,描述插件程序的编写方法:

1、默认参数定义

CODE:
function NewsList(){

                //定义函数内需要的全局变量
                global $fsql,$charset,$tbl_news_con,$CatchOpen;
                global $strMore,$NowMenuid,$MenuInfo;

                //取出modNewsList的后台插件设置输出数组$PSET

                $PSET=PlusSet("modNewsList");
                                            
                //判断后台是否设置了插件参数,如果设置了就使用设置的参数,没有设置就使用默认值
                //内容来源栏目的范围,如果后台未指定来源栏目,则调用默认栏目来源。当插件位于news栏目下时,默认显示当前栏目的内容,否则默认显示全部内容

                $showmenuid=PlusDef($PSET["showmenuid"],MenuDef("news",$NowMenuid));
                $shownums=PlusDef($PSET["shownums"],"5"); //显示条数,默认5条
                $ord=PlusDef($PSET["ord"],"id");//排序参数,默认按id排序
                $sc=PlusDef($PSET["sc"],"desc"); //排序方式,默认倒排
                $showtime=PlusDef($PSET["showtime"],"n/j");//时间格式
                $cutword=PlusDef($PSET["cutword"],"0");//截取文字
                $target=PlusDef($PSET["target"],"_self");//目标窗口
                $onlytj=PlusDef($PSET["onlytj"],"0");//是否只显示推荐内容
                $catid=PlusDef($PSET["catid"],"0");//显示类别范围
                $more=PlusDef($PSET["showmore"],$strMore);//显示更多的格式,默认为语言包中定义的$strMore值
                $tempname=PlusDef($PSET["tempname"],"tpl_list.htm");//调用模版,默认tpl_list.htm
2、根据以上参数设置,生成数据库查询条件

CODE:
                $scl=" iffb='1' ";

                if($showmenuid!="0" && $showmenuid!=""){
                        $scl.=" and menuid='$showmenuid' ";

                        $fold=MenuFold($showmenuid);
                        $morelink=ROOTPATH.$fold."/class/?".$catid.".html";
                }else{
               
                        $morelink=ROOTPATH."";
                }


                if($catid!=0 && $catid!=""){
                        $catid=fmpath($catid);
                        $scl.=" and catpath regexp '$catid' ";
                }



                if($onlytj=="1"){
                        $scl.=" and tj='1' ";
                }
3、将模版读入数组

CODE:
$Temp=LoadTemp(ROOTPATH."templates/".$MenuInfo["skin"]."/".$tempname);
$TempArr=SplitTblTemp($Temp);
4、取出数据并输出

CODE:
                $str=$TempArr["start"];  //读入模版开始部分,即<!-start-><!-start->之间的内容

                $kk=0;
                $havepic=0;
                $fsql->query("select * from $tbl_news_con where $scl order by $ord $sc limit 0,$shownums");

                while($fsql->next_record()){
                       
                        $id=$fsql->f('id');
                        $title=$fsql->f('title');
                        $menuid=$fsql->f('menuid');
                        $catpath=$fsql->f('catpath');
                        $dtime=$fsql->f('dtime');
                        $nowcatid=$fsql->f('catid');
                        $ifnew=$fsql->f('ifnew');
                        $ifred=$fsql->f('ifred');
                        $author=$fsql->f('author');
                        $source=$fsql->f('source');
                        $cl=$fsql->f('cl');
                        $src=$fsql->f('src');
                        $type=$fsql->f('type');


                        $fold=MenuFold($menuid);
                        if($CatchOpen=="1"){
                                $link=ROOTPATH.$fold."/html/".$id.".html";
                        }else{
                                $link=ROOTPATH.$fold."/html/?".$id.".html";
                        }

       
                       
                        $dtime=date($showtime,$dtime);
                        if($ifbold=="1"){$bold=" style='font-weight:bold' ";}else{$bold="";}
                        if($ifred=="1"){$red=" style='color:#ff0000' ";}else{$red="";}
                        if($cutword!="0"){$title=csubstr($title,0,$cutword,$charset);}

                                                               
                        $var=array (
                        'title' => $title,
                        'dtime' => $dtime,
                        'red' => $red,
                        'author' => $author,
                        'source' => $source,
                        'cl' => $cl,
                        'link' => $link,
                        'target' => $target,
                        'bold' => $bold
                        );
                        $str.=ShowTplTemp($TempArr["list"],$var);//循环替换<!-list->和<!-list->之间的标签


                $kk++;

                }

                $str.=$TempArr["end"]; // 读入模版结束部分,即<!-end-><!-end->之间的内容


                $morestr=str_replace("",$more,$TempArr["more"]);
                $morestr=str_replace("",$morelink,$morestr);
               
                $str.=$morestr;

                return $str;
一个标准插件制作完成后,需要在_plus_set数据表中增加一条记录,注册这个插件,使后台可以选用和设置插件参数。

当然,如果是为某个网站专门制作的个性化插件,可以不必那么复杂。因为所有的参数都可以是固定的。只要在函数中将所需结果输出后赋值给$str ,最终return $str就可以了。
关于我们 建站流程 联系方式 付款方式 帮助中心 文档下载 会员社区 友情链接

版权所有:易神州旗下网站  电话:010-51290809      传真:010-51290809转8002   地址:北京南三环西路16号搜宝商务中心2号楼1915