drarok/kotal

此软件包最新版本(dev-develop)没有可用的许可证信息。

PHPTAL 模板用于 Kohana

维护者

详细信息

github.com/Drarok/KOtal

源代码

安装: 20

依赖项: 1

建议者: 0

安全性: 0

星级: 1

关注者: 2

分支: 2

类型:kohana-module

dev-develop 2013-11-08 00:40 UTC

This package is auto-updated.

Last update: 2024-08-29 04:08:56 UTC


README

KOtal 是一个 Kohana 3.3 的模块,它将 PHPTAL 实现为一个视图处理器。

PHPTAL 是 Zope 页面模板(ZPT)的 PHP 实现。简单来说,PHPTAL 是一个 XML/XHTML 模板库,用于 PHP。

最初由 Hanson Wong 创建,此分支增加了以下功能

  • Kohana 3.3 的支持。
  • 通过 Composer 安装的支持。
  • 默认文件扩展名为 xhtml。

通过 Composer 安装

composer.json

	{
	    "require": {
	        "drarok/kotal": "dev-develop"
	    }
	}

bootstrap.php

	Kohana::modules(array(
		'kotal' => MODPATH . 'kotal',
	));

用法

在正常的 application/views 目录中创建视图,但使用 xhtml 扩展名,并遵循 TAL 语法和规则。

KOtal 还将 i18n 请求路由到 Kohana 的原生方法。

下面有一些“高级”选项,将在以下示例中展示。

示例

首先,创建一个名为 taltest.xhtml 的新视图文件,并将其放置在 views/ 目录下。

<?xml version="1.0"?>
<tal:block
	xmlns="http://www.w3.org/1999/xhtml"
	xmlns:tal="http://xml.zope.org/namespaces/tal"
	xmlns:metal="http://xml.zope.org/namespaces/metal"
	xmlns:i18n="http://xml.zope.org/namespaces/i18n"
	xmlns:phptal="http://phptal.org/ns/phptal"
>
	<h1 tal:content="title">Sample Title - Not Output</h1>
	<p tal:repeat="person people" tal:content="person">Example Name - Not Output</p>
</tal:block>

然后在您的控制器中,添加以下代码以生成并显示您的视图。

$view = View::factory('taltest');
$people = array(
	'Alan',
	'Bob',
	'Jane',
	'Maria'
);
$view->title = 'People';
$view->people = $people;

$this->response->body($view);

访问此操作时,您应该看到

People

Alan
Bob
Jane
Maria

现在假设我们不想用 'xhtml' 扩展名存储 TAL 视图。我们想使用 'html'。只需更改视图的扩展名并在 config/kotal.php 中更改选项。

'ext' => 'html',

这是一个全局设置,将影响所有通过 KOtal 生成的视图。

接下来,我们想更改 KOtal 输出文档的方式。很简单。有两个相关的方法。

$view->set_output_mode(PHPTAL::XHTML)
     ->set_encoding('utf-8');

这些是默认设置,有关可用选项,请参阅 PHPTAL 文档。

假设您正在将 TAL 从中间切换,并且一些视图尚未转换。不用担心,我们可以仅按视图禁用 TAL 处理。

$view->use_tal(FALSE);

最后,其他在 Kohana 默认处理器中出现的功能也应该在 KOtal 中工作,例如方法链和设置渲染前的视图文件路径。因此,我们的最终示例代码可以是

$view = View::factory()
	->set_output_mode(PHPTAL::XHTML)
	->set_encoding('utf-8')
	->set(array(
		'people' => array(
			'Alan',
			'Bob',
			'Jane',
			'Maria'
		),
		'title' => 'People'
	))
	->set_filename('taltest');
$this->response->body($view);

注意事项

由于 KOtal 覆盖了 Kohana 的默认视图处理器,因此使用“正常”视图的模块最初会失败。您可以通过在 config/kotal.php 中使用控制器排除列表来修复此问题。只需将控制器名称(在 routes 中定义)放入。

'exclude' => array(
	'codebench',
	'unittest',
	'userguide',
),

或者,您可以在 config/kotal.php 中全局禁用 KOtal。

'enabled' => FALSE,

然后,在将每个视图转换为 TAL 时,您可以针对该视图开启 KOtal。

$view->use_tal(TRUE);

一旦所有视图都已升级以使用 PHPTAL,您就可以全局开启 KOtal 并删除所有 use_tal(TRUE) 调用。

随 Kohana 3.3 默认提供的模块已包含在默认 KOtal 配置中。

其他

KOtal 使用新 BSD 许可证授权。感谢 zombor 的 KOstache 为初始灵感和命名提供了灵感。

PHPTAL 使用 GNU Lesser General Public License 的条款授权。

有关创建 TAL 视图的更多具体文档,请参阅 PHPTAL 网站