Joomla模板开发-模版是如何执行的

Joomla模板开发-模版是如何执行的

在本节中我们要解决的问题是 joomla的模版是怎样被执行的。

joomla模版分两个阶段来执行的。因为模版通常是在document对象中执行的,所以在模版中的$this对象就是代表了JDocument类。

在模板开始执行之前,组件会先被执行,并且将他生成的输出缓存起来。留待稍后使用。

模版的执行具体过程:

1、如果模板存在参数,就加载模版的参数

2、如果模版设定了语言,就加载语言文件

3、检查是否开启了兼容模式,如果开启了兼容模式,那么就将配置变量复制到全局空间中

4、PHP开始加载模版的index.php文件。并且执行index.php文件。将输出的结果缓存起来。

到此为止,就完成了模版的第一阶段。在<?php  和?>之间的代码都被作为php代码进行执行。在这个标签之外的代码就被直接输出。由于输出是在缓存中,所以在这个阶段中客户端浏览器并不会输出任何东西。

5、开始寻找favicon.ico文件。开始在joomla的根目录下寻找,然后在模版的根目录下寻找,如果在模版中找到了favicon.ico文件,那么就将前者进行覆盖。

6、分析第一阶段缓存的内容,开始解析<jdoc:include>元素。这就标志进入了第二阶段。对于每一个找到的jdoc元素,对 应的渲染类将被自动加载,并且调用这个类的render方法,进行渲染。渲染类输出的内容将会替换<jdoc :include>中的内容。在模型的渲染类中将会触发模块的执行,并且加执行结果进行缓存。(注:所谓的渲染就是输出html代码)

7、指定的模版头被添加到模版的输出头列表中

8、系统将控制权交给JApplication对象,这个对象将会负责处理获得新的页面,并且将新的内容返回给浏览器。

这样整个输出过程就完成了。

我们需要思考的问题是,这个过程说明了什么?
对我们写代码有什么帮助?

首先这段话解释了模板文件的$this代表了什么,他代表了JDocuemnt。那么也就是说我们可以在模板的主文件中操作文档对象。比喻说得到当前文章的标题都很容易做到。另一方面,他也说明了一个执行顺序的问题。首先会执行php代码,然后才解析<jdoc:include>标签。

这是我们的网站http://www.zmax99.com,里面有很多免费的开源资料,欢迎joomla爱好者前去下载。zmax程序人-----中国joomla开发团队!

时间: 2024-08-26 23:28:56

Joomla模板开发-模版是如何执行的的相关文章

RAW模板开发必备知识

写这个主要是为了让已经熟练掌握PHP的人能够快速的掌握RAW模板开发,从而享受RAW的优越! (注:在实际开发中,最好注意RAW模板开发统一规范,那样可以增强用户体验) 废话不多说,进入正题. 需要记住的有两个要点: 1.模板类型与新建模板 2.RAW标记 3.入口文件 4.多文件模板 5.模板信息 上面几个就是RAW模板开发的关键技术点,掌握了这几项就可以进行RAW模板开发. ***************************模板类型与新建*************************

织梦模板开发 - 标签类型

模板开发帮助手册 http://help.dedecms.com/template/make/2012/0312/2299.html 模板就是混入其他东西的静态文本,混入东西叫做模板标签. 两种引擎 模板引擎分两种,解析式和编译式.弄得跟程序语言一样,所知道的是,解析式的程序语言比如一些脚本python.php,直接文本编辑器写出来,然后在解释器下就运行了.而比如c,程序编辑完之后,需要编译器下编译成二进制文件才能运行. 而这个模板套用相似的概念: 解析式模板就是将模板文本里的混入的模板标签,替

freemarker 模板开发入门

数据模型 scalars标量:从根 root 开始指定它的路径,每级之间用点来分隔. 如:whatnot.fruits sequences 序列:使用数组的方括号方式来访问一个序列的子变量. 如:animals[0].name,whatnot.fruits[1] 总结: 数据模型可以被看做是树状结构的. 标量存储单一的值,这种类型的值可以是字符串,数字,日期/时间或者是布尔值. 哈希表是存储变量和与其相关且有唯一标识名称变量的容器. 序列是存储有序变量的容器.存储的变量可以通过数字索引来检索,索

FreeMarker模板开发指南知识点梳理

freemarker是什么? 有什么用? 怎么用? (问得好,这些都是我想知道的问题) freemarker是什么? FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具. 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件. 对于像我一样之前完全对freemarker没概念的来说,这种解释还是无法释疑解惑,需要说的再详尽点. freemarker有什么用? 模板编写

前端快速开发模版

原文地址:前端快速开发模版 之前一直在开发移动端的单页面应用,而移动web对性能和效果要求是比较苛刻的,所以用的都是轻量级的框架体系.基本上是Zepto加自己开发的单页面框架,再加上若干简单的库.这样前端要加载的文件很小,修改起来也非常方便,同时这样的轻量级的体系使用gulp进行自动化管理也是非常合适的. 自从开发react项目后,对它的工程化和开发模式也是开了眼界,标准的框架体系就是重量级的react+redux+webpack.开发大型项目和后台管理系统用react,vue确实是不错的.但是

博客模板开发测试随笔

博客模板开发测试随笔博客模板开发测试随笔

博客模板开发测试随笔2

博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔 博客模板开发测试随笔

邮件模板——开发篇

其实网上有关于邮件模板开发的文章其实不少,但是都是面向开发人员的,对于非技术的同事有一定的门槛,因此我将邮件模板系列分为三个部分,以便朋友们能更快的找到自己需要的.前两篇文章 “科普篇”.“基础篇”分别面向产品设计同事和零基础的使用邮件模板的同事,下面的“开发篇”主要是面向邮件模板的前端开发的同事.“开发篇”参考了不少网上的文章,结合我在开发中遇到的一些坑,做了一些汇总: html: 1.!Doctype声明:为了向前兼容和避免某些浏览器的怪癖,使用html5的!doctype声明,格式如下:<

Joomla模块开发实战06-语言文件

Joomla模块开发实战06-语言文件 在这一节中我们来介绍一下joomla的语言文件.如何实现让我们的模块能够轻松支持多语言. 关于joomla多语言的基础,在这里就不多说.如果不清楚,请查看本站多语言相关的文章.首先我们需要新建两个语言文件.然后将语言文件包含到xml文件中,好让安装程序能够将语言文件放到正确的地方.其他的事情就交给joomla来做了. 重点看一下XML文件是如何包含语言文件的 1 2 3 4 5 6 7 8 9 10 11 12 13 14 <files> <fil