Файловый менеджер - Редактировать - /var/www/html/components/com_community/views/pages/view.html.php
Ðазад
<?php /** * @copyright (C) 2013 iJoomla, Inc. - All rights reserved. * @license GNU General Public License, version 2 (http://www.gnu.org/licenses/gpl-2.0.html) * @author iJoomla.com <webmaster@ijoomla.com> * @url https://www.jomsocial.com/license-agreement * The PHP code portions are distributed under the GPL license. If not otherwise stated, all images, manuals, cascading style sheets, and included JavaScript *are NOT GPL, and are released under the IJOOMLA Proprietary Use License v1.0 * More info at https://www.jomsocial.com/license-agreement */ use Joomla\CMS\Factory; use Joomla\CMS\Filter\OutputFilter; use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\Session\Session; use Joomla\CMS\Table\Table; use Joomla\CMS\Uri\Uri; // Check to ensure this file is included in Joomla! defined('_JEXEC') or die(); jimport('joomla.application.component.view'); if (!class_exists("CommunityViewPages")) { class CommunityViewPages extends CommunityView { public function _addPageInPathway($pageId) { $page = Table::getInstance('Page', 'CTable'); $page->load($pageId); $this->addPathway(Text::_('COM_COMMUNITY_PAGES'), CRoute::_('index.php?option=com_community&view=pages')); $this->addPathway($page->name, CRoute::_('index.php?option=com_community&view=pages&task=viewpage&pageid=' . $page->id)); } public function _addSubmenu() { $mainframe = Factory::getApplication(); $jinput = $mainframe->input; $task = $jinput->get('task', ''); $config = CFactory::getConfig(); $pageid = $jinput->get('pageid', ''); $categoryid = $jinput->get('categoryid', ''); $my = CFactory::getUser(); $backLink = array('createreview', 'sendmail', 'invitefriends', 'viewreviews', 'viewmembers', 'viewdiscussion', 'viewdiscussions', 'editdiscussion', 'viewbulletins', 'adddiscussion', 'addnews', 'viewbulletin', 'uploadavatar', 'edit', 'banlist'); $excludeBannedMembers = array('banlist', 'viewbulletin', 'viewdiscussion', 'addnews', 'edit', 'editdiscussion'); $pagesModel = CFactory::getModel('pages'); $isAdmin = $pagesModel->isAdmin($my->id, $pageid); $isSuperAdmin = COwnerHelper::isCommunityAdmin(); // Load the page table. $page = Table::getInstance('Page', 'CTable'); $page->load($pageid); $isBanned = $page->isBanned($my->id); if (in_array($task, $backLink)) { if ($task == 'viewdiscussion' && !$isBanned) $this->addSubmenuItem('index.php?option=com_community&view=pages&task=viewdiscussions&pageid=' . $pageid, Text::_('COM_COMMUNITY_PAGES_VIEW_ALL_DISCUSSIONS')); if ($task == 'viewdiscussions' && !$isBanned) $this->addSubmenuItem('index.php?option=com_community&view=pages&pageid=' . $pageid . '&task=adddiscussion', Text::_('COM_COMMUNITY_PAGES_DISCUSSION_CREATE'), '', SUBMENU_RIGHT); if ($task == 'viewbulletins' && ($isAdmin || $isSuperAdmin)) $this->addSubmenuItem('index.php?option=com_community&view=pages&pageid=' . $pageid . '&task=addnews', Text::_('COM_COMMUNITY_PAGES_BULLETIN_CREATE'), '', SUBMENU_RIGHT); if ($task == 'viewmembers' && !$isBanned) { $friends = $pagesModel->getInviteFriendsList($my->id, $pageid); $userIds = ''; $i = 0; if ($friends) { foreach ($friends as $friend) { if ($i > 0) { $userIds .= ','; } if ($friend instanceof CUser) { $userIds .= $friend->id; } else { $userIds .= $friend; } $i++; } } $this->addSubmenuItem('index.php?option=com_community&view=pages', Text::_('COM_COMMUNITY_PAGES_ALL_PAGES')); if (COwnerHelper::isRegisteredUser()) { $this->addSubmenuItem('index.php?option=com_community&view=pages&task=mypages&userid=' . $my->id, Text::_('COM_COMMUNITY_PAGES_MY_PAGES')); $this->addSubmenuItem('index.php?option=com_community&view=pages&task=myinvites&userid=' . $my->id, Text::_('COM_COMMUNITY_PAGES_PENDING_INVITES')); } } } else { $this->addSubmenuItem('index.php?option=com_community&view=pages', Text::_('COM_COMMUNITY_PAGES_ALL_PAGES')); if (COwnerHelper::isRegisteredUser()) { $this->addSubmenuItem('index.php?option=com_community&view=pages&task=mypages&userid=' . $my->id, Text::_('COM_COMMUNITY_PAGES_MY_PAGES')); $this->addSubmenuItem('index.php?option=com_community&view=pages&task=myinvites&userid=' . $my->id, Text::_('COM_COMMUNITY_PAGES_PENDING_INVITES')); } if ($config->get('createpages') && ( $isSuperAdmin || (COwnerHelper::isRegisteredUser() && $my->canCreatePages() ) )) { $creationLink = $categoryid ? 'index.php?option=com_community&view=pages&task=create&categoryid=' . $categoryid : 'index.php?option=com_community&view=pages&task=create'; } if ((!$config->get('enableguestsearchpages') && COwnerHelper::isRegisteredUser() ) || $config->get('enableguestsearchpages')) { $tmpl = new CTemplate(); $html = $tmpl->set('url', CRoute::_('index.php?option=com_community&view=pages&task=search')) ->fetch('pages.search.submenu'); } } } public function showSubmenu($display=true) { $this->_addSubmenu(); return parent::showSubmenu($display); } public function editreview($data) { $config = CFactory::getConfig(); $my = CFactory::getUser(); $model = CFactory::getModel('pages'); $totalPage = $model->getPagesCreationCount($my->id); $mainframe = Factory::getApplication(); $jinput = $mainframe->input; $pageid = $jinput->request->getInt('pageid'); $reviewid = $jinput->request->getInt('reviewid'); $userid = $jinput->request->getInt('userid'); $page = Table::getInstance('Page', 'CTable'); $page->load($pageid); $pageModel = CFactory::getModel('pages'); $isAdmin = $pageModel->isAdmin($my->id, $page->id); $isSuperAdmin = COwnerHelper::isCommunityAdmin(); if (!$isAdmin && !$isSuperAdmin) { $errorMsg = $my->authoriseErrorMsg(); if ($errorMsg == 'blockUnregister') { return $this->blockUnregister(); } else { echo $errorMsg; } return; } $rating = Table::getInstance('Rating', 'CTable'); $isRated = $rating->isRated('pages', $pageid, $userid); //initialize default value $review = Table::getInstance('Rating', 'CTable'); if ($isRated) { $rating = $isRated; } else { $review->userid = $userid; $review->title = $jinput->post->get('title', '', 'STRING'); $review->review = $jinput->post->get('review', '', 'STRING'); $review->rating = $jinput->post->get('rating', '', 'INT'); $review->params = ''; } $tmpl = new CTemplate(); $tmpl->set('config', $config) ->set('page', $page) ->set('pageCreated', $totalPage) ->set('pageCreationLimit', $config->get('pagecreatelimit')) ->set('params', $page->getParams()) ->set('rating', $rating) ->set('isNew', false); echo $tmpl->fetch('pages.reviewforms'); } public function createreview($data) { $config = CFactory::getConfig(); $my = CFactory::getUser(); $model = CFactory::getModel('pages'); $totalPage = $model->getPagesCreationCount($my->id); $mainframe = Factory::getApplication(); $jinput = $mainframe->input; $pageid = $jinput->request->getInt('pageid'); $page = Table::getInstance('Page', 'CTable'); $page->load($pageid); $pageModel = CFactory::getModel('pages'); $isMember = $pageModel->isMember($my->id, $page->id); if (!$isMember) { $errorMsg = $my->authoriseErrorMsg(); if ($errorMsg == 'blockUnregister') { return $this->blockUnregister(); } else { echo $errorMsg; } return; } $rating = Table::getInstance('Rating', 'CTable'); $isRated = $rating->isRated('pages', $pageid, $my->id); //initialize default value $review = Table::getInstance('Rating', 'CTable'); if ($isRated) { $rating = $isRated; } else { $review->userid = $my->id; $review->title = $jinput->post->get('title', '', 'STRING'); $review->review = $jinput->post->get('review', '', 'STRING'); $review->rating = $jinput->post->get('rating', '', 'INT'); $review->params = ''; } $tmpl = new CTemplate(); $tmpl->set('config', $config) ->set('page', $page) ->set('pageCreated', $totalPage) ->set('pageCreationLimit', $config->get('pagecreatelimit')) ->set('params', $page->getParams()) ->set('rating', $rating) ->set('isNew', (!$isRated) ? true : false); echo $tmpl->fetch('pages.reviewforms'); } public function edit() { /** * Opengraph */ CHeadHelper::setType('website', Text::_('COM_COMMUNITY_PAGES_EDIT_TITLE')); $config = CFactory::getConfig(); $jConfig = Factory::getConfig(); $mainframe = Factory::getApplication(); $this->showSubmenu(); $jinput = Factory::getApplication()->input; $pageid = $jinput->request->getInt('pageid'); $pageModel = CFactory::getModel('Pages'); $categories = $pageModel->getCategories(); $page = Table::getInstance('Page', 'CTable'); $page->load($pageid); // @rule: Test if the page is unpublished, don't display it at all. if (!$page->published) { $this->_redirectUnpublishPage(); return; } $this->_addPageInPathway($page->id); $this->addPathway(Text::_('COM_COMMUNITY_PAGES_EDIT_TITLE')); $app = CAppPlugins::getInstance(); $appFields = $app->triggerEvent('onFormDisplay', array('jsform-pages-forms')); $beforeFormDisplay = CFormElement::renderElements($appFields, 'before'); $afterFormDisplay = CFormElement::renderElements($appFields, 'after'); // Load category tree $cTree = CCategoryHelper::getCategories($categories); $lists['categoryid'] = CCategoryHelper::getSelectList('pages', $cTree, $page->categoryid, true); $editorType = ($config->get('allowhtml') ) ? $config->get('htmleditor', 'none') : 'none'; $editor = new CEditor($editorType); $params = $page->getParams(); $photopermission = ($params->get('photopermission') == PAGE_PHOTO_PERMISSION_ADMINS || $params->get('photopermission') == PAGE_PHOTO_PERMISSION_ALL ) ? 1 : 0; $videopermission = ($params->get('videopermission') == PAGE_VIDEO_PERMISSION_ADMINS || $params->get('videopermission') == PAGE_VIDEO_PERMISSION_ADMINS ) ? 1 : 0; $eventpermission = ($params->get('eventpermission') == PAGE_EVENT_PERMISSION_ADMINS || $params->get('eventpermission') == PAGE_EVENT_PERMISSION_ADMINS ) ? 1 : 0; $page->discussordering = 0; $page->pagerecentphotos = $jinput->post->getInt('pagerecentphotos', $params->get('pagerecentphotos', PAGE_PHOTO_RECENT_LIMIT)); $page->pagerecentvideos = $jinput->post->getInt('pagerecentvideos', $params->get('pagerecentvideos', PAGE_VIDEO_RECENT_LIMIT)); $page->photopermission = $jinput->post->getInt('photopermission-admin', $photopermission); $page->videopermission = $jinput->post->getInt('videopermission-admin', $videopermission); if ($mainframe->get('sef')) { $juriRoot = Uri::root(false); $juriPathOnly = Uri::root(true); $juriPathOnly = rtrim($juriPathOnly, '/'); $pageURL = rtrim(str_replace($juriPathOnly, '', $juriRoot), '/'); $pageURL .= CRoute::_('index.php?option=com_community&view=pages&task=viewpage&pageid=' . $page->id, false); if (!$page->alias) { $alias = OutputFilter::stringURLSafe($page->name); } else { $alias = OutputFilter::stringURLSafe($page->alias); } $inputHTML = '<input id="alias" name="alias" type="text" class="joms-input" value="' . $alias . '" />'; $prefixURL = str_replace($alias, $inputHTML, $pageURL); if ($prefixURL == $pageURL) { $prefixURL = CString::str_ireplace($alias, $inputHTML, $pageURL); } } $tmpl = new CTemplate(); echo $tmpl->set('beforeFormDisplay', $beforeFormDisplay) ->set('afterFormDisplay', $afterFormDisplay) ->set('config', $config) ->set('jConfig', $jConfig) ->set('prefixURL', $prefixURL) ->set('lists', $lists) ->set('categories', $categories) ->set('page', $page) ->set('params', $page->getParams()) ->set('isNew', false) ->set('editor', $editor) ->fetch('pages.forms'); } public function mypages($userid) { $mainframe = Factory::getApplication(); $jinput = $mainframe->input; $document = Factory::getDocument(); $user = CFactory::getUser($userid); $my = CFactory::getUser(); if(!$user->_userid){ $mainframe->redirect(CRoute::_('index.php?option=com_community&view=pages')); } // Respect profile privacy setting. if (!CPrivacy::isAccessAllowed($my->id, $user->id, 'user', 'privacyPagesView')) { echo "<div class=\"cEmpty cAlert\">" . Text::_('COM_COMMUNITY_PRIVACY_ERROR_MSG') . "</div>"; return; } $title = ($my->id == $user->id) ? Text::_('COM_COMMUNITY_PAGES_MY_PAGES') : Text::sprintf('COM_COMMUNITY_PAGES_USER_TITLE', $user->getDisplayName()); /** * Opengraph */ CHeadHelper::setType('website', $title); // Add the miniheader if necessary if ($my->id != $user->id) { $this->attachMiniHeaderUser($user->id); } // Load required filterbar library that will be used to display the filtering and sorting. $this->addPathway(Text::_('COM_COMMUNITY_PAGES'), CRoute::_('index.php?option=com_community&view=pages')); $this->addPathway(Text::_('COM_COMMUNITY_PAGES_MY_PAGES'), ''); $uri = Uri::base(); //@todo: make mypages page to contain several admin tools for owner? $config = CFactory::getConfig(); $defaultSortOrder = $config->get('page_default_sort_order', 'latest'); $pagesModel = CFactory::getModel('pages'); $avatarModel = CFactory::getModel('avatar'); $wallsModel = CFactory::getModel('wall'); $activityModel = CFactory::getModel('activities'); $discussionModel = CFactory::getModel('discussions'); $sorted = $jinput->get->get('sort', $defaultSortOrder, 'STRING'); // @todo: proper check with CError::assertion // Make sure the sort value is not other than the array keys $pages = $pagesModel->getPages($user->id, $sorted); $pagination = $pagesModel->getPagination(count($pages)); require_once( JPATH_COMPONENT . '/libraries/activities.php'); $act = new CActivityStream(); // Attach additional properties that the v might have $pageIds = ''; if ($pages) { foreach ($pages as $page) { $pageIds = (empty($pageIds)) ? $page->id : $pageIds . ',' . $page->id; } } // Get the template for the page lists $pagesHTML = $this->_getPagesHTML($pages, $pagination); $sortItems = array( 'latest' => Text::_('COM_COMMUNITY_PAGES_SORT_LATEST'), 'oldest' => Text::_('COM_COMMUNITY_PAGES_SORT_OLDEST'), 'alphabetical' => Text::_('COM_COMMUNITY_SORT_ALPHABETICAL'), 'mostwalls' => Text::_('COM_COMMUNITY_PAGES_SORT_MOST_ACTIVE') ); if(CFactory::getConfig()->get('show_featured')){ $sortItems['featured'] = Text::_('COM_COMMUNITY_SORT_FEATURED'); } $tmpl = new CTemplate(); echo $tmpl->set('pagesHTML', $pagesHTML) ->set('pagination', $pagination) ->set('isMyPages', true) ->set('my', $my) ->set('user', $user) ->set('title', $title) ->set('sortings', CFilterBar::getHTML(CRoute::getURI(), $sortItems, $defaultSortOrder)) ->set('submenu', $this->showSubmenu(false)) ->fetch('pages/base'); } /** * Method to display page creation form * */ public function create($data) { /** * Opengraph */ CHeadHelper::setType('website', Text::_('COM_COMMUNITY_PAGES_CREATE_NEW_PAGE')); $config = CFactory::getConfig(); $my = CFactory::getUser(); $model = CFactory::getModel('pages'); $totalPage = $model->getPagesCreationCount($my->id); $mainframe = Factory::getApplication(); $jinput = $mainframe->input; if (!$my->authorise('community.create', 'pages')) { Factory::getApplication()->enqueueMessage(Text::_('COM_COMMUNITY_PAGES_DISABLE'),''); return; } //initialize default value $page = Table::getInstance('Page', 'CTable'); $page->approvals = $jinput->get('approvals', '', 'INT'); $page->unlisted = $jinput->get('unlisted', '', 'INT'); $page->name = $jinput->post->get('name', '', 'STRING'); $page->summary = $jinput->post->get('summary', '', 'STRING'); $page->description = $jinput->post->get('description', '', 'RAW'); $page->email = $jinput->post->get('email', '', 'STRING'); $page->website = $jinput->post->get('website', '', 'STRING'); $page->categoryid = $jinput->get('categoryid', '', 'INT'); $params = $page->getParams(); $photopermission = ($params->get('photopermission') == PAGE_PHOTO_PERMISSION_ADMINS || $params->get('photopermission') == PAGE_PHOTO_PERMISSION_ALL || $params->get('photopermission') == '') ? 1 : 0; $videopermission = ($params->get('videopermission') == PAGE_VIDEO_PERMISSION_ADMINS || $params->get('videopermission') == PAGE_VIDEO_PERMISSION_ADMINS || $params->get('videopermission') == '') ? 1 : 0; $eventpermission = ($params->get('eventpermission') == PAGE_EVENT_PERMISSION_ADMINS || $params->get('eventpermission') == PAGE_EVENT_PERMISSION_ADMINS || $params->get('eventpermission') == '') ? 1 : 0; $page->discussordering = 0; $page->pagerecentphotos = $jinput->post->getInt('pagerecentphotos', $params->get('pagerecentphotos', PAGE_PHOTO_RECENT_LIMIT)); $page->pagerecentvideos = $jinput->post->getInt('pagerecentvideos', $params->get('pagerecentvideos', PAGE_VIDEO_RECENT_LIMIT)); $page->pagerecentevents = $jinput->post->getInt('pagerecentevents', $params->get('pagerecentevents', PAGE_EVENT_RECENT_LIMIT)); $page->photopermission = $jinput->post->getInt('photopermission-admin', $photopermission); $page->videopermission = $jinput->post->getInt('videopermission-admin', $videopermission); $page->eventpermission = $jinput->post->getInt('eventpermission-admin', $eventpermission); $app = CAppPlugins::getInstance(); $appFields = $app->triggerEvent('onFormDisplay', array('jsform-pages-form')); $beforeFormDisplay = CFormElement::renderElements($appFields, 'before'); $afterFormDisplay = CFormElement::renderElements($appFields, 'after'); // Load category tree $cTree = CCategoryHelper::getCategories($data->categories); $lists['categoryid'] = CCategoryHelper::getSelectList('pages', $cTree, $page->categoryid, true); $editorType = ($config->get('allowhtml') ) ? $config->get('htmleditor', 'none') : 'none'; $editor = new CEditor($editorType); $tmpl = new CTemplate(); $jConfig = Factory::getConfig(); $tmpl->set('beforeFormDisplay', $beforeFormDisplay) ->set('afterFormDisplay', $afterFormDisplay) ->set('config', $config) ->set('jConfig', $jConfig) ->set('lists', $lists) ->set('categories', $data->categories) ->set('page', $page) ->set('pageCreated', $totalPage) ->set('pageCreationLimit', $config->get('pagecreatelimit')) ->set('params', $page->getParams()) ->set('isNew', true) ->set('editor', $editor); if ($config->get('pagecreatelimit') != 0 && ($totalPage / $config->get('pagecreatelimit') >= COMMUNITY_SHOW_LIMIT)) { echo $tmpl->fetch('pages.forms.limit'); } else { echo $tmpl->fetch('pages.forms'); } } public function created() { $jinput = Factory::getApplication()->input; $pageid = $jinput->get('pageid', 0); $mainframe = Factory::getApplication(); $mainframe->redirect(CRoute::_('index.php?option=com_community&view=pages&task=viewpage&pageid=' . $pageid, false)); } /** * Method to display output after saving page * * @param Table Page Table object * */ public function save($page) { $mainframe = Factory::getApplication(); /** * Opengraph */ CHeadHelper::setType('website', Text::_('COM_COMMUNITY_PAGES_AVATAR_UPLOAD')); // Load submenus $this->showSubmenu(); if (!$page->id) { $this->addWarning('COM_COMMUNITY_PAGES_SAVE_ERROR'); return; } $mainframe->enqueueMessage(Text::sprintf('COM_COMMUNITY_PAGES_NEW_MESSAGE', $page->name)); $tmpl = new CTemplate(); echo $tmpl->set('page', $page) ->fetch('pages.save'); } /** * Method to display listing of pages from the site * */ public function display($data = NULL) { $mainframe = Factory::getApplication(); $jinput = $mainframe->input; $document = Factory::getDocument(); $avatarModel = CFactory::getModel('avatar'); $wallsModel = CFactory::getModel('wall'); // Get category id from the query string if there are any. $categoryId = $jinput->getInt('categoryid', 0); $category = Table::getInstance('PageCategory', 'CTable'); $category->load($categoryId); if ($categoryId != 0) { $this->addPathway(Text::_('COM_COMMUNITY_PAGES'), CRoute::_('index.php?option=com_community&view=pages')); /** * Opengraph */ CHeadHelper::setType('website', Text::_('COM_COMMUNITY_PAGES_CATEGORIES') . ' : ' . str_replace('&', '&', Text::_($this->escape($category->name)))); } else { $this->addPathway(Text::_('COM_COMMUNITY_PAGES')); /** * Opengraph */ CHeadHelper::setType('website', Text::_('COM_COMMUNITY_PAGES_BROWSE_TITLE')); } // If we are browing by category, add additional breadcrumb and add // category name in the page title /* begin: UNLIMITED LEVEL BREADCRUMBS PROCESSING */ if ($category->parent == COMMUNITY_NO_PARENT) { $this->addPathway(Text::_($this->escape($category->name)), CRoute::_('index.php?option=com_community&view=pages&categoryid=' . $category->id)); } else { // Parent Category $parentsInArray = array(); $n = 0; $parentId = $category->id; $parent = Table::getInstance('PageCategory', 'CTable'); do { $parent->load($parentId); $parentId = $parent->parent; $parentsInArray[$n]['id'] = $parent->id; $parentsInArray[$n]['parent'] = $parent->parent; $parentsInArray[$n]['name'] = Text::_($this->escape($parent->name)); $n++; } while ($parent->parent > COMMUNITY_NO_PARENT); for ($i = count($parentsInArray) - 1; $i >= 0; $i--) { $this->addPathway($parentsInArray[$i]['name'], CRoute::_('index.php?option=com_community&view=pages&categoryid=' . $parentsInArray[$i]['id'])); } } /* end: UNLIMITED LEVEL BREADCRUMBS PROCESSING */ $config = CFactory::getConfig(); $my = CFactory::getUser(); $uri = Uri::base(); $data = new stdClass(); $defaultSortOrder = $config->get('page_default_sort_order', 'latest'); $sorted = $jinput->get->get('sort', $defaultSortOrder, 'STRING'); $limitstart = $jinput->get('limitstart', 0, 'INT'); //cache pages categories $data->categories = $this->_cachedCall('getPagesCategories', array($category->id), '', array(COMMUNITY_CACHE_TAG_PAGES_CAT)); // cache pages list. $user = CFactory::getUser(); $username = $user->get('username'); $featured = (!is_null($username) ) ? true : false; $pagesData = $this->_cachedCall('getShowAllPages', array($category->id, $sorted, $featured), COwnerHelper::isCommunityAdmin($my->id), array(COMMUNITY_CACHE_TAG_PAGES)); $pagesHTML = $pagesData['HTML']; $tmpl = new CTemplate($this); $sortItems = array( 'latest' => Text::_('COM_COMMUNITY_PAGES_SORT_LATEST'), 'oldest' => Text::_('COM_COMMUNITY_PAGES_SORT_OLDEST'), 'alphabetical' => Text::_('COM_COMMUNITY_SORT_ALPHABETICAL'), 'mostwalls' => Text::_('COM_COMMUNITY_PAGES_SORT_MOST_ACTIVE') ); if($config->get('show_featured')){ $sortItems['featured'] = Text::_('COM_COMMUNITY_PAGE_SORT_FEATURED'); } echo $tmpl->set('index', true) ->set('categories', $data->categories) ->set('availableCategories', $this->getFullPagesCategories()) ->set('pagesHTML', $pagesHTML) ->set('config', $config) ->set('category', $category) ->set('categoryId', $categoryId) ->set('isCommunityAdmin', COwnerHelper::isCommunityAdmin()) ->set('sortings', CFilterBar::getHTML(CRoute::getURI(), $sortItems, $defaultSortOrder)) ->set('sorted', $sorted) ->set('my', $my) ->set('submenu', $this->showSubmenu(false)) ->fetch('pages/base'); } /** * Displays specific pages * */ public function viewpage($page) { CWindow::load(); $config = CFactory::getConfig(); $document = Factory::getDocument(); $mainframe = Factory::getApplication(); $jinput = $mainframe->input; // Load appropriate models $pageModel = CFactory::getModel('pages'); $wallModel = CFactory::getModel('wall'); $userModel = CFactory::getModel('user'); $photosModel = CFactory::getModel('photos'); $activityModel = CFactory::getModel('activities'); $editPage = $jinput->get->get('edit', FALSE, 'NONE'); $editPage = ($editPage == 1) ? true : false; $params = $page->getParams(); /** * Opengraph */ CHeadHelper::setType('website', CStringHelper::escape($page->name), CStringHelper::escape(strip_tags($page->description))); $document->addCustomTag('<link rel="image_src" href="' . Uri::root(true) .'/'. $page->thumb . '" />'); // @rule: Test if the page is unpublished, don't display it at all. if (!$page->published) { $this->_redirectUnpublishPage(); return; } $page->hit(); $this->addPathway(Text::_('COM_COMMUNITY_PAGES'), CRoute::_('index.php?option=com_community&view=pages')); $this->addPathway(Text::sprintf('COM_COMMUNITY_PAGES_NAME_TITLE', $page->name), ''); // Load the current browsers data $my = CFactory::getUser(); // If user are invited $isInvited = $pageModel->isInvited($my->id, $page->id); // Get members list for display $limit = CFactory::getConfig()->get('page_sidebar_members_show_total',12); $approvedMembers = $pageModel->getMembers($page->id, $limit, true, false, true); CError::assert($approvedMembers, 'array', 'istype', __FILE__, __LINE__); // Is there any my friend is the member of this page? $join = ''; $friendsCount = 0; if ($isInvited) { // Get the invitors $invitors = $pageModel->getInvitors($my->id, $page->id); if (count($invitors) == 1) { $user = CFactory::getUser($invitors[0]->creator); $join = '<a href="' . CUrlHelper::userLink($user->id) . '">' . $user->getDisplayName() . '</a>'; } else { for ($i = 0; $i < count($invitors); $i++) { $user = CFactory::getUser($invitors[$i]->creator); if (($i + 1 ) == count($invitors)) { $join .= ' ' . Text::_('COM_COMMUNITY_AND') . ' ' . '<a href="' . CUrlHelper::userLink($user->id) . '">' . $user->getDisplayName() . '</a>'; } else { $join .= ', ' . '<a href="' . CUrlHelper::userLink($user->id) . '">' . $user->getDisplayName() . '</a>'; } } } // Get users friends in this page $friendsCount = $pageModel->getFriendsCount($my->id, $page->id); } // Get list of unapproved members $unapproved = $pageModel->getMembers($page->id, null, false); $unapproved = count($unapproved); // Test if the current user is admin $isAdmin = $pageModel->isAdmin($my->id, $page->id); // Test if the current browser is a member of the page $isMember = $pageModel->isMember($my->id, $page->id); $waitingApproval = false; // Test if the current user is banned from this page $isBanned = $page->isBanned($my->id); // Attach avatar of the member // Pre-load multiple users at once $userids = array(); $limitloop = $limit; foreach ($approvedMembers as $uid) { if ($limitloop-- < 1){ break; } $userids[] = $uid->id; } CFactory::loadUsers($userids); $limitloop = $limit; for ($i = 0; ($i < count($approvedMembers)); $i++) { if ($limitloop-- < 1){ break; } $row = $approvedMembers[$i]; $approvedMembers[$i] = CFactory::getUser($row->id); } $membersCount = $pageModel->getMembersCount($page->id); if ($isBanned) { $mainframe = Factory::getApplication(); $mainframe->enqueueMessage(Text::_('COM_COMMUNITY_PAGES_MEMBER_BANNED'), 'error'); return; } // If I have tried to join this page, but not yet approved, display a notice if ($pageModel->isWaitingAuthorization($my->id, $page->id)) { $waitingApproval = true; } // Get like $likes = new CLike(); $isUserLiked = false; if ($isLikeEnabled = $likes->enabled('pages')) { $isUserLiked = $likes->userLiked('pages', $page->id, $my->id); } $totalLikes = $likes->getLikeCount('pages', $page->id); // Get album data $albumData = $this->_cachedCall('_getAlbums', array($params, $page->id), $page->id, array(COMMUNITY_CACHE_TAG_PAGES_DETAIL)); $albums = $albumData['data']; $totalAlbums = $albumData['total']; // Get video data $videoData = $this->_getVideos($params, $page->id); $videos = $videoData['data']; $totalVideos = $videoData['total']; // Get poll data $pollData = $this->_getPolls($params, $page->id); $polls = $pollData['data']; $totalPolls = $pollData['total']; $tmpl = new CTemplate(); $isMine = ($my->id == $page->ownerid); $isSuperAdmin = COwnerHelper::isCommunityAdmin(); if ($page->approvals == '1' && !$isMine && !$isMember && !CFactory::getUser()->authorise('community.pageeditstate', 'com_community') && !CFactory::getUser()->authorise('community.pageedit', 'com_community') && !CFactory::getUser()->authorise('community.pagedelete', 'com_community')) { $this->addWarning(Text::_('COM_COMMUNITY_PAGES_PRIVATE_NOTICE')); } $eventsModel = CFactory::getModel('Events'); $tmpEvents = $eventsModel->getPageEvents($page->id, $params->get('pagerecentevents', PAGE_EVENT_RECENT_LIMIT)); $totalEvents = $eventsModel->getTotalPageEvents($page->id); $events = array(); foreach ($tmpEvents as $event) { $table = Table::getInstance('Event', 'CTable'); $table->bind($event); $events[] = $table; } $allowCreateEvent = CPageHelper::allowCreateEvent($my->id, $page->id); // Upgrade wall to stream @since 2.5 if (!$params->get('stream', FALSE)) { $page->upgradeWallToStream(); } $page->getAvatar(); $page->defaultAvatar = empty($page->avatar); // Find avatar album. $album = Table::getInstance('Album', 'CTable'); $albumId = $album->isAvatarAlbumExists($page->id, 'page'); $page->avatarAlbum = $albumId ? $albumId : false; // Check if default cover is used. $page->defaultCover = empty($page->cover) ? true : false; // Cover position. $page->coverPostion = $params->get('coverPosition', ''); if ( strpos( $page->coverPostion, '%' ) === false ) $page->coverPostion = 0; // Find cover album and photo. $page->coverAlbum = false; $page->coverPhoto = false; $album = Table::getInstance('Album', 'CTable'); $albumId = $album->isCoverExist('page', $page->id); if ($albumId) { $album->load($albumId); $page->coverAlbum = $albumId; $page->coverPhoto = $album->photoid; } // Add custom stream $activities = new CActivities(); $streamHTML = $activities->getOlderStream(1000000000, 'active-page', $page->id); $totalStream = $activityModel->getTotalActivities(array("`pageid` = '{$page->id}'")); $creators = array(); $creators[] = CUserStatusCreator::getMessageInstance(); if (( ($isAdmin || $isSuperAdmin) && $params->get('photopermission') == 1) || (($isMember || $isSuperAdmin) && $params->get('photopermission') == 2) || $isSuperAdmin) $creators[] = CUserStatusCreator::getPhotoInstance(); if (( ($isAdmin || $isSuperAdmin) && $params->get('videopermission') == 1) || (($isMember || $isSuperAdmin) && $params->get('videopermission') == 2) || $isSuperAdmin) $creators[] = CUserStatusCreator::getVideoInstance(); if (($allowCreateEvent || $isSuperAdmin ) && $config->get('page_events') && $config->get('enableevents') && ($config->get('createevents') ) || $isSuperAdmin) $creators[] = CUserStatusCreator::getEventInstance(); $status = new CUserStatus($page->id, 'pages', $creators); // Get Event Admins $pageAdmins = $page->getAdmins(12, CC_RANDOMIZE); $adminsInArray = array(); // Attach avatar of the admin for ($i = 0; ($i < count($pageAdmins)); $i++) { $row = $pageAdmins[$i]; $admin = CFactory::getUser($row->id); array_push($adminsInArray, '<a href="' . CUrlHelper::userLink($admin->id) . '">' . $admin->getDisplayName() . '</a>'); } $totalPhotos = 0; $allAlbumData = $this->_cachedCall('_getAlbums', array($params, $page->id, true), $page->id, array(COMMUNITY_CACHE_TAG_PAGES_DETAIL)); foreach ($allAlbumData['data'] as $album) { $albumParams = new CParameter($album->params); $totalPhotos = $totalPhotos + $albumParams->get('count'); } $adminsList = ltrim(implode(', ', $adminsInArray), ','); $showMoreActivity = ($totalStream <= $config->get('maxactivities')) ? false : true; $pagesModel = CFactory::getModel('pages'); $bannedMembers = $pagesModel->getBannedMembers($page->id); /* Opengraph */ CHeadHelper::addOpengraph('og:image', $page->getAvatar('avatar'), true); CHeadHelper::addOpengraph('og:image', $page->getCover(), true); $featured = new CFeatured(FEATURED_PAGES); $featuredList = $featured->getItemIds(); $page->title = $page->name; $reviews = Table::getInstance('Rating', 'CTable'); $reviewsCount = $reviews->getUserRatingCount('pages', $page->id); $ratingValue = $reviews->getRatingResult('pages', $page->id); echo $tmpl->setMetaTags('page', $page) ->set('streamHTML', $streamHTML) ->set('showMoreActivity', $showMoreActivity) ->set('status', $status) ->set('events', $events) ->set('totalEvents', $totalEvents) ->set('showEvents', $config->get('page_events') && $config->get('enableevents') && $params->get('eventpermission',1) >= 1) ->set('showPhotos', ( $params->get('photopermission') != -1 ) && $config->get('enablephotos') && $config->get('pagephotos')) ->set('showVideos', ( $params->get('videopermission') != -1 ) && $config->get('enablevideos') && $config->get('pagevideos')) ->set('showPolls', ( $params->get('pollspermission') != -1 ) && $config->get('enablepolls') && $config->get('page_polls')) ->set('eventPermission', $params->get('eventpermission')) ->set('photoPermission', $params->get('photopermission')) ->set('videoPermission', $params->get('videopermission')) ->set('pollspermission', $params->get('pollspermission')) ->set('videos', $videos) ->set('totalVideos', $totalVideos) ->set('albums', $albums) ->set('editPage', $editPage) ->set('waitingApproval', $waitingApproval) ->set('config', $config) ->set('isMine', $isMine) ->set('isAdmin', $isAdmin) ->set('isSuperAdmin', $isSuperAdmin) ->set('isMember', $isMember) ->set('isInvited', $isInvited) ->set('friendsCount', $friendsCount) ->set('join', $join) ->set('unapproved', $unapproved) ->set('membersCount', $membersCount) ->set('ratingValue', $ratingValue) ->set('reviewsCount', $reviewsCount) ->set('page', $page) ->set('totalVideos', $totalVideos) ->set('members', $approvedMembers) ->set('isBanned', $isBanned) ->set('totalBannedMembers', count($bannedMembers) ) ->set('isPrivate', $page->approvals) ->set('limit', $limit) ->set('adminsList', $adminsList) /* Set notification counts */ ->set('alertNewStream', $my->count('page_activity_' . $page->id) != $totalStream) ->set('isUserLiked', $isUserLiked) ->set('totalLikes', $totalLikes) ->set('isLikeEnabled', $isLikeEnabled) ->set('totalPhotos', $totalPhotos) ->set('totalAlbums', $totalAlbums) ->set('totalPolls', $totalPolls) ->set('profile', $my) ->set('featuredList', $featuredList) ->fetch('pages/single'); // Update stream count cache, can only set this after we've set the alert aove if($my->id){ $my->setCount('page_activity_' . $page->id, $totalStream); } } public function getPagesCategories($category) { $model = CFactory::getModel('pages'); $categories = $model->getCategoriesCount(); $categories = CCategoryHelper::getParentCount($categories, $category); return $categories; } /** * List all the category including the children and format it */ public function getFullPagesCategories($id = 0, $level = 0, $categoryList = array()){ $model = CFactory::getModel('pages'); $mainCategories = $model->getCategories($id); if(count($mainCategories) > 0){ foreach($mainCategories as $category){ $prefix = ''; for($i = 0; $i < $level; $i++){ $prefix = $prefix.'-'; // this will add the - in front of the category name } $category->name = $prefix.' '.Text::_($category->name); $categoryList[] = $category; $categoryList = $this->getFullPagesCategories($category->id, $level+1, $categoryList); } } return $categoryList; } public function getShowAllPages($category, $sorted) { $model = CFactory::getModel('pages'); // Get page in category and it's children. $categories = $model->getAllCategories(); $categoryIds = CCategoryHelper::getCategoryChilds($categories, $category); if ((int) $category > 0) { $categoryIds[] = (int) $category; } // It is safe to pass 0 as the category id as the model itself checks for this value. $data = new StdClass; $data->pages = $model->getAllPages($categoryIds, $sorted); // Get pagination object $data->pagination = $model->getPagination(); // Get the template for the page lists $pagesHTML['HTML'] = $this->_getPagesHTML($data->pages, $data->pagination); return $pagesHTML; } public function _getPagesHTML($tmpPages, $tmpPagination = NULL) { $config = CFactory::getConfig(); $tmpl = new CTemplate(); $featured = new CFeatured(FEATURED_PAGES); $featuredList = $featured->getItemIds(); $pages = array(); if ($tmpPages) { foreach ($tmpPages as $row) { $page = Table::getInstance('Page', 'CTable'); $page->bind($row); $page->updateStats(); //ensure that stats are up-to-date $page->description = CStringHelper::clean(JHTML::_('string.truncate', $page->description, $config->get('tips_desc_length'))); $pages[] = $page; } unset($tmpPages); } $pagesHTML = $tmpl->set('showFeatured', $config->get('show_featured')) ->set('featuredList', $featuredList) ->set('isCommunityAdmin', COwnerHelper::isCommunityAdmin()) ->set('pages', $pages) ->set('pagination', $tmpPagination) ->fetch('pages/list'); return $pagesHTML; } /** * Return the video list for viewPage display */ protected function _getVideos($params, $pageid) { $result = array(); $videoModel = CFactory::getModel('videos'); $tmpVideos = $videoModel->getPageVideos($pageid, '', 0, ''); $videos = array(); if ($tmpVideos) { foreach ($tmpVideos as $videoEntry) { $video = Table::getInstance('Video', 'CTable'); $video->bind($videoEntry); $videos[] = $video; } } $totalVideos = $videoModel->total ? $videoModel->total : 0; $result['total'] = $totalVideos; $result['data'] = $videos; return $result; } /** * Return the poll list for viewPage display */ protected function _getPolls($params, $pageid) { $result = array(); $pollModel = CFactory::getModel('polls'); $tmpPolls = $pollModel->getAllPolls(null, null, null, null, false, true, null, null, $pageid); $polls = array(); $totalPolls = 0; if ($tmpPolls) { foreach ($tmpPolls as $pollEntry) { $poll = Table::getInstance('Poll', 'CTable'); $poll->bind($pollEntry); $polls[] = $poll; $totalPolls++; } } $result['total'] = $totalPolls; $result['data'] = $polls; return $result; } protected function _getAlbums($params, $pageid, $ignoreRecentPhotos = false) { $result = array(); $photosModel = CFactory::getModel('photos'); if(!$ignoreRecentPhotos){ $albums = $photosModel->getPageAlbums($pageid, true, false, $params->get('pagerecentphotos', PAGE_PHOTO_RECENT_LIMIT), false, '', array('page.avatar', 'page.Cover')); }else{ $albums = $photosModel->getPageAlbums($pageid, false, false); } $db = Factory::getDBO(); $where = 'WHERE a.' . $db->quoteName('pageid') . ' = ' . $db->quote($pageid); $where .= ' AND a.' . $db->quoteName('type') . ' != ' . $db->quote('page.avatar'); $where .= ' AND a.' . $db->quoteName('type') . ' != ' . $db->quote('page.Cover'); $totalAlbums = $photosModel->getAlbumCount($where); $result['total'] = $totalAlbums; $result['data'] = $albums; return $result; } public function banlist($data) { $this->viewmembers($data); } public function viewmembers($data) { $mainframe = Factory::getApplication(); $jinput = $mainframe->input; $pagesModel = CFactory::getModel('pages'); $friendsModel = CFactory::getModel('friends'); $userModel = CFactory::getModel('user'); $my = CFactory::getUser(); $config = CFactory::getConfig(); $type = $jinput->get->get('approve', '', 'NONE'); $page = Table::getInstance('Page', 'CTable'); $list = $jinput->get->get('list', '', 'NONE'); if (!$page->load($data->id)) { echo CSystemHelper::showErrorPage(); return; } // @rule: Test if the page is unpublished, don't display it at all. if (!$page->published) { $this->_redirectUnpublishPage(); return; } /** * Opengraph */ CHeadHelper::setType('website', Text::sprintf('COM_COMMUNITY_PAGES_MEMBERS_TITLE', $page->name)); $this->addPathway(Text::_('COM_COMMUNITY_PAGES'), CRoute::_('index.php?option=com_community&view=pages')); $this->addPathway($page->name, CRoute::_('index.php?option=com_community&view=pages&task=viewpage&pageid=' . $page->id)); $this->addPathway(Text::_('COM_COMMUNITY_MEMBERS')); $isSuperAdmin = COwnerHelper::isCommunityAdmin(); $isAdmin = $pagesModel->isAdmin($my->id, $page->id); $isMember = $page->isMember($my->id); $isMine = ($my->id == $page->ownerid); $isBanned = $page->isBanned($my->id); if ($page->approvals == '1' && !$isMine && !$isMember && !$isSuperAdmin) { $this->noAccess(Text::_('COM_COMMUNITY_PAGES_PRIVATE_NOTICE')); return; } switch ($list) { case COMMUNITY_PAGE_ADMIN : $members = $pagesModel->getAdmins($data->id); $title = Text::_('COM_COMMUNITY_PAGE_MEMBERS'); break; case COMMUNITY_PAGE_BANNED : $members = $pagesModel->getBannedMembers($data->id); $title = Text::_('COM_COMMUNITY_PAGES_BANNED_MEMBERS'); break; default : $title = Text::_('COM_COMMUNITY_PAGE_MEMBERS'); if (!empty($type) && ( $type == '1' )) { $members = $pagesModel->getMembers($data->id, 0, false); } else { $members = $pagesModel->getMembers($data->id, 0, true, false, SHOW_PAGE_ADMIN); } } if($type == 1){ $title = TEXT::_('COM_COMMUNITY_PAGES_MEMBERS_PENDING_APPROVAL_TITLE'); } // Attach avatar of the member // Pre-load multiple users at once $userids = array(); foreach ($members as $uid) { $userids[] = $uid->id; } CFactory::loadUsers($userids); $membersList = array(); foreach ($members as $member) { $user = CFactory::getUser($member->id); $user->friendsCount = $user->getFriendCount(); $user->approved = $member->approved; $user->isMe = ( $my->id == $member->id ) ? true : false; $user->isAdmin = $pagesModel->isAdmin($user->id, $page->id); $user->isOwner = ( $member->id == $page->ownerid ) ? true : false; // Check user's permission $pagemember = Table::getInstance('PageMembers', 'CTable'); $keys['pageId'] = $page->id; $keys['memberId'] = $member->id; $pagemember->load($keys); $user->isBanned = ( $pagemember->permissions == COMMUNITY_PAGE_BANNED ) ? true : false; $membersList[] = $user; } // Featured $featured = new CFeatured(FEATURED_USERS); $featuredList = $featured->getItemIds(); $pagination = $pagesModel->getPagination(); $tmpl = new CTemplate(); echo $tmpl->set('members', $membersList) ->set('list', $list) ->set('type', $type) ->set('title', $title) ->set('isMine', $pagesModel->isCreator($my->id, $page->id)) ->set('isAdmin', $isAdmin) ->set('isMember', $isMember) ->set('isSuperAdmin', $isSuperAdmin) ->set('pagination', $pagination) ->set('pageid', $page->id) ->set('my', $my) ->set('config', $config) ->set('page', $page) ->set('submenu', $this->showSubmenu(false)) ->set('featuredList', $featuredList) ->fetch('pages.viewmembers'); } public function viewreviews($data) { $mainframe = Factory::getApplication(); $jinput = $mainframe->input; $pagesModel = CFactory::getModel('pages'); $friendsModel = CFactory::getModel('friends'); $userModel = CFactory::getModel('user'); $my = CFactory::getUser(); $config = CFactory::getConfig(); $type = $jinput->get->get('approve', '', 'NONE'); $page = Table::getInstance('Page', 'CTable'); $list = $jinput->get->get('list', '', 'NONE'); if (!$page->load($data->id)) { echo CSystemHelper::showErrorPage(); return; } // @rule: Test if the page is unpublished, don't display it at all. if (!$page->published) { $this->_redirectUnpublishPage(); return; } /** * Opengraph */ CHeadHelper::setType('website', Text::sprintf('COM_COMMUNITY_PAGES_MEMBERS_TITLE', $page->name)); $this->addPathway(Text::_('COM_COMMUNITY_PAGES'), CRoute::_('index.php?option=com_community&view=pages')); $this->addPathway($page->name, CRoute::_('index.php?option=com_community&view=pages&task=viewpage&pageid=' . $page->id)); $this->addPathway(Text::_('COM_COMMUNITY_MEMBERS')); $isSuperAdmin = COwnerHelper::isCommunityAdmin(); $isAdmin = $pagesModel->isAdmin($my->id, $page->id); $isMember = $page->isMember($my->id); $isMine = ($my->id == $page->ownerid); $isBanned = $page->isBanned($my->id); if ($page->approvals == '1' && !$isMine && !$isMember && !$isSuperAdmin) { $this->noAccess(Text::_('COM_COMMUNITY_PAGES_PRIVATE_NOTICE')); return; } $reviews = $pagesModel->getReviews($data->id); $title = TEXT::_('COM_COMMUNITY_PAGES_REVIEWS'); // Attach avatar of the member // Pre-load multiple users at once $userids = array(); foreach ($reviews as $uid) { $userids[] = $uid->userid; } CFactory::loadUsers($userids); $reviewsList = array(); foreach ($reviews as $review) { $user = CFactory::getUser($review->userid); $user->isMe = ($my->id == $review->userid) ? true : false; $user->isAdmin = $pagesModel->isAdmin($user->id, $page->id); $user->isOwner = ($review->userid == $page->ownerid) ? true : false; $user->userid = $review->userid; $user->title = $review->title; $user->review = $review->review; $user->rating = $review->rating; $user->created = $review->created; $user->reviewid = $review->id; $reviewsList[] = $user; } $pagination = $pagesModel->getPagination(); $rating = Table::getInstance('Rating', 'CTable'); $isRated = $rating->isRated('pages', $page->id, $my->id); $tmpl = new CTemplate(); echo $tmpl->set('reviews', $reviewsList) ->set('list', $list) ->set('type', $type) ->set('title', $title) ->set('isMine', $pagesModel->isCreator($my->id, $page->id)) ->set('isAdmin', $isAdmin) ->set('isMember', $isMember) ->set('isSuperAdmin', $isSuperAdmin) ->set('isBanned', $isBanned) ->set('pagination', $pagination) ->set('pageid', $page->id) ->set('my', $my) ->set('config', $config) ->set('page', $page) ->set('isRated', $isRated) ->set('submenu', $this->showSubmenu(false)) ->fetch('pages.viewreviews'); } public function singleActivity($activity) { // we will determine all the user settings based on the activity viewed $my = CFactory::getUser(); $userId = $activity->actor; if($activity->id == 0 || empty($activity->id)){ //redirect this to error : no activity found Factory::getApplication()->enqueueMessage(Text::_('COM_COMMUNITY_ERROR_ACTIVITY_NOT_FOUND'), 'warning'); } echo CMiniHeader::showPageMiniHeader($activity->pageid); $document = Factory::getDocument(); $document->setTitle(HTMLHelper::_('string.truncate', $activity->title, 75)); CHeadHelper::setDescription(HTMLHelper::_('string.truncate', $activity->title, 300, true)); //see if the user has blocked each other $getBlockStatus = new blockUser(); $blocked = $getBlockStatus->isUserBlocked($userId, 'profile'); if ($blocked && !COwnerHelper::isCommunityAdmin()) { Factory::getApplication()->enqueueMessage(Text::_('COM_COMMUNITY_ERROR_ACTIVITY_NOT_FOUND'), 'warning'); } //everything is fine, lets get to the activity echo $this->_getNewsfeedHTML(); } private function _getNewsfeedHTML() { $my = CFactory::getUser(); $mainframe = Factory::getApplication(); $jinput = $mainframe->input; $userId = $jinput->get('userid', $my->id, 'INT'); return CActivities::getActivitiesByFilter('active-profile', $userId, 'profile', true, array('show_featured'=>true)); } public function search() { /** * Opengraph */ CHeadHelper::setType('website', Text::_('COM_COMMUNITY_PAGES_SEARCH_TITLE')); $mainframe = Factory::getApplication(); $jinput = $mainframe->input; $this->addPathway(Text::_('COM_COMMUNITY_PAGES'), CRoute::_('index.php?option=com_community&view=pages')); $this->addPathway(Text::_("COM_COMMUNITY_SEARCH"), ''); $search = $jinput->get('search', '', 'STRING'); $catId = $jinput->get('catid', '', 'INT'); $pages = ''; $pagination = null; $posted = false; $count = 0; $model = CFactory::getModel('pages'); $categories = $model->getCategories(); // Test if there are any post requests made if ((!empty($search) || !empty($catId))) { Session::checkToken('get') or jexit(Text::_('COM_COMMUNITY_INVALID_TOKEN')); $appsLib = CAppPlugins::getInstance(); $saveSuccess = $appsLib->triggerEvent('onFormSave', array('jsform-pages-search')); if (empty($saveSuccess) || !in_array(false, $saveSuccess)) { $posted = true; $pages = $model->getAllPages($catId, null, $search); $pagination = $model->getPagination(); $count = count($pages); } } // Get the template for the group lists $pagesHTML = $this->_getPagesHTML($pages, $pagination); $app = CAppPlugins::getInstance(); $appFields = $app->triggerEvent('onFormDisplay', array('jsform-pages-search')); $beforeFormDisplay = CFormElement::renderElements($appFields, 'before'); $afterFormDisplay = CFormElement::renderElements($appFields, 'after'); $searchLinks = parent::getAppSearchLinks('pages'); $tmpl = new CTemplate(); echo $tmpl->set('beforeFormDisplay', $beforeFormDisplay) ->set('afterFormDisplay', $afterFormDisplay) ->set('posted', $posted) ->set('pagesCount', $count) ->set('pagesHTML', $pagesHTML) ->set('search', $search) ->set('categories', $categories) ->set('catId', $catId) ->set('searchLinks', $searchLinks) ->set('submenu', $this->showSubmenu(false)) ->fetch('pages.search'); } public function myinvites() { $mainframe = Factory::getApplication(); $jinput = $mainframe->input; $userId = $jinput->get('userid', '', 'INT'); $config = CFactory::getConfig(); // Load required filterbar library that will be used to display the filtering and sorting. $document = Factory::getDocument(); $this->addPathway(Text::_('COM_COMMUNITY_PAGES'), CRoute::_('index.php?option=com_community&view=pages')); $this->addPathway(Text::_('COM_COMMUNITY_PAGES_PENDING_INVITES'), ''); /** * Opengraph */ CHeadHelper::setType('website', Text::_('COM_COMMUNITY_PAGES_PENDING_INVITES')); $feedLink = CRoute::_('index.php?option=com_community&view=pages&task=mypages&userid=' . $userId . '&format=feed'); $feed = '<link rel="alternate" type="application/rss+xml" title="' . Text::_('COM_COMMUNITY_SUBSCRIBE_TO_PENDING_INVITATIONS_FEED') . '" href="' . $feedLink . '"/>'; $document->addCustomTag($feed); $my = CFactory::getUser(); $model = CFactory::getModel('pages'); $sorted = $jinput->get->get('sort', 'latest', 'STRING'); $rows = $model->getPageInvites($my->id); $pagination = $model->getPagination(count($rows)); $pages = array(); $ids = ''; if ($rows) { foreach ($rows as $row) { $table = Table::getInstance('Page', 'CTable'); $table->load($row->pageid); $table->description = CStringHelper::clean(HTMLHelper::_('string.truncate', $table->description, $config->get('tips_desc_length'))); $pages[] = $table; $ids = (empty($ids)) ? $table->id : $ids . ',' . $table->id; } } $sortItems = array( 'latest' => Text::_('COM_COMMUNITY_PAGES_SORT_LATEST'), 'oldest' => Text::_('COM_COMMUNITY_PAGES_SORT_OLDEST'), 'alphabetical' => Text::_('COM_COMMUNITY_SORT_ALPHABETICAL'), 'mostwalls' => Text::_('COM_COMMUNITY_PAGES_SORT_MOST_ACTIVE') ); $defaultSortOrder = $config->get('page_default_sort_order', 'latest'); $tmpl = new CTemplate(); echo $tmpl->set('pages', $pages) ->set('showFeatured', $config->get('show_featured')) ->set('pagination', $pagination) ->set('count', $pagination->total) ->set('my', $my) ->set('sortings', CFilterBar::getHTML(CRoute::getURI(), $sortItems, $defaultSortOrder)) ->set('submenu', $this->showSubmenu(false)) ->fetch('pages.myinvites'); } } }
| ver. 1.1 | |
.
| PHP 8.4.18 | Ð“ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ñ Ñтраницы: 0 |
proxy
|
phpinfo
|
ÐаÑтройка