/** * Generate List of Posts for mobile frontend * * @param $iAuthor - display posts of provided user only * @param $sMode - display all latest[default], featured or top posts * @return HTML presentation of data */ function GenPostListMobile($iAuthor = 0, $sMode = false) { if ($this->_iVisitorID) { // some workaround for mobile apps, to force login bx_login($this->_iVisitorID); } bx_import('BxDolMobileTemplate'); $oMobileTemplate = new BxDolMobileTemplate($this->_oConfig, $this->_oDb); $oMobileTemplate->pageStart(); echo $oMobileTemplate->addCss('blogs_common.css', 1); $iPerPage = 10; $iPage = (int) bx_get('page'); if ($iPage < 1) { $iPage = 1; } $this->iPostViewType = 4; $sOrder = 'last'; $sMobileWrapper = 'mobile_row.html'; $aParams = array(); switch ($sMode) { case 'post': $aViewingPostInfo = $this->_oDb->getPostInfo((int) bx_get('id')); if (!$this->oPrivacy->check('view', (int) bx_get('id'), $this->_iVisitorID) || !$this->isAllowedBlogPostView($aViewingPostInfo['OwnerID'], true)) { $oMobileTemplate->displayAccessDenied($sCaption); return; } $this->iPostViewType = 3; $aParams = array('id' => (int) bx_get('id')); $sCaption = _t('_bx_blog_post_view'); $sMobileWrapper = 'mobile_box.html'; echo $oMobileTemplate->addCss('blogs.css', 1); break; case 'user': $aParams = array('id' => (int) bx_get('id')); $sCaption = _t('_bx_blog_Members_blog', getNickName((int) bx_get('id'))); break; case 'featured': $sCaption = _t('_bx_blog_Featured_Posts'); break; case 'top': $sOrder = 'top'; $sCaption = _t('_bx_blog_Top_Posts'); break; case 'popular': $sOrder = 'popular'; $sCaption = _t('_bx_blog_Popular_Posts'); break; case 'last': default: $sMode = 'last'; $sCaption = _t('_bx_blog_Latest_posts'); } if ('post' != $sMode && !$this->isAllowedBlogsPostsBrowse()) { $oMobileTemplate->displayAccessDenied($sCaption); return; } $oTmpBlogSearch = false; $sCode = $this->_GenPosts($this->iPostViewType, $iPerPage, $sMode, $aParams, $sOrder, $oBlogSearchResults, $sMobileWrapper); if (!$sCode || $oBlogSearchResults->aCurrent['paginate']['totalNum'] == 0) { $oMobileTemplate->displayNoData($sCaption); return; } echo $sCode; if ($sMode != 'post') { bx_import('BxDolPaginate'); $oPaginate = new BxDolPaginate(array('page_url' => $this->genBlogSubUrl() . '?action=mobile&mode=' . $sMode . '&page={page}', 'count' => $oBlogSearchResults->aCurrent['paginate']['totalNum'], 'per_page' => $iPerPage, 'page' => $iPage)); echo $oPaginate->getMobilePaginate(); } $oMobileTemplate->pageCode($sCaption, false); }
/** * View list of latest entries for mobile app */ function actionMobileLatestEntries($iPage = 1) { $sUri = $this->_oConfig->getUri(); $iPerPage = 10; $iPage = (int) $iPage; if ($iPage < 1) { $iPage = 1; } bx_import('BxDolMobileTemplate'); $oMobileTemplate = new BxDolMobileTemplate($this->_oConfig, $this->_oDb); $oMobileTemplate->pageStart(); $sCaption = _t('_' . $sUri . '_bcaption_latest'); $aParams = array('sample_type' => 'archive', 'sample_params' => '', 'viewer_type' => $this->_oTextData->getViewerType(), 'start' => ($iPage - 1) * $iPerPage, 'count' => $iPerPage, 'filter_value' => ''); $iTotalCount = $this->_oDb->getCount($aParams); $aEntries = $iTotalCount ? $this->_oDb->getEntries($aParams) : array(); if (empty($aEntries)) { $oMobileTemplate->displayNoData($sCaption); return; } foreach ($aEntries as $aEntry) { $aVars = array('content' => '<h2>' . $aEntry['caption'] . '</h2>' . getLocaleDate($aEntry['when_uts'], BX_DOL_LOCALE_DATE), 'url' => bx_js_string(BX_DOL_URL_ROOT . $this->_oConfig->getBaseUri() . 'mobile_entry/' . $aEntry['id'])); echo $oMobileTemplate->parseHtmlByName('mobile_row.html', $aVars); } bx_import('BxDolPaginate'); $oPaginate = new BxDolPaginate(array('page_url' => BX_DOL_URL_ROOT . $this->_oConfig->getBaseUri() . 'mobile_latest_entries/{page}', 'count' => $iTotalCount, 'per_page' => $iPerPage, 'page' => $iPage)); echo $oPaginate->getMobilePaginate(); $oMobileTemplate->pageCode($sCaption, false); }