Dalej mi to jakoś nie działa, nie rozumiem jakie parametry mam bym dać do foreach()?
Wymyśliłem coś takiego i parę innych sposobów:
public function action_index() {
//$view = NULL;
/* $view = View::factory('forum')
->bind('category', $category)
->bind('last_post_image', $last_post_image)
->bind('board_name', $board_name)
->bind('board_info', $board_info)
->bind('topic', $topic)
->bind('post', $post);*/
$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;
'category' => $category,
'' => '',
'' => '',
'' => '',
'' => '',
'' => '',
);
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)));
$access = '0';
switch($orm_topic->powers)
{
case '4':
if(Auth::instance()->logged_in('admin'))
{
$access = '1';
}
break;
case '3':
if(Auth::instance()->logged_in('clan'))
{
$access = '1';
}
break;
case '2':
if(Auth::instance()->logged_in('clan'))
{
$access = '1';
}
break;
case '1':
if(Auth::instance()->logged_in('login'))
{
$access = '1';
}
break;
}
if($access)
{
$board_name = HTML::anchor('forum/board/'.$orm_board->id.'/'.URL::title($orm_board->board_name, '-', TRUE).'/',$orm_board->board_name);
}
else
{
$board_name = $orm_board->board_name;
}
$board_info = $orm_board->info;
$topic = $orm_board->topics;
$post = $orm_board->posts;
'' => '',
'last_post_image' => $last_post_image,
'board_name' => $board_name,
'board_info' => $board_info,
'topic' => $topic,
'post' => $post,
);
}
}
}
foreach($dupa as $view){
$view .= View::factory('forum')
->bind('category', $category)
->bind('last_post_image', $last_post_image)
->bind('board_name', $board_name)
->bind('board_info', $board_info)
->bind('topic', $topic)
->bind('post', $post);}
$this->template->content = $view;
$this->template->title = __('Forums');
$this->template->viewmode = 'full';
}
Tu wyświetla to samo co wcześniej więc zmienne są nadpisywane, umieszczałem też "$view .= ..." w miejscu "$dupa2 .= array(..." co skutkowało wyświetleniem się nad każdym boardem nazwy kategorii. Powinno być wyświetlane na zasadzie kategoria1:board1,board2 kategoria2:board3,board4. Przy umieszczaniu tych wszystkich ifów, foreach i switchy w widoku wszystko chodziło prawidłowo. Prosił bym o jeszcze jakieś podpowiedzi nie chce wracać do starego rozwiązania z masą kodu PHP w widoku.