Я использую 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 ?>
Это работает хорошо. Проблема в том, что он требует добавления файлов стилей и скриптов в контроллер, которые не должны заботиться об этом. Это также создает трудности, если представления выполняются кем-то другим, кроме меня, поскольку им придется дурачиться с контроллером, просто чтобы добавить новую таблицу стилей или новый файл сценария. Как это можно сделать лучше?
Просто чтобы прояснить, меня интересует, как обращаться с таблицами стилей и сценариями для конкретных страниц. По умолчанию и для всего сайта у меня нет проблем с загрузкой из файла конфигурации или просто положить непосредственно в представление шаблона. Моя проблема в том, как правильно добавить пользовательские для определенных страниц.