dedecms 编译式引擎开发案例

作者: jiukeshuju 分类: DEDECMS 发布时间: 2020-12-21 21:31
内容纲要

3.1 编译式模板

先来写个程序(以后root代表根目录)

root/code.php

<?php
    //利用dedecms写php时,基本都要引入common.inc.php
    require_once (dirname(__FILE__) . '/include/common.inc.php');
    //利用编译式模板所需的文件
    require_once (DEDEINC.'/dedetemplate.class.php');

//生成编译模板引擎类对象
$tpl = new DedeTemplate(dirname(__file__));
//装载网页模板
$tpl->LoadTemplate('code.tpl.htm');
//把php值传到html
$title = 'Hello World';
$tpl->SetVar('title',$title);
$tpl->Display();
//把编译好的模板缓存做成code.html,就可以直接调用
$tpl->SaveTo(dirname(__FILE__).'/code.html');
?>
root/code.tpl.htm

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd“>
<html xmlns=”http://www.w3.org/1999/xhtml“>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=gb2312” />
<title>无标题文档</title>
</head>

<body>

{dede:var.title/} – {dede:php echo “Little”; /} –

{dede:php}
echo “Hann”;
{/dede:php}

</body>
</html>

同时,在当前目录下也生成了静态的html文件

code.html

<img src="http://www.tuicool.com/articles/RF3eimf" alt="" />
//编译式模板和标签解释的文件都放在/include/ tpllib 下,所以如果我们需要编写、实现我们自己的自定义标签,就需要按照DEDE的代码架构,在这个文件夹下添加新的标签处理代码逻辑
root/include/tpllib/plus_hello.php
<?php
if(!defined('DEDEINC')) exit('Request Error!');
/**
 * 动态模板hello标签学习原理
 *
 * @version        $Id: plus_ask.php 1 13:58 2010年7月5日Z tianya $
 * @package        DedeCMS.Tpllib
 * @copyright      Copyright (c) 2007 - 2010, DesDev, Inc.
 * @license        http://help.dedecms.com/usersguide/license.html
 * @link           http://www.dedecms.com
 */

function plus_hello(&$atts,&$refObj,&$fields)
{
    global $dsql,$_vars;

    //给出标签的属性默认参数值列表,以’,’分隔,即使不设置默认参数也要给出属性名
    $attlist = "name=";

    FillAtts($atts,$attlist); //设定属性的默认值
    FillFields($atts,$fields,$refObj); //把上级的fields传递给atts
    extract($atts, EXTR_OVERWRITE);  //解压单个文件

    //返回处理结果,以替换标签
    return 'hello1!'.$name;
}
?>

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

发表评论

标签云
dede dedecms dede标签 echo empty field index li mysql php stus thinkphp 再温 授权 本类 标签 每日更新|织梦插件|Tag标签|充值 程序员 织梦dede:flink友情链接标签自定义输出bug修复 织梦Fatal error: Call to a member function fetchArray解决方法 织梦Fatal error: Call to undefined function dede_htmlspecialchars 织梦TAG标签列表页和搜索结果页调用自定义字段内容 织梦上传图片提示缺少图像源文件地址 织梦上传文件大小限制修改 织梦内容页分页标题提取 织梦判断缩略图是否为空输出不同样式 织梦前台搜索标题和文档内容关键词实现教程 织梦前台模板里显示当前登录会员名 织梦取消mysql错误日志生成文件功能防止暴露后台和管理员 织梦后台自定义表单添加搜索功能 织梦图集302与FILEID:X处理方法 织梦图集上传图片自动获取图片名称做注释 织梦实现url不变电脑和手机显示不同模板 织梦开启绝对路径缩略图https绝对路径时缩略图地址前面多了个域名 织梦手机站去除文章内容中图片的宽高达到自适应+绝对路径图片 织梦手机站搜索结果显示为电脑站的搜索结果模板的解决方法 织梦批量修改栏目的保存目录和文章命名规则 织梦搜索结果为空时输出自定义提示信息 织梦搜索结果增加dede:type、dede:arclist、dede:channelartlist、dede:tag、dede:php等标签支持 织梦搜索结果页分页条样式修改 织梦数据库内容替换,正则去掉文章内容中的img标签 织梦文档内容页title按文章名_当前栏目名_上级栏目名_顶级栏目名_网站名输出 织梦无法上传ico图标格式文件的解决方法 织梦标签array runphp静态生成乱码BUG解决方法 织梦栏目添加 [英文名称] [栏目大图] [栏目小图] 功能