[原创]技术分析及教程_万能标签与自定义标签谁更万能_用户自定义标签教程
一直没有用过帝国 帝国最好的地方莫过于万能标签和自定义标签
我今天在帝国转了一天 其实 万能标签 就是 自定义标签
语出惊人吧 怎么解释呢
在使用 [ecmsinfo][/ecmsinfo]标签时实际上使用的是sys_GetEcmsInfo这个函数
//带模板的标签 function sys_GetEcmsInfo($classid,$line,$strlen,$have_class=0,$enews=0,$tempid,$doing=0){ global $empire; $sql=sys_ReturnBqQuery($classid,$line,$enews,$doing); if(!$sql) {return "";} //取得模板 $tr=sys_ReturnBqTemp($tempid); if(empty($tr['tempid'])) {return "";} $listtemp=$tr[temptext]; $subnews=$tr[subnews]; $listvar=$tr[listvar]; $rownum=$tr[rownum]; $formatdate=$tr[showdate]; //替换变量 $listtemp=ReplaceEcmsinfoClassname($listtemp,$enews,$classid); if(empty($rownum)) {$rownum=1;} //字段 $ret_r=ReturnAddF($r,$tr[modid],$userid,$username,2,2,0); //列表 $list_exp="[!--empirenews.listtemp--]"; $list_r=explode($list_exp,$listtemp); $listtext=$list_r[1]; $no=1; $changerow=1; while($r=$empire->fetch($sql)) { $r[oldtitle]=$r[title]; $r[title]=sub($r[title],0,$strlen,false); //替换列表变量 $repvar=ReplaceListVars($no,$listvar,$subnews,0,$formatdate,$url,$have_class,$r,$ret_r); $listtext=str_replace("<!--list.var".$changerow."-->",$repvar,$listtext); $changerow+=1; //超过行数 if($changerow>$rownum) { $changerow=1; $string.=$listtext; $listtext=$list_r[1]; } $no++; } //多余数据 if($changerow<=$rownum&&$listtext<>$list_r[1]) { $string.=$listtext; } $string=$list_r[0].$string.$list_r[2]; echo $string; }
对于不会使用使用php编程的人来说,帝国是通过这个函数给出了一个通过php和mysql来制作网页的框架, 其中的$classid='sql语句'时实际上相当于在用户自定义标签文件userfun.php中自定义一个标签函数时,函数内的sql语句
定义万能标签的 $var 和 列表模板 相当于userfun.php中 从执行数据库查询后的 变量和 echo输出的html代码
如果你不懂php和mysql你最好使用[ecmsinfo][ecmsinfo/]这个万能标签
如果你懂php,其实为了应用更方便最好是自己在userfun.php文件中自己去自定义一系列的自定义标签,这样做的好处是可以利用帝国提供的平台,又可以不受帝国的限制,可以调用任何数据库内的任何数据表的任何字段,同时对于多数据表操作也非常有用。
下面我来写个教程
1对于在userfun.php中自定义用户标签
当然是这种结构
<?php /** * 自定义标签案例 * @author:wangyachun * @copyright:http://www.njphp.cn */
//---------------------------用户自定义标签文件 function user_lable1($param1,$param2,$param3,$param4) { //这里放置函数的代码 }
function user_lable2($param1,$param2,$param3,$param4) { //这里放置函数的代码 }
function user_lable3($param1,$param2,$param3,$param4) { //这里放置函数的代码 }
function user_lable4($param1,$param2,$param3,$param4) { //这里放置函数的代码 } ?>
上面的function user_lable1到function user_lable4甚至是无穷多实际上就是自定义了无限多个 用户自定义标签
自定义标签在帝国的模板内的用法就是
[user_lable1]$param1,$param2,$param3,$param4[/user_lable]
其中$param1,$param2,$param3,$param4是自定义标签函数的参数,函数中自定义几个参数,标签中就有几个参数
就和在php编程中使用一个函数的方式差不多 在php中定义 函数
<? /** * 函数使用案例 * @author:wangyachun * @copyright:http://www.njphp.cn */
function user_lable3($param1,$param2,$param3,$param4) { //这里放置函数的代码
?>
后 使用这个函数的方式就是
<?php /** * 函数使用案例 * @author:wangyachun * @copyright:http://www.njphp.cn */ user_lable3($param1,$param2,$param3,$param4); ?>
//---------------------------------------------------------------------------------//
觉得文章还可以的可以访问我的 PHP俱乐部 网站一起交流一下
wangyc 写于 2008-07-03
|
[该贴被修改 5 次,最后修改时间 2008-07-04 10:29:38 ]
One World,OnePHP PHP俱乐部 QQ:59810752 帝国用户自定义标签定制,帮你调用任何你想要的信息 专业PHP程序定制服务 ECMS Discuz PHPWind ShopEX PHPCMS DEDE UCenter UCHome
|