template = Kohana::Config('config.theme'); return parent::__construct($request,$response); } public function before() { // Do not template media files if ($this->request->action() === 'media') { $this->auto_render = FALSE; return; } parent::before(); // For AJAX calls, we dont need to render the complete page. if ($this->request->is_ajax()) { $this->auto_render = FALSE; return; } $this->template->content = ''; // Setup the page template $this->meta = new meta; View::bind_global('meta',$this->meta); } public function after() { if ($this->auto_render === TRUE) { // Application Title $this->meta->title = Kohana::Config('config.appname'); // Language // @todo $this->meta->language = ''; // Description $this->meta->description = sprintf('%s::%s',$this->request->controller(),$this->request->action()); // Control Line // @todo $this->template->control = ''; // System Messages line // @todo $this->template->sysmsg = ''; // Left Item // @todo $this->template->left = ''; $this->template->right = ''; $this->template->center = ''; if (! $this->response->body()) $this->response->body((string)Block::factory()); if (empty($this->template->content)) $this->template->content = $this->response->body(); // Footer // @todo $this->template->footer = ''; // Our default script(s) foreach (array('file'=>array_reverse(array( 'js/jquery-1.6.4.min.js', ))) as $type => $datas) { foreach ($datas as $data) { Script::add(array( 'type'=>$type, 'data'=>$data, ),TRUE); } } // Add our logo Style::add(array( 'type'=>'stdin', 'data'=>'h1 span{background:url('.Config::logo_uri().') no-repeat;}', )); // For any ajax rendered actions, we'll need to capture the content and put it in the response // @todo } elseif ($this->request->is_ajax() && isset($this->template->content) && ! $this->response->body()) { // @todo move this formatting to a view? if ($s = $this->_sysmsg() AND (string)$s) $this->response->body(sprintf('
%s
',$s)); // Since we are ajax, we should re-render the breadcrumb Session::instance()->set('breadcrumb',(string)Breadcrumb::factory()); $this->response->bodyadd(Script::add(array('type'=>'stdin','data'=>'$().ready($("#ajCONTROL").load("'.URL::site('welcome/breadcrumb').'",null,function(x,s,r) {}));'))); // In case there any javascript for this render. $this->response->bodyadd(Script::factory()); // Get the response body $this->response->bodyadd(sprintf('
%s
',$this->template->content)); } parent::after(); // Generate and check the ETag for this file if (Kohana::$environment === Kohana::PRODUCTION) $this->response->check_cache(NULL,$this->request); } }