标签格式说明
标签文件名为:标签名.lib.php
接口函数定义为:function lib_标签名(&$ctag,&$refObj),返回值是结果字符串
修改标签时为了防止出错,您也可以修改它的名称(同时修改文件名和函数名),这样等同继承了原来标签的代码建立一个新的标签。
<?php if(!defined('DEDEINC')) { exit("Request Error!"); } /** * 单独页面内容获取 * * @version $Id: single_page.lib.php 1 9:29 2012年3月7日Z Oliver $ * @package DedeCMS.Taglib * @copyright Copyright (c) 2007 - 2010, DesDev, Inc. * @license http://help.dedecms.com/usersguide/license.html * @link http://www.dedecms.com */ /*>>dede>> <name>单独页面内容获取</name> <type>全局标记</type> <for>V55,V56,V57</for> <description>用于获取单独页面内容</description> <demo> {dede:single_page id=1} <h1>[field:title /]</h1> <div>[field:body /]</div> {/dede:single_page} </demo> <attributes> <iterm>id:页面id</iterm> </attributes> >>dede>>*/ function lib_single_page(&$ctag,&$refObj) { global $dsql,$envs; //属性处理,处理标签传入的属性值 $attlist="id|1"; FillAttsDefault($ctag->CAttribute->Items,$attlist); extract($ctag->CAttribute->Items, EXTR_SKIP); $innertext = trim($ctag->GetInnerText()); $revalue = ''; //你需编写的代码,不能用echo之类语法,把最终返回值传给$revalue //------------------------------------------------------ $row = $dsql->GetOne("SELECT title,body FROM `#@__sgpage` WHERE aid='$id' "); if($row){ if(trim($innertext)=='') $innertext = GetSysTemplets("single_page.htm"); $dtp = new DedeTagParse(); $dtp->SetNameSpace('field','[',']'); $dtp->LoadSource($innertext); if(!is_array($dtp->CTags)) { unset($dtp); return ''; } else { foreach($dtp->CTags as $tagid=>$ctag) { if(isset($row[$ctag->GetName()])) $dtp->Assign($tagid,$row[$ctag->GetName()]); } $revalue = $dtp->GetResult(); unset($dtp); return $revalue; } } //------------------------------------------------------ } ?>
标签文件在include/taglib文件夹中
- 例如“single_page.lib.php”用于显示单页文档信息
文件为新建立的标签可以在前台的模板中根据标签说明使用。
- 标签的说明可以在“include\taglib\help”文件夹下建立。
名称single_page.txt
内容如下
单页文档获取标签
>>dede>>
{dede:single_page id=''}
<h1>[field:title /]</h1>
<div>[field:body /]</div>
{/dede:single_page}
>>dede>>
id='' 单页文档的ID
3)\templets\system 文件夹下建立默认的标签显示效果
single_page.htm
<h1>[field:title /]</h1>
<div>[field:body /]</div>