EZ Publish/EZ Publish Pagelayout页头信息

来自站长百科
跳转至: 导航、​ 搜索

EZ Publish | EZ Publish安装与卸载 | EZ Publish的使用 | EZ Publish常见问题 | EZ Publish其他

pagelayout综述[ ]

pagelayout 是主模板。除了其他以外内容外,它决定了站点的全局外观。pagelayout 模板必须被命名为"pagelayout.tpl"。它必须被放置在某个界面的"templates"目录下。如果eZ Publish 在当前界面(有站点入口指定)中找不到这个模板,它会使用备选界面中的第一个匹配的pagelayout 模板。下图演示了"example"界面中的pagelayout 模板的位置。

EzpublishPO1.jpg


Pagelayout 包含HTMLHEADBODY 标签(外围HTML 框架)。此外,它还决定了站点的全局外观。出了其他用途外,它被用来描述所有页面的视觉结构(主版式,logo,主菜单,页脚等)。下例演示了一个最基本的pagelayout。

<!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" xml:lang="en" lang="en">
<head>
<style type="text/css">
@import url({'stylesheets/core.css'|ezdesign});
@import url({'stylesheets/debug.css'|ezdesign});
</style>
{include uri='design:page_head.tpl'}
</head>
<body>
{$module_result.content}
<!--DEBUG_REPORT-->
</body>
</html>

文档类型

pagelayout 的第一行用来定义页面的文档类型。根据HTML 和XHTML 标准,DOCTYPE("document type declaration"的缩写)用来告知浏览器与语法验证引擎所使用的(X)HTML 文档类型。这个信息必须被放置在每个WEB 页面的第一行,因此pagelayout 的第一行必须是DOCTYPE。为了确保页面被正确渲染与页面的兼容性,DOCTYPE 定义是必不可少的一个关键元素。一个DOCTYPE包含一个完整的URL 字段,这个URL 告知浏览器用遵循标准的模式渲染页面,根据标准来对待(X)HTML,CSSDOM结构。缺失的,不完整的或过期的DOCTYPE 会导致主流的浏览器运行于所谓的“扭曲模式”。在这种模式下,浏览器假定文档是基于老式的,不规范的标记和代码以及20 世纪后期混乱的业界规范来书写的。换言之,页面很可能不会根据现有的工业标准来渲染,因而当然也不规范。

html 标签

HTML 标签封装了真实WEB 页面的标记内容。处标签本身外,上列中的HTML 标签还包含了一个到XHTML 规范的URL。XHTML 是一个现存和未来文档的类型和模块的家族。它可以被用来重新实现,简化和扩展HTML4。XHTML 家族基于XML,这意味着他们可以与基于XML 的用户代理联动。

在处理文档时,确定内容所使用的自然或官方语言通常会比较有用。"lang"和"xml:lang"属性用来指定整个HTML 元素的语言。xml:lang 的属性值的优先级更高。语言值应该被设置为整个站点使用的语言。语言代码在"ISO 3166-1"(以及与之相关的ISO 3166-1-alpha-2)标准中定义。

head 标签

head 标签包含文档本身的信息。这里的信息不会在浏览器中显示。只有title 标签的内容会在浏览器窗口的标题栏内显示。head 标签通常包含关于诸如:使用哪些CSS 文件,文档的简介,关键字之类的信息。

式样表

上列中的pagelayout 用到两个CSS 文件:"core.css"和"debug.css"。大括号封装的代码为eZ Publish 特有的代码。引号里的文本通过管道操作符传送给"ezdesign"模板操作符。这个操作符将当前界面(在"SiteDesign"中指定)目录的路径添加到文本之前。这个技术确保指向CSS 文件的路径总是正确的,与所使用的访问方法无关。例如:如果当前的界面为"my_design"并且它包含一个CSS 文件"example.css",系统会生成以下的输出。

 @import url("/design/my_design/stylesheets/example.css");

"core.css"和"debug.css"属于"standard"界面。不需要在自定义界面中包含这些文件。如果eZ Publish 在当前/自定义界面中找不到指定的文件,它会自动使用"standard"界面中的文件。因为备选系统,上例中关于CSS 部分的代码很可能会被生成如下输出:

...
<style type="text/css">
@import url("/design/standard/stylesheets/core.css");
@import url("/design/standard/stylesheets/debug.css");
</style>
...

core 式样表

"core.css"定义了一套用于一般HTML 元素与eZ Publish 特有的CSS 类的标准风格(字体风格,尺寸,边距,等)。eZ Publish 特有的CSS 类在标准模板中使用。一个站点如果继承使用默认的模板,就应该有"core.css"。否则,缺失的风格定义会导致很多元素无法正确渲染。永远不要修改标准的"core.css"。如果"core.css"中的某些风格不符合需求,可以把一个修改过的"core.css"放置在自定义界面中。当时更好的做法是创建一个新的CSS 文件来重设"core.css"中那些不符合需求的风格。

debug 式样表

"debug.css"包含用于格式化调试信息的风格定义。当调试输出被启用时,调试信息显示在页面底端。"core.css"只在开发过程中需要(特别是需要显示调试信息时),因此它可以在网站上线后被删除。

文档信息

系统可以自动生成页面本身的一些信息(标题,meta 标签,关键字等)。这可以通过包含页头模板("page_head.tpl")来完成。这个模板位于"standard"界面的"templates"目录中。如果eZ Publish 在当前/自定义界面中找不到这个模板,它会自动使用"standard"界面中的文件。

body 标签

body 标签以有序的方式定义了文档的主体。文档的主体包含WEB 页面真正内容(文本,图片,等)的标记。eZ Publish 的pagelayout 至少应该包含来自所请求模块的结果。

模块结果

对于每个客户端请求,eZ Publish 自动生成一个称为"module_result"的数组。这个数组只在pagelayout 模板中可用。它包含了所有关于运行的模块,执行的视图,输出的内容等方面的信息。实际的输出(例如:一篇新闻文章的内容)可以通过访问$module_result 数组的"content"元素在pagelayout 中得到显示。语法如下:

 {$module_result.content}

当生成pagelayout 时,{$module_result.content}会被替换为真正的输出结果。请参阅“EZ Publish Pagelayout变量”条目了解更多。

调试信息

典型pagelayout 模板的最后一部分是一段HTML 注释代码:


如果调试信息被启用,在处理pagelayout 时,eZ Publish 会把这段注释代码替换为实际的调试信息。换言之,调试信息会被作为内容的一部分包含到生成的页面中,因此不会破坏HTML 结构,也不会造成页面的不规范。eZ Publish 的调试输出符合XHTML1.0 Transitional 规范,因而调试输出也是规范的。

页头信息[ ]

标准界面中包含一个页头模板,它可以用来自动生成重要的页头标签(包含在每个页面的head 标签内)。标准页头模板(design/standard/templates/page_head.tpl)的输出包括以下标签:

• title 标签

• meta 标签

• link 标签

下例演示了标准页头模板的输出:

<title>Current / Parent / Top - Site name</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="Content-language" content="eng-GB" />
<meta name="author" content="eZ Systems" />
<meta name="copyright" content="eZ Systems" />
<meta name="description" content="Content Management System" />
<meta name="keywords" content="cms, publish, e-commerce, content management, development
framework" />
<meta name="MSSmartTagsPreventParsing" content="TRUE" />
<meta name="generator" content="eZ publish" />
<link rel="Home" href="/" title="Front page" />
<link rel="Index" href="/" />
<link rel="Top" href="/" title="Current / Parent / Top - Site name" />
<link rel="Search" href="/content/advancedsearch" title="Search Site name" />
<link rel="Shortcut icon" href="/design/standard/images/favicon.ico" type="image/x-icon" />
<link rel="Copyright" href="/ezinfo/copyright" />
<link rel="Author" href="/ezinfo/about" />
<link rel="Alternate" href="/layout/set/print/content/view/full/64" media="print"
title="Printable version" />

title 标签

title 标签的内容取决于当前显示的位置(内容节点树或系统本身的位置)与站点的名称。当前显示的元素的路径被倒序排列,因此当前元素成为标题的第一部分。路径的各个部分由"/"分割。当某个节点被显示时,路径实际上是当前节点所有祖先节点的名称再追加上当前节点的名称。当某个系统功能被调用时(例如:user 模块的login 视图:"/user/login"),路径很可能是"模块/视图"的倒序排列。站点名称被追加到路径的最后,由"-"分割。站点名称可以在"site.ini"的重设文件中的"SiteName"配置选项中指定。上例演示了当显示一个节点时页头模板的输出。当前节点封装的对象名为"Current"。其他对象的名称为"Parent"和"Top"。站点名称为"Site name"。

meta 标签

除WEB 页面的真实数据外,页面的HTML 还应包含文档本身的信息。这是通过使用meta 标签来达到的。由meta 标签给出的信息通常不会在浏览器中显示。然而,这些meta 标签的内容会被浏览器和检索引擎用来对WEB 页面的内容建立索引与排名。标准的页头模板输出最常用的meta 标签。它包括以下三类标签:

HTTP-EQUIV meta 标签

• 一般meta 标签

• 附加meta 标签

HTTP-EQUIV meta 标签

具有HTTP-EQUIV 属性的meta 标签与HTTP 信息头的作用相同。这些标签通常被用来控制浏览器如何解释文档。这种形式的标签与使用HTTP 信息头的作用相同。某些WEB 服务器会自动将这些标签的内容翻译为真正的HTTP 信息头。页头模板中的HTTP-EQUIV meta 标签确保浏览器(与检索引擎)明了文档使用的字符集和语言。语言和字符集是由eZ Publish 根据站点的语言和字符集自动生成的。

一般meta 标签

一般meta 标签可以揭示文档本身的信息。尽管规范并没有规定哪些meta 标签必须被包括,包含例如:作者,站点简介,版权声明,关键字等信息确是一种惯例。通过使用"site.ini"重设文件中的"MetaDataArray[...]",站点管理员可以设定一套自定义的一般meta 标签。eZ Publish 将会循环显示这些meta 标签的名称和值。上例演示了没有自定义meta 标签时候,系统默认的输出。

附加meta 标签

最后一组被标准页头模板设置的meta 标签禁用"智能标签"并揭示了生成输出的软件的名称。

link 标签

head 标签内的link 标签允许可以将文档与其他文档关联起来。这是通过rel 和rev 属性来完成的。"rel"链接用来建立关联,"rev"链接用来建立反向关联。某些浏览器用这些标签来生成快速导航栏。link 标签包含在标准界面的"templates"目录下的"links.tpl“中。标准页头模板使用"links.tpl"模板。标准页头模板的默认输出包含了一组基本的link 标签,可以用来导航到站点的不同部分。下例演示了页头模板生成的标签:

EzpublishPO2.jpg

link 参数

当引入页头模板的时候,可以通过传送参数"enable_link=false()"来禁用这些link 标签。

 {include uri='design:page_head.tpl' enable_link=false()}

指向替换/打印机友好版本的link 标签可以在导入页头模板时通过传送参数"enable_print=false()"来达到。

 {include uri='design:page_head.tpl' enable_print=false()}

参考来源[ ]

EZ Publish使用手册导航

EZ Publish安装卸载

EZ Publish正常安装 | EZ Publish手动安装 | EZ Publish自动安装 | EZ Publish安装向导 | EZ Publish虚拟主机设置 | EZ Publish使用扩展 | EZ Publish的卸载

EZ Publish的使用

模板使用:

EZ Publish节点模板 | EZ Publish系统模板 | EZ Publish Pagelayout页头信息 | EZ Publish Pagelayout变量 | EZ Publish 模板注释 | EZ Publish 模板变量类型 | EZ Publish 模板变量用法 | EZ Publish 调查数组和对象 | EZ Publish 模板控制结构 | EZ Publish 函数与操作符 | EZ Publish URL处理 | EZ Publish 内容提取 | EZ Publish 模板重设系统
系统功能: EZ Publish 系统记帐 | EZ Publish 策略功能 | EZ Publish 多语言使用(一) | EZ Publish 多语言使用(二) | EZ Publish 集群的使用 | EZ Publish 安装包的使用 | EZ Publish Cronjob脚本的使用 | EZ Publish 多货币功能 | EZ Publish 通知功能
其他功能: EZ Publish 增值税(VAT)系统 | EZ Publish 改进的商品配送系统 | EZ Publish 多语言URL别名 | EZ Publish 登录后高级重定向 | EZ Publish 检索引擎 | EZ Publish WebDAV | EZ Publish 视图缓存

EZ Publish常见问题

EZ Publish 安装常见问题 | EZ Publish 使用常见问题

EZ Publish其他

EZ Publish内部结构 | EZ Publish内容与界面 | EZ Publish内容管理(一) | EZ Publish内容管理(二) | EZ Publish配置模型 | EZ Publish模块与视图 | EZ Publish URL 翻译 | EZ Publish 界面 | EZ Publish访问控制 | EZ Publish网络商店 | EZ Publish工作流