/** * Allows us to test if the user has access to the album **/ public function hasAccess($userId, $permissionType) { CFactory::load('helpers', 'owner'); CFactory::load('helpers', 'group'); // @rule: For super admin, regardless of what permission, they should be able to access if (COwnerHelper::isCommunityAdmin()) { return true; } switch ($this->type) { case PHOTOS_USER_TYPE: if ($permissionType == 'upload') { return $this->creator == $userId; } if ($permissionType == 'deletephotos') { return $this->creator == $userId; } break; case PHOTOS_GROUP_TYPE: CFactory::load('models', 'groups'); $group =& JTable::getInstance('Group', 'CTable'); $group->load($this->groupid); if ($permissionType == 'upload') { return CGroupHelper::allowManagePhoto($group->id); } if ($permissionType == 'deletephotos') { return $this->creator == $userId || $group->isAdmin($userId); } return false; break; } }
public function setSubmenus() { //CFactory::load( 'helpers' , 'group' ); //CFactory::load( 'helpers' , 'owner' ); $jinput = JFactory::getApplication()->input; $task = $userid = $jinput->get('task', '', 'WORD'); //JRequest::getVar( 'task', '', 'GET' ); $albumId = $userid = $jinput->get('albumid', 0, 'INT'); //JRequest::getInt( 'albumid', 0 , 'REQUEST'); $groupId = $userid = $jinput->get('groupid', 0, 'INT'); //JRequest::getInt( 'groupid', '', 'REQUEST' ); if (!empty($albumId)) { $album = JTable::getInstance('Album', 'CTable'); $album->load($albumId); $groupId = $album->groupid; } //CFactory::load( 'models' , 'groups' ); $config = CFactory::getConfig(); $group = JTable::getInstance('Group', 'CTable'); $group->load($groupId); $my = CFactory::getUser(); $albumId = $albumId != 0 ? $albumId : ''; // Check if the current user is banned from this group $isBanned = $group->isBanned($my->id); $allowManagePhotos = CGroupHelper::allowManagePhoto($this->groupid); if (($task == 'uploader' || $task == 'photo') && !empty($albumId)) { $this->view->addSubmenuItem('index.php?option=com_community&view=photos&groupid=' . $this->groupid . '&task=album&albumid=' . $albumId, JText::_('COM_COMMUNITY_PHOTOS_BACK_TO_ALBUM')); } if ($allowManagePhotos && $task != 'photo' && !$isBanned) { /* Group: Upload Photos */ if ($task != 'newalbum' && $task != 'editAlbum') { //$this->view->addSubmenuItem('javascript:void(0);', JText::_('COM_COMMUNITY_PHOTOS_UPLOAD_PHOTOS'), 'joms.notifications.showUploadPhoto(\'' . $albumId . '\',' . $this->groupid . '); return false;', true, '', ''); } if ($task == 'album' && ($my->id == $album->creator && $allowManagePhotos || $group->isAdmin($my->id) || COwnerHelper::isCommunityAdmin())) { $this->view->addSubmenuItem('javascript:', JText::_('COM_COMMUNITY_PHOTOS_ALBUM_DELETE'), "joms.api.albumRemove('" . $album->id . "', '" . $task . "');", true); $this->view->addSubmenuItem('index.php?option=com_community&view=photos&task=editAlbum&albumid=' . $album->id . '&groupid=' . $group->id . '&referrer=albumgrp', JText::_('COM_COMMUNITY_EDIT_ALBUM'), '', true); $this->view->addSubmenuItem('index.php?option=com_community&view=photos&task=display', JText::_('COM_COMMUNITY_PHOTOS_ALL_PHOTOS'), '', false, '', 'joms-right'); if ($my->id != 0) { $this->view->addSubmenuItem('index.php?option=com_community&view=photos&task=myphotos&userid=' . $my->id, JText::_('COM_COMMUNITY_PHOTOS_MY_PHOTOS'), '', false, '', 'joms-right'); } } //$this->view->addSubmenuItem('index.php?option=com_community&view=photos&task=newalbum&groupid=' . $this->groupid, JText::_('COM_COMMUNITY_PHOTOS_CREATE_PHOTO_ALBUM'), '', true, '', ''); } if ($task == 'photo') { if ($album->hasAccess($my->id, 'deletephotos')) { $this->view->addSubmenuItem('', JText::_('COM_COMMUNITY_PHOTOS_DELETE'), "joms_delete_photo();", true); } if ($my->id == $album->creator) { $this->view->addSubmenuItem('', JText::_('COM_COMMUNITY_PHOTOS_SET_AVATAR'), "joms_set_as_profile_picture();", true); } if ($my->id == $album->creator && $allowManagePhotos || $group->isAdmin($my->id) || COwnerHelper::isCommunityAdmin()) { $this->view->addSubmenuItem('', JText::_('COM_COMMUNITY_PHOTOS_SET_AS_ALBUM_COVER'), "joms_set_as_album_cover();", true); } if (!$config->get('deleteoriginalphotos')) { $this->view->addSubmenuItem('', JText::_('COM_COMMUNITY_DOWNLOAD_IMAGE'), "joms_download_photo();", true); } if ($groupId != '') { $this->view->addSubmenuItem('index.php?option=com_community&view=photos&task=newalbum&groupid=' . $groupId, JText::_('COM_COMMUNITY_PHOTOS_CREATE_PHOTO_ALBUM'), '', true); } else { $this->view->addSubmenuItem('index.php?option=com_community&view=photos&task=newalbum&userid=' . $my->id, JText::_('COM_COMMUNITY_PHOTOS_CREATE_PHOTO_ALBUM'), '', true); } } if ($task == "display") { $this->view->addSubmenuItem('index.php?option=com_community&view=photos&task=newalbum&groupid=' . $groupId, JText::_('COM_COMMUNITY_PHOTOS_CREATE_PHOTO_ALBUM'), '', true); } //$this->view->addSubmenuItem('index.php?option=com_community&view=groups&task=viewgroup&groupid=' . $this->groupid, JText::_('COM_COMMUNITY_GROUPS_BACK_TO_GROUP')); }
public function isAllowedAlbumCreation() { $allowManagePhotos = CGroupHelper::allowManagePhoto($this->groupid); return $allowManagePhotos; }
function _groupPhoto() { $mainframe =& JFactory::getApplication(); $document =& JFactory::getDocument(); // Get necessary properties and load the libraries CFactory::load('models', 'photos'); CFactory::load('helpers', 'friends'); $my = CFactory::getUser(); $model = CFactory::getModel('photos'); $groupId = JRequest::getVar('groupid', '', 'GET'); $albumId = JRequest::getVar('albumid', '', 'GET'); $defaultId = JRequest::getVar('photoid', '', 'GET'); if (empty($albumId)) { echo JText::_('CC NO PROPER ALBUM ID'); return; } // Load the album table $album =& JTable::getInstance('Album', 'CTable'); $album->load($albumId); // Set pathway $pathway =& $mainframe->getPathway(); $pathway->addItem($album->name, ''); CFactory::load('models', 'groups'); $group =& JTable::getInstance('Group', 'CTable'); $group->load($groupId); CFactory::load('helpers', 'group'); //@rule: Do not allow non members to view albums for private group if (!CGroupHelper::allowViewMedia($group->id)) { // Set document title $document->setTitle(JText::_('CC RESTRICTED ACCESS')); $mainframe->enqueueMessage(JText::_('CC RESTRICTED ACCESS', 'notice')); echo JText::_('CC PHOTO NEED GROUP MEMBER PERMISSION'); return; } // Get list of photos and set some limit to be displayed. // @todo: make limit configurable? set to 1000, unlimited? $photos = $model->getPhotos($albumId, 1000); // Set document title CFactory::load('helpers', 'string'); $document->setTitle($album->name); // @checks: Test if album doesnt have any default photo id. We need to get the first row // of the photos to be the default if ($album->photoid == '0') { $album->photoid = count($photos) >= 1 ? $photos[0]->id : '0'; } // Try to see if there is any photo id in the query $defaultId = !empty($defaultId) ? $defaultId : $album->photoid; // Load the default photo $photo =& JTable::getInstance('Photo', 'CTable'); $photo->load($defaultId); // If default has an id of 0, we need to tell the template to dont process anything $default = $photo->id == 0 ? false : $photo; CFactory::load('helpers', 'owner'); //friend list for photo tag CFactory::load('libraries', 'phototagging'); $tagging = new CPhotoTagging(); for ($i = 0; $i < count($photos); $i++) { // Convert the generic object row into CTablePhoto object $item =& JTable::getInstance('Photo', 'CTable'); $item->bind($photos[$i]); $photos[$i] = $item; $row =& $photos[$i]; $taggedList = $tagging->getTaggedList($row->id); for ($t = 0; $t < count($taggedList); $t++) { $tagItem =& $taggedList[$t]; $tagUser = CFactory::getUser($tagItem->userid); $canRemoveTag = 0; // 1st we check the tagged user is the photo owner. // If yes, canRemoveTag == true. // If no, then check on user is the tag creator or not. // If yes, canRemoveTag == true // If no, then check on user whether user is being tagged if (COwnerHelper::isMine($my->id, $row->creator) || COwnerHelper::isMine($my->id, $tagItem->created_by) || COwnerHelper::isMine($my->id, $tagItem->userid)) { $canRemoveTag = 1; } $tagItem->user = $tagUser; $tagItem->canRemoveTag = $canRemoveTag; } $row->tagged = $taggedList; } // for photo tagging. only allow to tag members $groupModel = CFactory::getModel('groups'); $groupMemberIds = $groupModel->getMembersId($groupId, true); $friends = array(); foreach ($groupMemberIds as $grpMemberId) { if ($my->id != $grpMemberId) { $memberUser = CFactory::getUser($grpMemberId); $friends[] = $memberUser; } } if (COwnerHelper::isCommunityAdmin() || $group->isAdmin($my->id) || $group->isMember($my->id)) { array_unshift($friends, $my); } CFactory::load('helpers', 'group'); $allowManagePhotos = CGroupHelper::allowManagePhoto($groupId); // Only add these links when there are photos in the album if ($allowManagePhotos && $default) { $this->addSubmenuItem('', JText::_('CC SET IMAGE AS ALBUM COVER'), "setPhotoAsDefault();", true); $this->addSubmenuItem('', JText::_('CC DELETE IMAGE'), "removePhoto();", true); } // Show wall contents CFactory::load('helpers', 'friends'); // Load up required objects. $friendModel = CFactory::getModel('friends'); $config = CFactory::getConfig(); $showWall = false; $allowTag = false; //check if we can allow the current viewing user to tag the photos if ($group->isMember($my->id) || $group->isAdmin($my->id) || COwnerHelper::isCommunityAdmin()) { $showWall = true; $allowTag = true; } $tmpl = new CTemplate(); CFactory::load('libraries', 'bookmarks'); $bookmarks = new CBookmarks(CRoute::getExternalURL('index.php?option=com_community&view=photos&task=album&albumid=' . $album->id . '&groupid=' . $group->id)); $bookmarksHTML = $bookmarks->getHTML(); $photoCreator = CFactory::getUser($photo->creator); $tmpl->set('bookmarksHTML', $bookmarksHTML); $tmpl->set('showWall', $showWall); $tmpl->set('allowTag', $allowTag); $tmpl->set('isOwner', $group->isAdmin($my->id)); $tmpl->set('photos', $photos); $tmpl->set('default', $default); $tmpl->set('album', $album); $tmpl->set('friends', $friends); $tmpl->set('config', $config); $tmpl->set('photoCreator', $photoCreator); echo $tmpl->fetch('photos.photo'); }
/** * Displays specific groups **/ public function viewGroup($group) { $mainframe =& JFactory::getApplication(); CFactory::load('libraries', 'tooltip'); CFactory::load('libraries', 'wall'); CFactory::load('libraries', 'window'); CFactory::load('libraries', 'videos'); CFactory::load('libraries', 'activities'); CFactory::load('helpers', 'group'); CWindow::load(); $config = CFactory::getConfig(); $document = JFactory::getDocument(); $groupLib = new CGroups(); // Load appropriate models $groupModel = CFactory::getModel('groups'); $wallModel = CFactory::getModel('wall'); $userModel = CFactory::getModel('user'); $discussModel = CFactory::getModel('discussions'); $bulletinModel = CFactory::getModel('bulletins'); $photosModel = CFactory::getModel('photos'); $activityModel = CFactory::getModel('activities'); //$groupid = JRequest::getInt( 'groupid' , '' ); //CError::assert( $groupid , '' , '!empty' , __FILE__ , __LINE__ ); $editGroup = JRequest::getVar('edit', false, 'GET'); $editGroup = $editGroup == 1 ? true : false; $params = $group->getParams(); CFactory::load('helpers', 'string'); $document->setMetaData('title', CStringHelper::escape($group->name)); $document->setMetaData('description', CStringHelper::escape(strip_tags($group->description))); $document->addCustomTag('<link rel="image_src" href="' . JURI::root() . $group->thumb . '" />'); // @rule: Test if the group is unpublished, don't display it at all. if (!$group->published) { $this->_redirectUnpublishGroup(); return; } // Show submenu $this->showSubmenu(); // Set the group info to contain proper <br> $group->description = nl2br($group->description); $this->addPathway(JText::_('COM_COMMUNITY_GROUPS'), CRoute::_('index.php?option=com_community&view=groups')); $this->addPathway(JText::sprintf('COM_COMMUNITY_GROUPS_NAME_TITLE', $group->name), ''); // Load the current browsers data $my = CFactory::getUser(); // If user are invited $isInvited = $groupModel->isInvited($my->id, $group->id); // Get members list for display //$members = $groupModel->getAllMember($group->id); //Set limit for member listing on view group page $limit = 12; $approvedMembers = $groupModel->getMembers($group->id, $limit, true, false, true); CError::assert($approvedMembers, 'array', 'istype', __FILE__, __LINE__); $membersCount = $groupModel->total; // Is there any my friend is the member of this group? $join = ''; $friendsCount = 0; if ($isInvited) { // Get the invitors $invitors = $groupModel->getInvitors($my->id, $group->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 .= ' ' . JText::_('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 group $friendsCount = $groupModel->getFriendsCount($my->id, $group->id); } $admins = $groupModel->getAdmins($group->id, $limit, CC_RANDOMIZE); // Get list of unapproved members $groupModel->getMembers($group->id, null, false); $unapproved = $groupModel->total; //Get list of approved members // Test if the current user is admin $isAdmin = $groupModel->isAdmin($my->id, $group->id); // Test if the current browser is a member of the group $isMember = $groupModel->isMember($my->id, $group->id); $waitingApproval = false; // Test if the current user is banned from this group $isBanned = $group->isBanned($my->id); // Attach avatar of the member // Pre-load multiple users at once $userids = array(); $limitloop = $limit; foreach ($approvedMembers as $uid) { $userids[] = $uid->id; if (--$limitloop < 1) { break; } } CFactory::loadUsers($userids); $limitloop = $limit; for ($i = 0; $i < count($approvedMembers); $i++) { $row =& $approvedMembers[$i]; $approvedMembers[$i] = CFactory::getUser($row->id); if (--$limitloop < 1) { break; } } if ($isBanned) { $mainframe->enqueueMessage(JText::_('COM_COMMUNITY_GROUPS_MEMBER_BANNED'), 'error'); } // If I have tried to join this group, but not yet approved, display a notice if ($groupModel->isWaitingAuthorization($my->id, $group->id)) { $waitingApproval = true; } // Get the walls if (!$isBanned) { $wallContent = CWallLibrary::getWallContents('groups', $group->id, $isAdmin, 10, 0, 'wall.content', 'groups,group'); } else { $wallContent = CWallLibrary::getWallContents('groups', $group->id, $isAdmin, 10, 0, 'wall.content', 'groups,group', null, '1'); } $wallCount = CWallLibrary::getWallCount('groups', $group->id); $viewAllLink = false; if (JRequest::getVar('task', '', 'REQUEST') != 'app') { $viewAllLink = CRoute::_('index.php?option=com_community&view=groups&task=app&groupid=' . $group->id . '&app=walls'); } $wallContent .= CWallLibrary::getViewAllLinkHTML($viewAllLink, $wallCount); $wallForm = ''; CFactory::load('helpers', 'owner'); if (!$config->get('lockgroupwalls') || $config->get('lockgroupwalls') && ($isMember && !$isBanned) && !$waitingApproval || COwnerHelper::isCommunityAdmin()) { $wallForm = CWallLibrary::getWallInputForm($group->id, 'groups,ajaxSaveWall', 'groups,ajaxRemoveWall'); } // Get like CFactory::load('libraries', 'like'); $likes = new CLike(); $likesHTML = $isMember && !$isBanned ? $likes->getHTML('groups', $group->id, $my->id) : $likes->getHtmlPublic('groups', $group->id); // Get discussions data $discussionData = $this->_cachedCall('_getDiscussionListHTML', array($params, $group->id), $group->id, array(COMMUNITY_CACHE_TAG_GROUPS_DETAIL)); $discussionsHTML = $discussionData['HTML']; $totalDiscussion = $discussionData['total']; $discussions = $discussionData['data']; // Get bulletins data $bulletinData = $this->_cachedCall('_getBulletinListHTML', array($group->id), $group->id, array(COMMUNITY_CACHE_TAG_GROUPS_DETAIL)); $totalBulletin = $bulletinData['total']; $bulletinsHTML = $bulletinData['HTML']; $bulletins = $bulletinData['data']; // Get album data $albumData = $this->_cachedCall('_getAlbums', array($params, $group->id), $group->id, array(COMMUNITY_CACHE_TAG_GROUPS_DETAIL)); $albums = $albumData['data']; $totalAlbums = $albumData['total']; // Get video data $videoData = $this->_getVideos($params, $group->id); $videos = $videoData['data']; $totalVideos = $videoData['total']; $tmpl = new CTemplate(); // Get categories list // We should really load this in saperate file // @todo: editing group should really open a new page if ($my->id == $group->ownerid || COwnerHelper::isCommunityAdmin()) { $categories = $groupModel->getCategories(); CError::assert($categories, 'array', 'istype', __FILE__, __LINE__); $tmpl->set('categories', $categories); } $isMine = $my->id == $group->ownerid; // Get reporting html CFactory::load('libraries', 'reporting'); $report = new CReportingLibrary(); $reportHTML = $report->getReportingHTML(JText::_('COM_COMMUNITY_REPORT_GROUP'), 'groups,reportGroup', array($group->id)); $isSuperAdmin = COwnerHelper::isCommunityAdmin(); if ($group->approvals == '1' && !$isMine && !$isMember && !$isSuperAdmin) { $this->addWarning(JText::_('COM_COMMUNITY_GROUPS_PRIVATE_NOTICE')); } $videoThumbWidth = CVideoLibrary::thumbSize('width'); $videoThumbHeight = CVideoLibrary::thumbSize('height'); $eventsModel = CFactory::getModel('Events'); $tmpEvents =& $eventsModel->getGroupEvents($group->id, $params->get('grouprecentevents', GROUP_EVENT_RECENT_LIMIT)); $totalEvents = $eventsModel->getTotalGroupEvents($group->id); $events = array(); foreach ($tmpEvents as $event) { $table =& JTable::getInstance('Event', 'CTable'); $table->bind($event); $events[] = $table; } $allowManagePhotos = CGroupHelper::allowManagePhoto($group->id); $allowManageVideos = CGroupHelper::allowManageVideo($group->id); $allowCreateEvent = CGroupHelper::allowCreateEvent($my->id, $group->id); CFactory::load('libraries', 'bookmarks'); $bookmarks = new CBookmarks(CRoute::getExternalURL('index.php?option=com_community&view=groups&task=viewgroup&groupid=' . $group->id)); $bookmarksHTML = $bookmarks->getHTML(); $isCommunityAdmin = COwnerHelper::isCommunityAdmin(); if ($group->approvals == '0' || $isMine || $isMember && !$isBanned || $isCommunityAdmin) { // Set feed url $feedLink = CRoute::_('index.php?option=com_community&view=groups&task=viewbulletins&groupid=' . $group->id . '&format=feed'); $feed = '<link rel="alternate" type="application/rss+xml" title="' . JText::_('COM_COMMUNITY_SUBSCRIBE_TO_BULLETIN_FEEDS') . '" href="' . $feedLink . '"/>'; $document->addCustomTag($feed); $feedLink = CRoute::_('index.php?option=com_community&view=groups&task=viewdiscussions&groupid=' . $group->id . '&format=feed'); $feed = '<link rel="alternate" type="application/rss+xml" title="' . JText::_('COM_COMMUNITY_SUBSCRIBE_TO_DISCUSSION_FEEDS') . '" href="' . $feedLink . '"/>'; $document->addCustomTag($feed); $feedLink = CRoute::_('index.php?option=com_community&view=photos&groupid=' . $group->id . '&format=feed'); $feed = '<link rel="alternate" type="application/rss+xml" title="' . JText::_('COM_COMMUNITY_SUBSCRIBE_TO_GROUP_PHOTOS_FEEDS') . '" href="' . $feedLink . '"/>'; $document->addCustomTag($feed); $feedLink = CRoute::_('index.php?option=com_community&view=videos&groupid=' . $group->id . '&format=feed'); $feed = '<link rel="alternate" type="application/rss+xml" title="' . JText::_('COM_COMMUNITY_SUBSCRIBE_TO_GROUP_VIDEOS_FEEDS') . '" href="' . $feedLink . '"/>'; $document->addCustomTag($feed); $feedLink = CRoute::_('index.php?option=com_community&view=events&groupid=' . $group->id . '&format=feed'); $feed = '<link rel="alternate" type="application/rss+xml" title="' . JText::_('COM_COMMUNITY_SUBSCRIBE_TO_GROUP_EVENTS_FEEDS') . '" href="' . $feedLink . '"/>'; $document->addCustomTag($feed); } $friendsModel = CFactory::getModel('Friends'); $groupsModel = CFactory::getModel('Groups'); CFactory::load('libraries', 'invitation'); $inviteHTML = CInvitation::getHTML(null, 'groups,inviteUsers', $group->id); // Add tagging code /* $tagsHTML = ''; if($config->get('tags_groups')){ CFactory::load('libraries', 'tags'); $tags = new CTags(); $tagsHTML = $tags->getHTML('groups', $group->id, $isAdmin ); } */ // Upgrade wall to stream @since 2.5 if (!$params->get('stream', FALSE)) { $group->upgradeWallToStream(); } // Add custom stream $activities = new CActivities(); $streamHTML = $groupLib->getStreamHTML($group); $totalStream = $activityModel->getTotalActivities(array("`groupid` = '{$group->id}'")); CFactory::load('libraries', 'userstatus'); $creators = array(); $creators[] = CUserStatusCreator::getMessageInstance(); if ($isAdmin && $params->get('photopermission') == 1 || $isMember && $params->get('photopermission') == 2) { $creators[] = CUserStatusCreator::getPhotoInstance(); } if ($isAdmin && $params->get('videopermission') == 1 || $isMember && $params->get('videopermission') == 2) { $creators[] = CUserStatusCreator::getVideoInstance(); } if ($allowCreateEvent && $config->get('group_events') && $config->get('enableevents') && ($config->get('createevents') || COwnerHelper::isCommunityAdmin())) { $creators[] = CUserStatusCreator::getEventInstance(); } $status = new CUserStatus($group->id, 'groups', $creators); // Get Event Admins $groupAdmins = $group->getAdmins(12, CC_RANDOMIZE); $adminsInArray = array(); // Attach avatar of the admin for ($i = 0; $i < count($groupAdmins); $i++) { $row =& $groupAdmins[$i]; $admin = CFactory::getUser($row->id); array_push($adminsInArray, '<a href="' . CUrlHelper::userLink($admin->id) . '">' . $admin->getDisplayName() . '</a>'); } $adminsList = ltrim(implode(', ', $adminsInArray), ','); echo $tmpl->setMetaTags('group', $group)->set('streamHTML', $streamHTML)->set('status', $status)->set('likesHTML', $likesHTML)->set('events', $events)->set('totalEvents', $totalEvents)->set('inviteHTML', $inviteHTML)->set('showEvents', $config->get('group_events') && $config->get('enableevents'))->set('showPhotos', $params->get('photopermission') != -1)->set('showVideos', $params->get('videopermission') != -1)->set('bookmarksHTML', $bookmarksHTML)->set('allowManagePhotos', $allowManagePhotos)->set('allowManageVideos', $allowManageVideos)->set('allowCreateEvent', $allowCreateEvent)->set('videos', $videos)->set('videoThumbWidth', $videoThumbWidth)->set('videoThumbHeight', $videoThumbHeight)->set('totalVideos', $totalVideos)->set('albums', $albums)->set('totalAlbums', $totalAlbums)->set('reportHTML', $reportHTML)->set('editGroup', $editGroup)->set('waitingApproval', $waitingApproval)->set('config', $config)->set('my', $my)->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('group', $group)->set('totalBulletin', $totalBulletin)->set('totalDiscussion', $totalDiscussion)->set('totalVideos', $totalVideos)->set('members', $approvedMembers)->set('bulletins', $bulletins)->set('wallForm', $wallForm)->set('wallContent', $wallContent)->set('discussions', $discussions)->set('discussionsHTML', $discussionsHTML)->set('bulletinsHTML', $bulletinsHTML)->set('isCommunityAdmin', $isCommunityAdmin)->set('isBanned', $isBanned)->set('isPrivate', $group->approvals)->set('limit', $limit)->set('adminsList', $adminsList)->set('alertNewDiscussion', $my->count('group_discussion_' . $group->id) != $totalDiscussion)->set('alertNewBulletin', $my->count('group_bulletin_' . $group->id) != $totalBulletin)->set('alertNewStream', $my->count('group_activity_' . $group->id) != $totalStream)->fetch('groups.viewgroup'); // Update stream count cache, can only set this after we've set the alert aove $my->setCount('group_activity_' . $group->id, $totalStream); }
public function setSubmenus() { CFactory::load('helpers', 'group'); CFactory::load('helpers', 'owner'); $task = JRequest::getVar('task', '', 'GET'); $albumId = JRequest::getInt('albumid', 0, 'REQUEST'); $groupId = JRequest::getInt('groupid', '', 'REQUEST'); if (!empty($albumId)) { $album = JTable::getInstance('Album', 'CTable'); $album->load($albumId); $groupId = $album->groupid; } CFactory::load('models', 'groups'); $config = CFactory::getConfig(); $group = JTable::getInstance('Group', 'CTable'); $group->load($groupId); $my = CFactory::getUser(); $albumId = $albumId != 0 ? '&albumid=' . $albumId : ''; // Check if the current user is banned from this group $isBanned = $group->isBanned($my->id); CFactory::load('helpers', 'group'); $allowManagePhotos = CGroupHelper::allowManagePhoto($this->groupid); if (($task == 'uploader' || $task == 'photo') && !empty($albumId)) { $this->view->addSubmenuItem('index.php?option=com_community&view=photos&groupid=' . $this->groupid . '&task=album' . $albumId, JText::_('COM_COMMUNITY_PHOTOS_BACK_TO_ALBUM')); } if ($allowManagePhotos && $task != 'photo' && !$isBanned) { $rawAlbumId = ""; if (!empty($albumId)) { $rawAlbumId = explode('=', $albumId); $rawAlbumId = $rawAlbumId[1]; } if ($task != 'newalbum' && $task != 'editAlbum') { $this->view->addSubmenuItem('javascript:void(0);', JText::_('COM_COMMUNITY_PHOTOS_UPLOAD_PHOTOS'), 'joms.notifications.showUploadPhoto(\'' . $rawAlbumId . '\',' . $this->groupid . '); return false;', true); } if ($task == 'album' && ($my->id == $album->creator && $allowManagePhotos || $group->isAdmin($my->id) || COwnerHelper::isCommunityAdmin())) { $this->view->addSubmenuItem('index.php?option=com_community&view=photos&task=editAlbum&albumid=' . $album->id . '&groupid=' . $group->id . '&referrer=albumgrp', JText::_('COM_COMMUNITY_EDIT_ALBUM'), '', true); } $this->view->addSubmenuItem('index.php?option=com_community&view=photos&task=newalbum&groupid=' . $this->groupid, JText::_('COM_COMMUNITY_PHOTOS_CREATE_PHOTO_ALBUM'), '', true); } if ($task == 'photo') { if ($album->hasAccess($my->id, 'deletephotos')) { $this->view->addSubmenuItem('', JText::_('COM_COMMUNITY_PHOTOS_DELETE'), "joms.gallery.confirmRemovePhoto();", true); } if ($my->id == $album->creator) { $this->view->addSubmenuItem('', JText::_('COM_COMMUNITY_PHOTOS_SET_AVATAR'), "joms.gallery.setProfilePicture();", true); } if ($my->id == $album->creator && $allowManagePhotos || $group->isAdmin($my->id) || COwnerHelper::isCommunityAdmin()) { $this->view->addSubmenuItem('', JText::_('COM_COMMUNITY_PHOTOS_SET_AS_ALBUM_COVER'), "joms.gallery.setPhotoAsDefault();", true); } if (!$config->get('deleteoriginalphotos')) { $this->view->addSubmenuItem('', JText::_('COM_COMMUNITY_DOWNLOAD_IMAGE'), "joms.gallery.downloadPhoto();", true); } if ($groupId != '') { $this->view->addSubmenuItem('index.php?option=com_community&view=photos&task=newalbum&groupid=' . $groupId, JText::_('COM_COMMUNITY_PHOTOS_CREATE_PHOTO_ALBUM'), '', true); } else { $this->view->addSubmenuItem('index.php?option=com_community&view=photos&task=newalbum&userid=' . $my->id, JText::_('COM_COMMUNITY_PHOTOS_CREATE_PHOTO_ALBUM'), '', true); } } $this->view->addSubmenuItem('index.php?option=com_community&view=groups&task=viewgroup&groupid=' . $this->groupid, JText::_('COM_COMMUNITY_GROUPS_BACK_TO_GROUP')); }
/** * Deprecated since 1.8 * Use CGroupHelper::allowManagePhoto instead. */ function cAllowManagePhoto($groupId) { return CGroupHelper::allowManagePhoto($groupId); }
public function isAllowedAlbumCreation() { CFactory::load('helpers', 'group'); $allowManagePhotos = CGroupHelper::allowManagePhoto($this->groupid); return $allowManagePhotos; }
/** * Allows us to test if the user has access to the album * */ public function hasAccess($userId, $permissionType) { // @rule: For super admin, regardless of what permission, they should be able to access if (COwnerHelper::isCommunityAdmin()) { return true; } switch ($this->type) { case PHOTOS_PROFILE_TYPE: case PHOTOS_USER_TYPE: if ($permissionType == 'upload') { return $this->creator == $userId; } if ($permissionType == 'deletephotos') { return $this->creator == $userId; } break; case PHOTOS_GROUP_TYPE: $group = JTable::getInstance('Group', 'CTable'); $group->load($this->groupid); if ($permissionType == 'upload') { return CGroupHelper::allowManagePhoto($group->id); } if ($permissionType == 'deletephotos') { return $this->creator == $userId || $group->isAdmin($userId); } return false; break; case PHOTOS_EVENT_TYPE: $event = JTable::getInstance('Event', 'CTable'); $event->load($this->eventid); if ($permissionType == 'upload') { return CEventHelper::allowManagePhoto($event->id); } if ($permissionType == 'deletephotos') { return $this->creator == $userId || $event->isAdmin($userId); } return false; break; } }
public static function showGroupMiniHeader($groupId) { CMiniHeader::load(); $mainframe = JFactory::getApplication(); $jinput = $mainframe->input; $option = $jinput->request->get('option', '', 'STRING'); //JRequest::getVar('option', '', 'REQUEST'); JFactory::getLanguage()->load('com_community'); $group = JTable::getInstance('Group', 'CTable'); $group->load($groupId); $my = CFactory::getUser(); $isBanned = $group->isBanned($my->id); // @rule: Test if the group is unpublished, don't display it at all. if (!$group->published) { return ''; } if (!empty($group->id) && $group->id != 0) { $fileModel = CFactory::getModel('files'); $params = $group->getParams(); $isMember = $group->isMember($my->id); $config = CFactory::getConfig(); $eventsModel = CFactory::getModel('Events'); $totalEvents = $eventsModel->getTotalGroupEvents($group->id); $discussModel = CFactory::getModel('discussions'); $discussions = $discussModel->getDiscussionTopics($group->id, '10', 0); $totalDiscussion = $discussModel->total; $bulletinModel = CFactory::getModel('bulletins'); $bulletins = $bulletinModel->getBulletins($groupId); $totalBulletin = $bulletinModel->total; $allowManagePhotos = CGroupHelper::allowManagePhoto($group->id); $allowManageVideos = CGroupHelper::allowManageVideo($group->id); $allowCreateEvent = CGroupHelper::allowCreateEvent($my->id, $group->id); $photosModel = CFactory::getModel('photos'); $albums = $photosModel->getGroupAlbums($group->id, true, false, $params->get('grouprecentphotos', GROUP_PHOTO_RECENT_LIMIT)); $totalPhotos = 0; foreach ($albums as $album) { $albumParams = new CParameter($album->params); $totalPhotos = $totalPhotos + $albumParams->get('count'); } $videoModel = CFactory::getModel('videos'); $tmpVideos = $videoModel->getGroupVideos($groupId, '', $params->get('grouprecentvideos', GROUP_VIDEO_RECENT_LIMIT)); $totalVideos = $videoModel->total ? $videoModel->total : 0; // Get like $likes = new CLike(); $isUserLiked = false; if ($isLikeEnabled = $likes->enabled('groups')) { $isUserLiked = $likes->userLiked('groups', $group->id, $my->id); } $totalLikes = $likes->getLikeCount('groups', $group->id); $tmpl = new CTemplate(); $groupModel = CFactory::getModel('groups'); $membersCount = $group->membercount; // If I have tried to join this group, but not yet approved, display a notice $waitingApproval = false; if ($groupModel->isWaitingAuthorization($my->id, $group->id)) { $waitingApproval = true; } $groupsModel = CFactory::getModel('groups'); $bannedMembers = $groupsModel->getBannedMembers($group->id); $tmpl->set('my', $my)->set('isBanned', $isBanned)->set('group', $group)->set('membersCount', $membersCount)->set('showEvents', $config->get('group_events') && $config->get('enableevents') && $params->get('eventpermission', 1) >= 1)->set('totalEvents', $totalEvents)->set('totalDiscussion', $totalDiscussion)->set('totalBulletin', $totalBulletin)->set('showPhotos', $params->get('photopermission') != -1 && $config->get('enablephotos') && $config->get('groupphotos'))->set('showVideos', $params->get('videopermission') != -1 && $config->get('enablevideos') && $config->get('groupvideos'))->set('isSuperAdmin', COwnerHelper::isCommunityAdmin())->set('isMine', $my->id == $group->ownerid)->set('totalVideos', $totalVideos)->set('totalPhotos', $totalPhotos)->set('isAdmin', $groupModel->isAdmin($my->id, $group->id))->set('isFile', $fileModel->isfileAvailable($group->id, 'group'))->set('isLikeEnabled', $isLikeEnabled)->set('totalLikes', $totalLikes)->set('isMember', $isMember)->set('config', $config)->set('totalBannedMembers', count($bannedMembers))->set('isUserLiked', $isUserLiked)->set('allowManagePhotos', $allowManagePhotos)->set('allowManageVideos', $allowManageVideos)->set('allowCreateEvent', $allowCreateEvent)->set('waitingApproval', $waitingApproval); $showMiniHeader = $option == 'com_community' ? $tmpl->fetch('groups/miniheader') : '<div id="community-wrap">' . $tmpl->fetch('groups/miniheader') . '</div>'; return $showMiniHeader; } }
/** * Displays specific groups **/ function viewGroup() { $mainframe =& JFactory::getApplication(); CFactory::load('libraries', 'tooltip'); CFactory::load('libraries', 'wall'); CFactory::load('libraries', 'window'); CWindow::load(); $config = CFactory::getConfig(); $document =& JFactory::getDocument(); // Load appropriate models $groupModel = CFactory::getModel('groups'); $wallModel = CFactory::getModel('wall'); $userModel = CFactory::getModel('user'); $discussModel = CFactory::getModel('discussions'); $bulletinModel = CFactory::getModel('bulletins'); $photosModel = CFactory::getModel('photos'); $groupid = JRequest::getInt('groupid', ''); CError::assert($groupid, '', '!empty', __FILE__, __LINE__); $editGroup = JRequest::getVar('edit', false, 'GET'); $editGroup = $editGroup == 1 ? true : false; // Load the group table. $group =& JTable::getInstance('Group', 'CTable'); $group->load($groupid); $params = $group->getParams(); CFactory::load('helpers', 'string'); $mainframe->appendMetaTag('title', CStringHelper::escape($group->name)); $mainframe->appendMetaTag('description', CStringHelper::escape(strip_tags($group->description))); $mainframe->addCustomHeadTag('<link rel="image_src" href="' . JURI::root() . $group->thumb . '" />'); // @rule: Test if the group is unpublished, don't display it at all. if (!$group->published) { echo JText::_('CC GROUP UNPUBLISHED'); return; } // Show submenu $this->showSubmenu(); // Set the group info to contain proper <br> $group->description = nl2br($group->description); $this->addPathway(JText::_('CC GROUPS'), CRoute::_('index.php?option=com_community&view=groups')); $this->addPathway(JText::sprintf('CC VIEW GROUP TITLE', $group->name), ''); // Load the current browsers data $my = CFactory::getUser(); // If user are invited $isInvited = $groupModel->isInvited($my->id, $groupid); // Get members list for display $members = $groupModel->getMembers($groupid, 12, true, CC_RANDOMIZE, true); $membersCount = $groupModel->total; CError::assert($members, 'array', 'istype', __FILE__, __LINE__); // Is there any my friend is the member of this group? $join = ''; $friendsCount = 0; if ($isInvited) { // Get the invitors $invitors = $groupModel->getInvitors($my->id, $groupid); 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 .= ' ' . JText::_('CC 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 group $friendsCount = $groupModel->getFriendsCount($my->id, $groupid); } $admins = $groupModel->getAdmins($groupid, 12, CC_RANDOMIZE); $adminsCount = $groupModel->total; // Get the news $bulletins = $bulletinModel->getBulletins($group->id); $totalBulletin = $bulletinModel->total; CError::assert($bulletins, 'array', 'istype', __FILE__, __LINE__); // Get discussions $discussions = $discussModel->getDiscussionTopics($group->id, '10', $params->get('discussordering', DISCUSSION_ORDER_BYLASTACTIVITY)); $totalDiscussion = $discussModel->total; CError::assert($discussions, 'array', 'istype', __FILE__, __LINE__); // Get list of unapproved members $unapproved = $groupModel->getMembers($group->id, null, false); // Attach avatar of the member to the discussions for ($i = 0; $i < count($discussions); $i++) { $row =& $discussions[$i]; $row->user = CFactory::getUser($row->creator); // Get last replier for the discussion $row->lastreplier = $discussModel->getLastReplier($row->id); if ($row->lastreplier) { $row->lastreplier->post_by = CFactory::getUser($row->lastreplier->post_by); } } // Attach avatar of the admin for ($i = 0; $i < count($admins); $i++) { $row =& $admins[$i]; $admins[$i] = CFactory::getUser($row->id); } // Attach avatar of the member // Pre-load multiple users at once $userids = array(); foreach ($members as $uid) { $userids[] = $uid->id; } CFactory::loadUsers($userids); for ($i = 0; $i < count($members); $i++) { $row =& $members[$i]; $members[$i] = CFactory::getUser($row->id); } // Test if the current user is admin $isAdmin = $groupModel->isAdmin($my->id, $group->id); // Test if the current browser is a member of the group $isMember = $group->isMember($my->id); $waitingApproval = false; // Test if the current user is banned from this group $isBanned = $group->isBanned($my->id); if ($isBanned) { $mainframe->enqueueMessage(JText::_('CC GROUP MEMBER BANNED'), 'error'); } // If I have tried to join this group, but not yet approved, display a notice if ($groupModel->isWaitingAuthorization($my->id, $group->id)) { $waitingApproval = true; } // Get the walls $wallContent = CWallLibrary::getWallContents('groups', $group->id, $isAdmin, 10, 0, 'wall.content', 'groups,group'); $wallCount = CWallLibrary::getWallCount('groups', $group->id); $viewAllLink = false; if (JRequest::getVar('task', '', 'REQUEST') != 'app') { $viewAllLink = CRoute::_('index.php?option=com_community&view=groups&task=app&groupid=' . $group->id . '&app=walls'); } $wallContent .= CWallLibrary::getViewAllLinkHTML($viewAllLink, $wallCount); $wallForm = ''; CFactory::load('helpers', 'owner'); if (!$config->get('lockgroupwalls') || $config->get('lockgroupwalls') && ($isMember && !$isBanned) && !$waitingApproval || COwnerHelper::isCommunityAdmin()) { $wallForm = CWallLibrary::getWallInputForm($group->id, 'groups,ajaxSaveWall', 'groups,ajaxRemoveWall'); } // Get like CFactory::load('libraries', 'like'); $likes = new CLike(); $likesHTML = $isMember && !$isBanned ? $likes->getHTML('groups', $group->id, $my->id) : $likes->getHtmlPublic('groups', $group->id); // Process discussions HTML output $tmpl = new CTemplate(); $tmpl->set('discussions', $discussions); $tmpl->set('groupId', $group->id); $discussionsHTML = $tmpl->fetch('groups.discussionlist'); unset($tmpl); // Get the creator of the discussions for ($i = 0; $i < count($bulletins); $i++) { $row =& $bulletins[$i]; $row->creator = CFactory::getUser($row->created_by); } // Only trigger the bulletins if there is really a need to. if (!empty($bulletins)) { $appsLib =& CAppPlugins::getInstance(); $appsLib->loadApplications(); // Format the bulletins // the bulletins need to be an array or reference to work around // PHP 5.3 pass by value $args = array(); foreach ($bulletins as &$b) { $args[] =& $b; } $appsLib->triggerEvent('onBulletinDisplay', $args); } // Process bulletins HTML output $tmpl = new CTemplate(); $tmpl->set('bulletins', $bulletins); $tmpl->set('groupId', $group->id); $bulletinsHTML = $tmpl->fetch('groups.bulletinlist'); unset($tmpl); $tmpl = new CTemplate(); // Get categories list // We should really load this in saperate file // @todo: editing group should really open a new page if ($my->id == $group->ownerid || COwnerHelper::isCommunityAdmin()) { $categories = $groupModel->getCategories(); CError::assert($categories, 'array', 'istype', __FILE__, __LINE__); $tmpl->set('categories', $categories); } $isMine = $my->id == $group->ownerid; // Get reporting html CFactory::load('libraries', 'reporting'); $report = new CReportingLibrary(); $reportHTML = $report->getReportingHTML(JText::_('CC REPORT GROUP'), 'groups,reportGroup', array($group->id)); $isSuperAdmin = COwnerHelper::isCommunityAdmin(); if ($group->approvals == '1' && !$isMine && !$isMember && !$isSuperAdmin) { $this->addWarning(JText::_('CC PRIVATE GROUP NOTICE')); } $albums =& $photosModel->getGroupAlbums($group->id, true, false, $params->get('grouprecentphotos', GROUP_PHOTO_RECENT_LIMIT)); $totalAlbums = $photosModel->total; CFactory::load('helpers', 'videos'); CFactory::load('libraries', 'videos'); CFactory::load('helpers', 'group'); $videoModel = CFactory::getModel('videos'); $tmpVideos = $videoModel->getGroupVideos($group->id, '', $params->get('grouprecentvideos', GROUP_VIDEO_RECENT_LIMIT)); $videos = array(); if ($tmpVideos) { foreach ($tmpVideos as $videoEntry) { $video =& JTable::getInstance('Video', 'CTable'); $video->bind($videoEntry); $videos[] = $video; } } $videoThumbWidth = CVideoLibrary::thumbSize('width'); $videoThumbHeight = CVideoLibrary::thumbSize('height'); $totalVideos = $videoModel->total; $eventsModel = CFactory::getModel('Events'); $tmpEvents =& $eventsModel->getGroupEvents($group->id, $params->get('grouprecentevents', GROUP_EVENT_RECENT_LIMIT)); $totalEvents = $eventsModel->getTotalGroupEvents($group->id); $events = array(); foreach ($tmpEvents as $event) { $table =& JTable::getInstance('Event', 'CTable'); $table->bind($event); $events[] = $table; } $allowManagePhotos = CGroupHelper::allowManagePhoto($group->id); $allowManageVideos = CGroupHelper::allowManageVideo($group->id); $allowCreateEvent = CGroupHelper::allowCreateEvent($my->id, $group->id); CFactory::load('libraries', 'bookmarks'); $bookmarks = new CBookmarks(CRoute::getExternalURL('index.php?option=com_community&view=groups&task=viewgroup&groupid=' . $group->id)); $bookmarksHTML = $bookmarks->getHTML(); $isCommunityAdmin = COwnerHelper::isCommunityAdmin(); if ($group->approvals == '0' || $isMine || $isMember && !$isBanned || $isCommunityAdmin) { // Set feed url $feedLink = CRoute::_('index.php?option=com_community&view=groups&task=viewbulletins&groupid=' . $group->id . '&format=feed'); $feed = '<link rel="alternate" type="application/rss+xml" title="' . JText::_('CC SUBSCRIBE TO BULLETIN FEEDS') . '" href="' . $feedLink . '"/>'; $document->addCustomTag($feed); $feedLink = CRoute::_('index.php?option=com_community&view=groups&task=viewdiscussions&groupid=' . $group->id . '&format=feed'); $feed = '<link rel="alternate" type="application/rss+xml" title="' . JText::_('CC SUBSCRIBE TO DISCUSSION FEEDS') . '" href="' . $feedLink . '"/>'; $document->addCustomTag($feed); $feedLink = CRoute::_('index.php?option=com_community&view=photos&groupid=' . $group->id . '&format=feed'); $feed = '<link rel="alternate" type="application/rss+xml" title="' . JText::_('CC SUBSCRIBE TO GROUP PHOTOS FEEDS') . '" href="' . $feedLink . '"/>'; $mainframe->addCustomHeadTag($feed); $feedLink = CRoute::_('index.php?option=com_community&view=videos&groupid=' . $group->id . '&format=feed'); $feed = '<link rel="alternate" type="application/rss+xml" title="' . JText::_('CC SUBSCRIBE TO GROUP VIDEOS FEEDS') . '" href="' . $feedLink . '"/>'; $mainframe->addCustomHeadTag($feed); $feedLink = CRoute::_('index.php?option=com_community&view=events&groupid=' . $group->id . '&format=feed'); $feed = '<link rel="alternate" type="application/rss+xml" title="' . JText::_('CC SUBSCRIBE TO GROUP EVENTS FEEDS') . '" href="' . $feedLink . '"/>'; $mainframe->addCustomHeadTag($feed); } $friendsModel = CFactory::getModel('Friends'); $groupsModel = CFactory::getModel('Groups'); $tmpFriends = $friendsModel->getFriends($my->id, 'name', false); $friends = array(); for ($i = 0; $i < count($tmpFriends); $i++) { $friend =& $tmpFriends[$i]; $groupInvite =& JTable::getInstance('GroupInvite', 'CTable'); $groupInvite->load($group->id, $friend->id); if (!$groupsModel->isMember($friend->id, $group->id)) { $friends[] = $friend; } } unset($tmpFriends); CFactory::load('libraries', 'invitation'); $inviteHTML = CInvitation::getHTML($friends, 'groups,inviteUsers', $group->id); $tmpl->setMetaTags('group', $group); $tmpl->set('likesHTML', $likesHTML); $tmpl->set('events', $events); $tmpl->set('totalEvents', $totalEvents); $tmpl->set('inviteHTML', $inviteHTML); $tmpl->set('showEvents', $params->get('eventpermission') != -1); $tmpl->set('showPhotos', $params->get('photopermission') != -1); $tmpl->set('showVideos', $params->get('videopermission') != -1); $tmpl->set('bookmarksHTML', $bookmarksHTML); $tmpl->set('allowManagePhotos', $allowManagePhotos); $tmpl->set('allowManageVideos', $allowManageVideos); $tmpl->set('allowCreateEvent', $allowCreateEvent); $tmpl->set('videos', $videos); $tmpl->set('videoThumbWidth', $videoThumbWidth); $tmpl->set('videoThumbHeight', $videoThumbHeight); $tmpl->set('totalVideos', $totalVideos); $tmpl->set('albums', $albums); $tmpl->set('totalAlbums', $totalAlbums); $tmpl->set('reportHTML', $reportHTML); $tmpl->set('editGroup', $editGroup); $tmpl->set('waitingApproval', $waitingApproval); $tmpl->set('config', $config); $tmpl->set('my', $my); $tmpl->set('isMine', $isMine); $tmpl->set('isAdmin', $isAdmin); $tmpl->set('isSuperAdmin', $isSuperAdmin); $tmpl->set('isMember', $isMember); $tmpl->set('isInvited', $isInvited); $tmpl->set('friendsCount', $friendsCount); $tmpl->set('join', $join); $tmpl->set('unapproved', count($unapproved)); $tmpl->set('membersCount', $membersCount); $tmpl->set('group', $group); $tmpl->set('totalBulletin', $totalBulletin); $tmpl->set('totalDiscussion', $totalDiscussion); $tmpl->set('members', $members); $tmpl->set('admins', $admins); $tmpl->set('adminsCount', $adminsCount); $tmpl->set('bulletins', $bulletins); $tmpl->set('wallForm', $wallForm); $tmpl->set('wallContent', $wallContent); $tmpl->set('discussions', $discussions); $tmpl->set('discussionsHTML', $discussionsHTML); $tmpl->set('bulletinsHTML', $bulletinsHTML); $tmpl->set('isCommunityAdmin', $isCommunityAdmin); $tmpl->set('isBanned', $isBanned); echo $tmpl->fetch('groups.viewgroup'); }
public function setSubmenus() { CFactory::load('helpers', 'group'); CFactory::load('helpers', 'owner'); $task = JRequest::getVar('task', '', 'GET'); $albumId = JRequest::getInt('albumid', 0, 'REQUEST'); $groupId = JRequest::getInt('groupid', '', 'REQUEST'); if (!empty($albumId)) { $album = JTable::getInstance('Album', 'CTable'); $album->load($albumId); $groupId = $album->groupid; } CFactory::load('models', 'groups'); $config = CFactory::getConfig(); $group = JTable::getInstance('Group', 'CTable'); $group->load($groupId); $my = CFactory::getUser(); $albumId = $albumId != 0 ? '&albumid=' . $albumId : ''; // Check if the current user is banned from this group $isBanned = $group->isBanned($my->id); CFactory::load('helpers', 'group'); $allowManagePhotos = CGroupHelper::allowManagePhoto($this->groupid); if (($task == 'uploader' || $task == 'photo') && !empty($albumId)) { $this->view->addSubmenuItem('index.php?option=com_community&view=photos&groupid=' . $this->groupid . '&task=album' . $albumId, JText::_('CC BACK TO ALBUM')); } if ($allowManagePhotos && $task != 'photo' && !$isBanned) { $this->view->addSubmenuItem('index.php?option=com_community&view=photos&task=uploader&groupid=' . $this->groupid . $albumId, JText::_('CC UPLOAD PHOTOS'), '', true); if ($task == 'album' && ($my->id == $album->creator && $allowManagePhotos || $group->isAdmin($my->id) || COwnerHelper::isCommunityAdmin())) { $this->view->addSubmenuItem('index.php?option=com_community&view=photos&task=editAlbum&albumid=' . $album->id . '&groupid=' . $group->id, JText::_('CC EDIT ALBUM'), '', true); } $this->view->addSubmenuItem('index.php?option=com_community&view=photos&task=newalbum&groupid=' . $this->groupid, JText::_('CC ADD ALBUM'), '', true); } if ($task == 'photo') { if ($album->hasAccess($my->id, 'deletephotos')) { $this->view->addSubmenuItem('', JText::_('CC DELETE IMAGE'), "joms.gallery.confirmRemovePhoto();", true); } if ($my->id == $album->creator) { $this->view->addSubmenuItem('', JText::_('CC SET AS PROFILE PICTURE'), "joms.gallery.setProfilePicture();", true); } if ($my->id == $album->creator && $allowManagePhotos || $group->isAdmin($my->id) || COwnerHelper::isCommunityAdmin()) { $this->view->addSubmenuItem('', JText::_('CC SET IMAGE AS ALBUM COVER'), "joms.gallery.setPhotoAsDefault();", true); } if (!$config->get('deleteoriginalphotos')) { $this->view->addSubmenuItem('', JText::_('CC DOWNLOAD IMAGE'), "joms.gallery.downloadPhoto();", true); } } $this->view->addSubmenuItem('index.php?option=com_community&view=groups&task=viewgroup&groupid=' . $this->groupid, JText::_('CC BACK TO GROUP')); }