EZ Publish/EZ Publish 内容提取

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

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

EZ Publish内容提取[ ]

eZ Publish 中保存的信息可以用"fetch"模板操作符提取。这个操作符会调用模块的fetch 函数。它通常被用来调用content 模块以提取节点,对象等内容。fetch 操作符只能用于定义了fetch 函数的模块。以下的模型演示了fetch 操作符的语法。

fetch( <模块>, <函数>, <参数> )

EzpublishNRTQ1.jpg

模块的fetch 函数和参数列表在模块的"function_definition.php“中定义,这个文件位于模块的目录中。

提取单个节点

下例演示了如何从数据库中提取单个节点。

{def $my_node=fetch( content, node, hash( node_id, 13 ) )}
...
{undef}

上例要求eZ Publish 从content 模块中提取单个节点。只用到了一个参数,要提取的节点ID。这个操作符会返回一个"ezcontentobjecttreenode"对象,这个对象被设置到$my_node 变量中。这个变量可以用来提取节点与节点对象的信息。例如:可以提取对象的名称,属性和发布时间等。如果节点不可用/不存在或当前用户没有权限访问它,这操作符会返回FALSE。

提取多个节点

可以从提取某个节点下的多个节点。这可以通过用"list"替换"node"作为"fetch"操作符的第二个参数来达到。

下例演示了如何提取节点13 下的所有节点。

{def $my_node=fetch( content, list, hash( parent_node_id, 13 ) )}
...
{undef}

这个操作符会返回一个"ezcontentobjecttreenode"对象的数组。"content"模块的"list" fetch 函数可以接受多个参数。这些参数是可选的且可以用来优化内容提取,例如:筛选特定的节点。下表揭示了一部分常用参数。

EzpublishNRTQ2.jpg

下例演示了如何提取节点13 下最新的10 篇文章。

{def $my_node=fetch( content,
list,
hash( parent_node_id, 13,
limit, 10,
class_filter_type, include,
class_filter_array, array( 'article' ) ) )}
...
{undef}

输出节点与对象数据[ ]

只要一个代表某个节点的"ezcontentobjectreenode"对象在模板中可用,就可以用它来输出关于节点和节点对象的内容。以下内容演示了如何提取最常用的数据。

一般信息

对象名

{$node.name|wash}

对象名可以从节点直接访问(换言之,不需要用$node.object.name)。"wash"操作符确保输出不包含任何破坏HTML 的字符且/或序列。

对象最后修改日期/时间

{$node.object.modified|l10n( 'shortdatetime' )}

因为修改时间是一个UNIX 时间戳,它必须被格式化后输出。可以用"l10n"操作符输出本地化的日期/时间。

对象属主的名称

{$node.object.owner.name|wash}

最后修改者的名称

{$node.object.current.creator.name|wash()}

对象的类名

{$node.object.class_name|wash()}

对象属性

可以通过"data_map"方法访问对象的属性。这个方法返回"ezcontentobjectattribute"对象的哈希表。每个对象代表一个属性。键值为属性标识符。下例演示了如何提取"first_name"属性。

{$node.object.data_map.first_name}

上例不产生任何输出,因为请求的数据需要被格式化。有两种方法输出属性的内容:

• 原始输出(".output")

• 格式化输出("attribute_view_gui"函数)

原始输出与格式化输出的区别在于格式化输出通过一个模板输出属性的内容。原始输出只是在同一个模板内简单的输出属性内容。永远应该用"attribute_view_gui“函数输出属性内容。原始输出只有在必要的情况下使用(例如:当用IF 语句检查某个属性的值的时候)。

原始输出

原始输出正如其定义一样:输出属性内保存的原始内容。实际的语法取决于属性的数据类型。大部分情况下,可以用".output"输出原始数据。

一般解决方案

下例演示了如何输出"my_attribute"的内容

{$node.object.data_map.my_attribute.content}

XML

下例演示了如何输出一个XML 块"my_xml"的内容。

{$node.object.data_map.my_xml.content.output.output_text}

图片

下例演示了如何输出"my_image"内保存的图片。

<img src="{$node.object.data_map.my_image.content[image_size].full_path}" ... />

格式化输出

每种数据类型都有一套用于不同上下文中显示内容的模板。每种数据类型至少有两种模板:"view"模板和"edit"模板。"view"模板用于显示属性内容,"edit"模板用于编辑数据。默认的数据类型模板位于"design/standard/templates/content/datatype"目录。

"attribute_view_gui"函数允许用数据类型的"view"模板来显示属性。下例演示了如何用这个函数。

{attribute_view_gui attribute=$node.object.data_map.name_of_any_attribute}

上例将会正确生成任何属性的内容(与数据类型无关)。

参考来源[ ]

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工作流