Jako że moje forum coraz bardziej się rozrasta postanowiłem przenieść wszystkie obliczenia do classy, a w widoku zostawić same zmienne:
public function action_index() {
$this->template->content = View::factory('forum')
->bind('category', $category)
->bind('last_post_image', $last_post_image);
$this->template->title = __('Forums');
$this->template->viewmode = 'full';
$orm_categories = ORM::factory('forumcategory')
->order_by('sort','ASC')
->find_all();
$orm_boards = ORM::factory('forumboard')
->order_by('forumcategory_id','ASC')
->find_all();
$orm_topic = ORM::factory('forumtopic')
->find();
$orm_user = ORM::factory('user')
->where('id','=',Auth::instance()->get_user())
->find();
foreach ($orm_categories as $orm_category)
{
$category = $orm_category->category_name;
foreach ($orm_boards as $orm_board)
{
if($orm_category->id == $orm_board->forumcategory_id)
{
$orm_topic->id = $orm_board->id;
if($orm_topic->last_post > $orm_user->last_login)
{
$readed = 'new_';
}
else
{
$readed = 'no_';
}
$last_post_image = HTML
::anchor('forum/board/'.$orm_board->id.'/'.URL
::title($orm_board->board_name, '-', TRUE).'/', HTML
::image('media/images/forum/'.$readed.'post.png', array('alt' => $orm_board->board_name)));
}
}
}
<h1><?php echo $category ?></h1> <?php echo $last_post_image ?>
<?php echo ''?>
<?php echo ''?>
<?php echo ''?>
W wyniku wyświetla mi tylko ostatnią kategorię, co robię źle? Jakieś podpowiedzi jak to wykonać?
I drugie pytanie jak wyświetlić role obecnie zalogowanego użytkownika? Jest jakaś szybka metoda Auth na to? czy trzeba pobierać id i robić zapytanie do bazy?
Ten post edytował marcin86s 22.11.2011, 18:53:32