Пример #1
0
 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);
 }
Пример #2
0
 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'];
 }