First let's add the CSS. I'm using the CSS reset from YUI which is rather short and gets the job done.
/assets/css/style.css
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td {margin:0;padding:0;} table {border-collapse:collapse;border-spacing:0;} fieldset,img {border:0;} address,caption,cite,code,dfn,em,strong,th,var {font-style:normal;font-weight:normal;} ol,ul {list-style:none;} caption,th {text-align:left;} h1,h2,h3,h4,h5,h6 {font-size:100%;font-weight:normal;} q:before,q:after {content:'';} abbr,acronym { border:0;} #wrapper{margin:0 10%; background-color:#f6f6ef} #header{background-color:#fcaf3e;padding:.2em;color:#000;margin:1em 0 0} #header a{color:#000} #content{background-color:#f6f6ef; padding:1em} .fr{float:right} .ar{text-align:right} body {color:#828282;font-family:Verdana;font-size:10pt;} .cohead, .cohead a{color:#828282; font-size:9pt} .comment{padding:.4em} .comment, .comment a{color:#000; font-size:9pt} textarea {color:#000000;font-family:Courier;font-size:10pt;} #cform{padding:1em 0} table td{padding:.1em} .vote a{color:#828282; text-decoration:none} .title span{font-size:8pt} .nbody{padding:1em 0}
Looks like the views loaded from views doesn't share the variables. That's why for now I'll define the $site_title as global variable in defaulttemplate.php
classes/controller/defaulttemplate.php
public function after() { /* * Set the page title to $site_title if title is not set, * otherwise create title 'path' */ if ($this->template->title){ $this->template->title = $this->template->title.' » '.$this->site_title; } else { $this->template->title = $this->site_title; } View::bind_global('site_title', $this->site_title); parent::after(); }
The header_tpl.php file becomes:
views/blocks/header_tpl.php
<div id="header"> <?php echo '<b>'.html::anchor('/', $site_title).'</b> | '; echo html::anchor('submit', __('submit')).' | '; echo html::anchor('latest', __('latest')); echo '<span class="fr">'; echo html::anchor('#', 'user'); echo '</span>'; ?> </div>
To make the links work without index.php, change the bootstrap.php file (add empty index_file element):
Kohana::init(array( 'base_url' => '/', 'index_file' => '', ));
Now the result should look like that:
Let's also change the look and functionality of the news:
views/pages/news/index_tpl
<?php if ($news) { foreach ($news as $row) { echo '<table>'; echo '<tr>'; echo '<td class="vote">'.html::anchor('#', '▴').'</td>'; echo '<td class="title">'; echo html::anchor('news/'.$row['id'], html::entities($row['title'])); echo '</td>'; echo '</tr>'; echo '<tr>'; echo '<td></td>'; echo '<td class="cohead">'; echo $row['points'].' by '.html::anchor('user/'.$row['user_id'], html::entities($row['user_name'])).' '.date('m.d.Y H.y', $row['created']).' | '.html::anchor('news/'.$row['id'], $row['comments'].__(' comments')); echo '</td>'; echo '</tr>'; echo '</table>'; } } ?>
And the result is:
Don't forget that the code for this project can be downloaded from: http://code.google.com/p/kohana-tutorial/