我正在使用 Kohana 3,它是模板控制器。我的主站点模板控制器目前看起来像这样:
<?php defined('SYSPATH') or die('No direct script access.');
abstract class Controller_SiteTemplate extends Controller_Template
{
public function before()
{
parent::before();
// Initialize default template variables
$this->template->styles = Kohana::config('site.styles');
$this->template->scripts = Kohana::config('site.scripts');
$this->template->title = '';
$this->template->content = '';
}
}
然后在我的模板视图中我这样做:
<?php # Styles
foreach($styles as $file => $media)
echo HTML::style($file, array('media' => $media)).PHP_EOL ?>
<?php # Scripts
foreach($scripts as $file)
echo HTML::script($file).PHP_EOL ?>
这工作正常。问题是它需要将样式和脚本文件添加到控制器中,而实际上不必关心这些。如果视图是由我以外的其他人完成的,这也很麻烦,因为他们不得不在控制器上胡闹,只是为了添加一个新的样式表或一个新的脚本文件。如何以更好的方式做到这一点?
只是为了澄清,我想知道的是如何处理特定于页面的样式表和脚本。默认和站点范围的我从配置文件中获取或直接放在模板视图中没有问题。我的问题是如何以一种好的方式为特定页面添加自定义页面。