Zope页面模板简介
Zope页面模板简介
http://www.315ok.org/blogfolder/8
http://www.315ok.org/logo.png
Zope页面模板简介
Zope页面模板简介
本帖最后由 adam(三人行) 于 2011-9-3 19:38 编辑
Zope页面模板介绍Zope页面模板(Zope Page Template)、脚本技术,以及表单处理方法
<p>Zope页面模板(Page Template)</p>
生成动态页面, 用于数据的呈现
类似于asp/jsp/php页面
基于xhtml, 是xhtml的一个扩展
<p>三种名字空间</p>
tal: 条件、循环、异常
metal: 宏操作(类似函数)
i18n: 国际化和本地化(中文支持)
<p>TAL: 模板属性语言</p>
tal:define:定义新变量
tal:condition: 条件 (if)
tal:repeat:循环 (for)
tal:content/tal:replace:标记: 填写内容
tal:attributes: 标记: 填写属性
tal:omit-tag:去除标记
tal:on-error:异常处理 (except)
<p>执行顺序</p>tal:condition 优先于 tal:repeat
有条件循环:
<tal:block tal:repeat="i python:range(10)"> <div tal:condition="python:i>5" tal:content="i" /></tal:block>
<p>tal:block : 块标记</p>
最终结果中会忽略该标记
可使用任意的说明性标记, 如:
tal:anonymous
tal:login
对metal也适用
<p>TAL: 绑定变量(1)</p>
request:客户请求的封装
options:调用的时候传递的变量
template:页面模板自身
repeat:循环变量
context/here
user:登录用户
modules:模块
<p>TAL: 绑定变量(2)</p>
container: 页面所在的容器
root:网站根
nothing: None
default:html中的默认值
attrs:属性的默认值
CONTEXTS:所有可用的内置变量,即本清单
<p>METAL: 宏属性语言</p>
宏macro:函数, 定义可重复使用的页面部件
槽slot:在macro中定义,函数的参数
<p>METAL: Plone的主模板</p>
<p>metal:use-macro: 使用Plone的主模板宏</p>metal:use-macro:使用宏, 宏保存在模板的macros字典变量中:
<html metal:use-macro="context/main_template/macros/master"></html>
<p>metal:fill-slot:填充Plone的内容区槽</p>在内容区加入新的内容(fill-slot只能在use-macro中使用):
<html metal:use-macro="context/main_template/macros/master"> <div metal:fill-slot="main"> 我自己的内容 </div></html>
<p>metal:define-macro: 定义一个宏</p>示例:定义一个google广告宏:
<div metal:define-macro="ads"> [google ads scripts]</div>
<p>metal:define-slot:给宏增加一个槽</p>define-slot只能在define-macro中使用:
<div metal:define-macro="ads"> [google ads scripts] <div metal:define-slot="footer"> add more info here </div></div>
<p>I18N: 翻译文件.po</p>
位置:实例或者产品的i18n目录
msgid ""msgstr """Project-Id-Version: rpIntranet 1.0\n""POT-Creation-Date: 2003-01-03 12:33:09 -0200\n""PO-Revision-Date: 2003-01-03 12:33:09 -0200\n""Last-Translator: Junyong Pan <panjy@zopechina.com>\n""Language-Team: zopechina.com <info@zopechina.com>\n""MIME-Version: 1.0\n""Content-Type: text/plain; charset=gbk\n""Content-Transfer-Encoding: 8bit\n""Plural-Forms: nplurals=1; plural=0;\n"“Language-code: zh\n""Language-name: Chinese\n""Preferred-encodings: utf-8\n""Domain: plone\n""X-Is-Fallback-For: zh-cn zh-hk zh-mo zh-sg\n"msgid "label_category"msgstr "分类"
<p>I18N: 国际化扩展属性:</p>
i18n:domain,
i18n:translate
i18n:attributes
i18n:name
msgid "batch_previous_x_items"msgstr "前${number}项"
<p>小结:Zope页面模板</p>
基于xhtml
主要扩展
tal: 基本语法
metal: 块操作
i18n: 国际化
Zope页面模板介绍Zope页面模板(Zope Page Template)、脚本技术,以及表单处理方法
<p>Zope页面模板(Page Template)</p>
生成动态页面, 用于数据的呈现
类似于asp/jsp/php页面
基于xhtml, 是xhtml的一个扩展
<p>三种名字空间</p>
tal: 条件、循环、异常
metal: 宏操作(类似函数)
i18n: 国际化和本地化(中文支持)
<p>TAL: 模板属性语言</p>
tal:define:定义新变量
tal:condition: 条件 (if)
tal:repeat:循环 (for)
tal:content/tal:replace:标记: 填写内容
tal:attributes: 标记: 填写属性
tal:omit-tag:去除标记
tal:on-error:异常处理 (except)
<p>执行顺序</p>tal:condition 优先于 tal:repeat
有条件循环:
<tal:block tal:repeat="i python:range(10)"> <div tal:condition="python:i>5" tal:content="i" /></tal:block>
<p>tal:block : 块标记</p>
最终结果中会忽略该标记
可使用任意的说明性标记, 如:
tal:anonymous
tal:login
对metal也适用
<p>TAL: 绑定变量(1)</p>
request:客户请求的封装
options:调用的时候传递的变量
template:页面模板自身
repeat:循环变量
context/here
user:登录用户
modules:模块
<p>TAL: 绑定变量(2)</p>
container: 页面所在的容器
root:网站根
nothing: None
default:html中的默认值
attrs:属性的默认值
CONTEXTS:所有可用的内置变量,即本清单
<p>METAL: 宏属性语言</p>
宏macro:函数, 定义可重复使用的页面部件
槽slot:在macro中定义,函数的参数
<p>METAL: Plone的主模板</p>
<p>metal:use-macro: 使用Plone的主模板宏</p>metal:use-macro:使用宏, 宏保存在模板的macros字典变量中:
<html metal:use-macro="context/main_template/macros/master"></html>
<p>metal:fill-slot:填充Plone的内容区槽</p>在内容区加入新的内容(fill-slot只能在use-macro中使用):
<html metal:use-macro="context/main_template/macros/master"> <div metal:fill-slot="main"> 我自己的内容 </div></html>
<p>metal:define-macro: 定义一个宏</p>示例:定义一个google广告宏:
<div metal:define-macro="ads"> [google ads scripts]</div>
<p>metal:define-slot:给宏增加一个槽</p>define-slot只能在define-macro中使用:
<div metal:define-macro="ads"> [google ads scripts] <div metal:define-slot="footer"> add more info here </div></div>
<p>I18N: 翻译文件.po</p>
位置:实例或者产品的i18n目录
msgid ""msgstr """Project-Id-Version: rpIntranet 1.0\n""POT-Creation-Date: 2003-01-03 12:33:09 -0200\n""PO-Revision-Date: 2003-01-03 12:33:09 -0200\n""Last-Translator: Junyong Pan <panjy@zopechina.com>\n""Language-Team: zopechina.com <info@zopechina.com>\n""MIME-Version: 1.0\n""Content-Type: text/plain; charset=gbk\n""Content-Transfer-Encoding: 8bit\n""Plural-Forms: nplurals=1; plural=0;\n"“Language-code: zh\n""Language-name: Chinese\n""Preferred-encodings: utf-8\n""Domain: plone\n""X-Is-Fallback-For: zh-cn zh-hk zh-mo zh-sg\n"msgid "label_category"msgstr "分类"
<p>I18N: 国际化扩展属性:</p>
i18n:domain,
i18n:translate
i18n:attributes
i18n:name
msgid "batch_previous_x_items"msgstr "前${number}项"
<p>小结:Zope页面模板</p>
基于xhtml
主要扩展
tal: 基本语法
metal: 块操作
i18n: 国际化