`
xuepengcheng
  • 浏览: 46528 次
  • 性别: Icon_minigender_1
  • 来自: 郴州
社区版块
存档分类
最新评论

dede 模板解析过程

    博客分类:
  • PHP
阅读更多
分析模板解析过程
[
   某栏目设置为:
最终列表栏目
内容模型--普通文章|article
列表模板--{style}/list_article.htm
]

http://www.dedeme.com/plus/list.php?tid=4  显示列表地址18:12 2013-1-17
以插件方式访问 list.php
栏目 tid=4

include(DEDEINC."/arc.listview.class.php");   //文档列表类
$lv = new ListView($tid);
{
栏目数据处理
模块载入
查询数据
解析模块
生成缓存
输出
}

栏目数据处理 {
new TypeLink($typeid);  /include/typelink.class.php  
初使化 查询栏目相关信息 dede_arctype(栏目信息表)  dede_channeltype(栏目信息分类 如普通文章、图片集)
}

如果是栏目是列表的话 会调用  $this->CountRecord();  分页 {
$cquery = "SELECT COUNT(*) AS dd FROM `#@__arctiny` arc WHERE ".$this->addSql;
dede_arctiny  // 该表是存放文档相关信息  (文档微表)
并载入模板文件
}
载入模板文件 {
include/dedetag.class.php
function LoadTemplate($filename) {
读取模板文件内容
当缓存模板数组内容存在且没有超过有效时间时载入 并 标记  $this->LoadCache
否则  对读取的内容处理 并解析模板特殊标识写入模板数组缓存 $this->ParseTemplet();
}

当缓存模板标识数组内容存在且没有超过有效时间时载入 并 标记 {
include/dedetag.class.php
循环标识数组 并 实例化 $ctag = new DedeTAg(); 写入  $this->CTags[$this->Count] = $ctag;
}
}

解析模板,对固定的标记进行初始给值  function ParseTempletsFirst(){
MakeOneTag($this->dtp,$this); 给块标记赋值
对  $this->CTag  循环标识
标识 field ({dede:field name='position'/})  是从载入原始对象 $refObj->Fields 中获取的

//由于考虑兼容性,原来文章调用使用的标记别名统一保留,这些标记实际调用的解析文件为inc_arclist.php
             if(preg_match("/^(artlist|likeart|hotart|imglist|imginfolist|coolart|specart|autolist)$/", $tagname))
            {
                $tagname='arclist';
            }
            if($tagname=='friendlink')
            {
               $tagname='flink';
            }
            if(in_array($tagname,$alltags))
            {
              $filename = DEDEINC.'/taglib/'.$tagname.'.lib.php';
              include_once($filename);
              $funcname = 'lib_'.$tagname;
              $dtp->Assign($tagid,$funcname($ctag,$refObj));
            }

            include/dedetag.class.php
   /**
     *  分配指定ID的标记的值
     *
     * @access    public
     * @param     string   $i  标签id
     * @param     string  $str  字符串
     * @param     string  $runfunc  运行函数
     * @return    void
     */
    function Assign($i, $str, $runfunc = TRUE)
    {
if(isset($this->CTags[$i]))
{
    $this->CTags[$i]->IsReplace = TRUE;
    $this->CTags[$i]->TagValue = $str;

    if( $this->CTags[$i]->GetAtt('function')!='' && $runfunc )
    {
$this->CTags[$i]->TagValue = $this->EvalFunc( $str, $this->CTags[$i]->GetAtt('function'),$this->CTags[$i] );
    }
}
    }

}
分享到:
评论

相关推荐

    DEDE5.1模板标签(开发必备)

    本文将深入解析DEDE5.1中的核心模板标签之一:`{dede:arclist}`,它被广泛用于列表、文章、图片等内容的展示。 #### 1. `{dede:arclist}` 标签详解 `{dede:aralist}` 是一个非常强大的标签,它能够根据不同的参数...

    26个网站设计源码[DEDE模板].rar

    DEDE模板作为一种流行的网站建站工具,以其强大的功能和易用性深受广大设计师和开发者喜爱。本资料集合了26个DEDE模板,为读者提供了丰富的学习资源,旨在帮助读者深入理解网站设计的原理和实践技巧。 首先,DEDE...

    最新淘宝客程序源码_DEDE模板程序

    DEDE模板程序则是一种基于织梦(DedeCMS)内容管理系统的基础框架,用于快速搭建网站。在这个压缩包中,包含了一系列用于实现淘宝客功能的文件。 首先,`favicon.ico` 是网站的图标,它会显示在浏览器的地址栏以及...

    装修设计公司网站dede模板 php版 v1.0.zip

    "装修设计公司网站dede模板 php版 v1.0.zip" 这个标题揭示了我们正在处理一个专为装修设计公司设计的网站模板,它基于PHP编程语言,并且是织梦(DedeCMS)系统的一个版本,具体来说是v1.0。织梦内容管理系统是一款...

    一套改造过的DEDE MIP模板

    DEDE MIP模板是基于DEDE CMS(织梦内容管理系统)和MIP(Mobile Instant Pages,移动加速页面)技术的一款经过改造的网站模板。DEDE CMS是中国广泛应用的开源CMS系统,它提供了强大的内容管理功能,方便用户搭建和...

    两个dede小说网模板

    "两个dede小说网模板" 指的是包含有两个不同设计风格的模板,用于构建基于DedeCMS(织梦内容管理系统)的小说网站。DedeCMS是一款流行的开源CMS,常用于搭建各类内容丰富的网站,尤其是文章、新闻和小说类站点。 ...

    基于PHP的绿色水果蔬菜公司网站dede模板php版源码.zip

    【标题】"基于PHP的绿色水果蔬菜公司网站dede模板php版源码.zip" 提供的是一个使用PHP语言开发的网站模板,适用于构建绿色、健康的水果蔬菜公司的在线平台。DedeCMS(织梦内容管理系统)是这个模板所基于的开源CMS...

    dede data文件夹解析

    `dede data`文件夹是基于DedeCMS(织梦内容管理系统)的一个关键组成部分,它存储着系统运行过程中产生的各种数据和配置信息。以下是对`data`文件夹及其子目录的详细解析: 1. **admin**: 这个目录包含了管理员的...

    dede5.6 qq站模板

    本文将深入探讨"dede5.6 qq站模板"这一主题,分析其特点、优势,并结合其中的文件结构进行详细解析。 "dede5.6 qq站模板"是一款专为QQ站设计的模板,适用于使用DEDECMS(织梦内容管理系统)5.6版本的用户。DEDECMS...

    php下正则来匹配dede模板标签的代码

    html代码 复制代码 代码如下: <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” ... <head> <... charset=utf-8″ /> <... {t:arc r

    前端学生作业毕设实训素材-HTML5浅蓝色网站设计公司dede模板.zip

    这篇内容将围绕“前端学生作业毕设实训素材-HTML5浅蓝色网站设计公司dede模板.zip”这个主题,深入解析其中涉及的前端开发、HTML5技术、网站模板设计以及织梦(DedeCMS)系统等多个知识点。 首先,前端开发是构建...

    DEDE 织梦5.7 新闻采集规则

    1. **采集规则的构成**:采集规则通常包括URL模板、内容解析规则、时间解析规则等部分。URL模板定义了要抓取的页面地址,内容解析规则用于识别和提取新闻正文,时间解析规则则是用来提取新闻的发布时间。 2. **正则...

    dede动态首页代码

    《dede动态首页代码解析与应用》 在网站开发中,动态首页是一种常见的技术实践,它使得网站内容可以根据用户交互或者服务器端的数据实时更新。在本文中,我们将深入探讨"dede动态首页代码",了解其工作原理以及如何...

    dede5.7大气网络工作室源码

    《dede5.7大气网络工作室源码解析与应用》 Dede5.7是一款基于PHP和MySQL数据库的开源内容管理系统(CMS),以其强大的功能和灵活的可扩展性,在网络工作室和中小型企业网站中广受欢迎。标题中的"dede5.7大气网络...

    一件代发网站DEDE模版

    使用过程中,用户需要了解DEDE CMS的基本操作,如添加文章、设置栏目、管理用户等。 6. **定制与优化** 虽然DEDE模版提供了基础框架,但每个网站的需求都可能不同,用户可能需要根据自身品牌和业务特性进行二次...

    PHP实例开发源码-DEDE兰色单本模版.zip

    《PHP实例开发源码——DEDE蓝色单本模板解析》 在互联网开发领域,PHP作为一门广泛使用的服务器端脚本语言,因其开源、免费、高效的特点,被广大开发者所青睐。DEDE(织梦内容管理系统)是基于PHP的知名CMS系统,它...

    DEDE超级标签

    总之,DEDE超级标签是织梦内容管理系统中的一个重要组成部分,它简化了数据调用和页面生成的过程,让网站开发变得更加便捷。了解并熟练运用DEDE超级标签,有助于你更好地利用织梦CMS构建功能丰富的网站。

    dede常用标签总结整理!

    本文档旨在对dedecms(织梦内容管理系统)中的常用标签进行详尽的总结与解析。这些标签是构建、管理网站的重要工具,可以帮助开发者及内容管理者更高效地管理和更新网站内容。下面我们将逐一介绍这些标签的用法及其...

    dede二开源码 支持手机静态化 修改模板即可使用

    该套源码是在织梦2021-08月更新的utf-8版本上进行二开的,主要是针对dede对手机端不够友好的问题进行了调整,支持手机页面静态化,定义了手机端模板存放路径和手机端静态页面存放路径(在系统参数设置中可修改),...

Global site tag (gtag.js) - Google Analytics