public function indexAction() { $request = $this->getRequest(); $board_id = $request->getRequest('board_id'); $user_id = $request->getRequest('user_id'); $board_info = new Model_Boards_Board($board_id); if (!$board_info->count()) { $this->forward('error', 'error404'); } if (!Helper_Config::get('config_board_description_enable')) { $board_info['board_description'] = false; } $board_users_allow = array_filter(explode(',', $board_info['board_users_allow'])); $board_users = array_merge(array($board_info['user_user_id']), array_filter($board_users_allow)); if (!$board_info['board_public'] && !in_array(JO_Session::get('user[user_id]'), $board_users)) { $this->forward('error', 'error404'); } if (!$board_info['board_category_id'] && JO_Session::get('user[user_id]') == $board_info['user_user_id']) { JO_Registry::set('board_category_change', $board_info); } $this->view->board_users = array(); foreach ($board_users as $user_id) { $user_info = new Model_Users_User($user_id); if ($user_info->count()) { $user_avatars = Helper_Uploadimages::userAvatars($user_info); $this->view->board_users[] = array('fullname' => $user_info['fullname'], 'avatars' => $user_avatars, 'href' => WM_Router::create($request->getBaseUrl() . '?controller=users&action=profile&user_id=' . $user_info['user_id'])); } } ///disable follow board for board users $this->view->is_enable_follow = JO_Session::get('user[user_id]'); //if(in_array(JO_Session::get('user[user_id]'), $board_users)) { if (JO_Session::get('user[user_id]') == $board_info['board_user_id']) { $this->view->is_enable_follow = false; } /* v2.2 */ if (Helper_Config::get('config_enable_follow_private_profile') && !$board_info['user_enable_follow']) { $this->view->is_enable_follow = false; } /* v2.2 */ if ($this->view->is_enable_follow) { $this->view->follow = WM_Router::create($request->getBaseUrl() . '?controller=boards&action=follow&user_id=' . $board_info['user_user_id'] . '&board_id=' . $board_info['board_board_id']); } else { $this->view->follow = false; } //enable edit for board user $board_info['edit'] = false; if (JO_Session::get('user[user_id]') == $board_info['user_user_id']) { $board_info['edit'] = WM_Router::create($request->getBaseUrl() . '?controller=boards&action=edit&user_id=' . $board_info['user_user_id'] . '&board_id=' . $board_info['board_board_id']); } // board url $this->view->board_url = WM_Router::create($request->getBaseUrl() . '?controller=boards&action=view&user_id=' . $board_info['board_user_id'] . '&board_id=' . $board_info['board_board_id']); $this->view->board = $board_info; $this->getLayout()->placeholder('title', $board_info['board_title']); JO_Layout::getInstance()->placeholder('header_metas', $this->view->callChildren('boards/header_metas', $board_info)); /*//get pins data if($request->isXmlHttpRequest()) { $this->forward('boards', 'getPins', $board_info); }*/ ///// get pins $page = (int) $request->getRequest('page'); if ($page < 1) { $page = 1; } if ($request->getQuery('ignoreDisabled') == 'true') { Helper_Config::set('config_disable_js', 0); } $this->view->result_data = ''; if (!Helper_Config::get('config_disable_js')) { //get pins data if ($request->isXmlHttpRequest()) { $this->forward('boards', 'getPins', $board_info); } } else { if ($page > 1 && $request->isXmlHttpRequest()) { $this->forward('boards', 'getPins', $board_info); } $pins = (array) $this->getPinsAction($board_info, true); foreach ($pins as $pin) { $template = new Helper_Tmpl($pin['template'], $pin); $this->view->result_data .= $template->render($pin['template']); } } //==== FEED ====// $_route_ = $request->getParam('_route_'); $_route_parts = explode('/', $_route_); if (isset($_route_parts[2]) && $_route_parts[2] == 'feed') { $this->forward('boards', 'feed', array('view' => $this->view)); } //call header and footer childrens $this->view->children = array('header_part' => 'layout/header_part', 'footer_part' => 'layout/footer_part'); //update count view Model_Boards::updateViewed($board_id); }
public function indexAction() { $request = $this->getRequest(); $board_id = $request->getRequest('board_id'); $user_id = $request->getRequest('user_id'); $board_info = Model_Boards::getBoard($board_id, true); if (!$board_info) { $this->forward('error', 'error404'); } if (!$board_info['category_id'] && JO_Session::get('user[user_id]') == $board_info['user_id']) { JO_Registry::set('board_category_change', $board_info); } $user_info = Model_Users::getUserByBoard($board_info['user_id'], $board_id); $model_images = new Helper_Images(); if ($user_info) { $avatar = Helper_Uploadimages::avatar($user_info, '_A'); $user_info['avatar'] = $avatar['image']; $user_info['profile'] = WM_Router::create($request->getBaseUrl() . '?controller=users&action=profile&user_id=' . $user_info['user_id']); $this->view->user_info = $user_info; $user_id = $user_info['user_id']; } Model_Boards::updateViewed($board_id); if (!$board_info['public'] && $user_id != JO_Registry::get('user[user_id]')) { $this->forward('error', 'error404'); } $board_info['isFollow'] = Model_Users::isFollow(array('board_id' => $board_info['board_id'])); $this->view->follow = WM_Router::create($request->getBaseUrl() . '?controller=boards&action=follow' . ($board_info['user_id'] ? '&user_id=' . $board_info['user_id'] : '') . '&board_id=' . $board_info['board_id']); if (Model_Boards::allowEdit($board_id)) { $this->view->is_enable_follow = false; $board_info['edit'] = WM_Router::create($request->getBaseUrl() . '?controller=boards&action=edit&user_id=' . $board_info['user_id'] . '&board_id=' . $board_info['board_id']); } else { $board_info['edit'] = false; if (JO_Session::get('user[user_id]')) { if (JO_Session::get('user[user_id]') != $board_info['user_id']) { $this->view->is_enable_follow = true; } else { $this->view->is_enable_follow = false; $board_info['edit'] = WM_Router::create($request->getBaseUrl() . '?controller=boards&action=edit&user_id=' . $board_info['user_id'] . '&board_id=' . $board_info['board_id']); } } else { $this->view->is_enable_follow = false; } } $this->view->board_url = WM_Router::create($request->getBaseUrl() . '?controller=boards&action=view&user_id=' . $board_info['user_id'] . '&board_id=' . $board_info['board_id']); $this->view->board_users = array(); if ($board_info['board_users']) { foreach ($board_info['board_users'] as $usr) { $avatar = Helper_Uploadimages::avatar($usr, '_A'); $usr['avatar'] = $avatar['image']; $usr['profile'] = WM_Router::create($request->getBaseUrl() . '?controller=users&action=profile&user_id=' . $usr['user_id']); $this->view->board_users[] = $usr; } } $this->view->board = $board_info; $page = (int) $request->getRequest('page'); if ($page < 1) { $page = 1; } $data = array('start' => JO_Registry::get('config_front_limit') * $page - JO_Registry::get('config_front_limit'), 'limit' => JO_Registry::get('config_front_limit'), 'filter_board_id' => $board_info['board_id'], 'filter_marker' => $request->getRequest('marker')); // if((int)JO_Session::get('user[user_id]')) { // $data['following_users_from_user_id'] = JO_Session::get('user[user_id]'); // } $this->view->pins = ''; $pins = Model_Pins::getPins($data); //==== FEED ====// JO_Registry::set('rss_feed', array('title' => $board_info['title'] . ' ' . sprintf($this->translate('on %s'), JO_Registry::get('site_name')), 'href' => WM_Router::create($request->getBaseUrl() . '?controller=boards&action=view&user_id=' . $board_info['user_id'] . '&board_id=' . $board_info['board_id'] . '&feed'))); $_route_ = $request->getParam('_route_'); $_route_parts = explode('/', $_route_); if (isset($_route_parts[2]) && $_route_parts[2] == 'feed') { $this->forward('boards', 'feed', array('pins' => $pins, 'view' => $this->view)); } //==== FEED ====// $image = ''; if ($pins) { foreach ($pins as $pin) { $this->view->pins .= Helper_Pin::returnHtml($pin); if (!$image) { $img = Helper_Uploadimages::pin($pin, '_D'); if ($img) { $image = $img['image']; } } } // JO_Registry::set('marker', Model_Pins::getMaxPin($data)); } $this->getLayout()->placeholder('pin_url', $this->view->board_url); if ($image) { $this->getLayout()->placeholder('pin_image', $image); } $this->getLayout()->placeholder('pin_description', 'null'); if ($request->isXmlHttpRequest()) { echo $this->view->pins; $this->noViewRenderer(true); } else { $this->view->children = array('header_part' => 'layout/header_part', 'footer_part' => 'layout/footer_part'); } JO_Layout::getInstance()->meta_title = $board_info['title']; }