File Manager

Current Directory: /home/astoriaah/www/components/com_sh404sef/sef_ext
Viewing File: /home/astoriaah/www/components/com_sh404sef/sef_ext/com_community.php
<?php /** * sh404SEF - SEO extension for Joomla! * * @author Yannick Gaultier * @copyright (c) Yannick Gaultier - Weeblr llc - 2022 * @package sh404SEF * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL * @version 4.24.1.4308 * @date 2022-05-31 */ defined('_JEXEC') or die(''); // Mighty Touch and JomSocial use same component name (com_community) // check if JomSocial is installed before using this code if (!function_exists('shGetJSVersion')) { function shGetJSVersion() { static $version = null; if (is_null($version)) { // Load the local XML file first to get the local version $xmlFile = JPATH_ROOT . '/administrator/components/com_community/community.xml'; jimport('joomla.filesystem.file'); if (!JFile::exists($xmlFile)) { return $version; } $xml = simplexml_load_file($xmlFile); $version = (string) $xml->version; } return $version; } } // get JomSocial installed version $jsVersion = shGetJSVersion(); // if null, JS is not installed, this is probably // a Mighty Touch url if (is_null($jsVersion)) { // return; } // ------------------ standard plugin initialize function - don't change --------------------------- global $sh_LANG; $sefConfig = &Sh404sefFactory::getConfig(); $shLangName = ''; $shLangIso = ''; $title = array(); $shItemidString = ''; $dosef = shInitializePlugin($lang, $shLangName, $shLangIso, $option); if ($dosef == false) { return; } // ------------------ standard plugin initialize function - don't change --------------------------- // do something about that Itemid thing if (!preg_match('/Itemid=[0-9]+/iu', $string)) { // if no Itemid in non-sef URL if ($sefConfig->shInsertGlobalItemidIfNone && !empty($shCurrentItemid)) { $string .= '&Itemid=' . $shCurrentItemid; // append current Itemid $Itemid = $shCurrentItemid; shAddToGETVarsList('Itemid', $Itemid); } if ($sefConfig->shInsertTitleIfNoItemid) { $title[] = $sefConfig->shDefaultMenuItemName ? $sefConfig->shDefaultMenuItemName : getMenuTitle($option, null, $shCurrentItemid); } $shItemidString = $sefConfig->shAlwaysInsertItemid ? JText::_('COM_SH404SEF_ALWAYS_INSERT_ITEMID_PREFIX') . $sefConfig->replacement . $shCurrentItemid : ''; } else { // if Itemid in non-sef URL $shItemidString = $sefConfig->shAlwaysInsertItemid ? JText::_('COM_SH404SEF_ALWAYS_INSERT_ITEMID_PREFIX') . $sefConfig->replacement . $Itemid : ''; } // load JS language strings. If we are creating urls on the // fly, after an automatic redirection, they may not be loaded yet $lang = JFactory::getLanguage(); $lang->load('com_community'); // real start $Itemid = isset($Itemid) ? $Itemid : null; $limit = isset($limit) ? $limit : null; $limitstart = isset($limitstart) ? $limitstart : null; if (!function_exists('shGetJSText')) { function shGetJSText($id) { static $prefix = null; if (is_null($prefix)) { $version = shGetJSVersion(); $prefix = version_compare(shGetJSVersion(), '2.2.0') == -1 ? 'CC ' : 'COM_COMMUNITY_'; } // id translation pre-2.2 to 2.2 if ($prefix !== 'CC ') { switch ($id) { case 'GROUP': $id = 'SINGULAR_GROUP'; break; case 'SEARCH': $id = 'GROUPS_SEARCH'; break; case 'MY GROUPS TITLE': $id = 'GROUPS_MY_GROUPS'; break; case 'CREATE NEW GROUP TITLE': $id = 'GROUPS_CREATE_NEW_GROUP'; break; case 'CREATE NEW EVENT': $id = 'EVENTS_CREATE_TITLE'; break; case 'JOIN GROUP TITLE': $id = 'GROUPS_JOIN'; break; case 'LEAVE GROUP TITLE': $id = 'GROUPS_LEAVE'; break; case 'SHOW ALL BULLETINS': $id = 'GROUPS_BULLETIN_VIEW_ALL'; break; case 'ADD BULLETIN': $id = 'GROUPS_BULLETIN_CREATE'; break; case 'SHOW ALL DISCUSSIONS': $id = 'GROUPS_VIEW_ALL_DISCUSSIONS'; break; case 'ADD DISCUSSION': $id = 'GROUPS_DISCUSSION_CREATE'; break; case 'EDIT AVATAR': $id = 'PROFILE_AVATAR_EDIT'; break; case 'EDIT GROUP AVATAR': $id = 'GROUPS_AVATAR_EDIT'; break; case 'EDIT EVENT AVATAR': $id = 'EVENTS_EDIT_AVATAR'; break; case 'EDIT': $id = 'GROUPS_EDIT'; break; case 'EDIT PROFILE': $id = 'PROFILE_EDIT'; break; case 'EDIT EVENT DETAILS': $id = 'EVENTS_EDIT'; break; case 'MY PHOTOS TITLE': $id = 'PHOTOS_MY_PHOTOS_TITLE'; break; case 'ADD ALBUM': $id = 'PHOTOS_CREATE_PHOTO_ALBUM'; break; case 'UPLOAD PHOTOS': $id = 'PHOTOS_UPLOAD_PHOTOS'; break; case 'MY VIDEOS': $id = 'VIDEOS_MY'; break; case 'REMOVE': return 'remove'; break; case 'SENT': $id = 'INBOX_SENT'; break; case 'WRITE': $id = 'INBOX_WRITE'; break; case 'REQUEST SENT': $id = 'FRIENDS_REQUEST_SENT'; break; case 'PENDING APPROVAL': $id = 'FRIENDS_PENDING_APPROVAL'; break; case 'MY EVENTS': $id = 'EVENTS_MINE'; break; case 'INVITE': $id = 'INVITE_INVITED'; break; case 'BROWSE APPS': $id = 'APPS_BROWSE'; break; case 'LINK VIDEO': $id = 'VIDEOS_LINK'; break; case 'GET AVATAR': return 'GET AVATAR'; break; case 'REGISTERED SUCCESSFULLY': $id = 'USER_REGISTERED'; break; case 'EDIT PRIVACY': $id = 'PROFILE_PRIVACY_EDIT'; break; case 'GROUP MEMBERS': case 'MEMBERS': $id = 'GROUPS_MEMBERS'; break; case 'APPLICATIONS': return 'app'; break; case 'PROFILE': $id = 'GO_TO_PROFILE'; break; } } // finally get text $text = JText::_($prefix . str_replace(' ', '_', $id)); return $text; } } if (!function_exists('shGetJSUsernameSlug')) { function shGetJSUsernameSlug($id, $option, $shLangName) { $sefConfig = &Sh404sefFactory::getConfig(); $slug = ''; if (empty($id)) { return $slug; } try { $result = ShlDbHelper::selectObject('#__users', array('id', 'username', 'name'), array('id' => $id)); } catch (Exception $e) { ShlSystem_Log::error('sh404sef', '%s::%s::%d: %s', __CLASS__, __METHOD__, __LINE__, $e->getMessage()); } // just in case if (empty($result)) { return 'user' . $sefConfig->replacement . $id; } // what prefix ? $prefix = $sefConfig->shJSInsertUserId ? $id : ''; // what should be use as name ? $name = $sefConfig->shJSInsertUserFullName ? $result->name : ''; if (empty($name)) { $name = $sefConfig->shJSInsertUsername ? $result->username : ''; } if (!empty($name)) { $slug = (empty($prefix) ? '' : $prefix . $sefConfig->replacement) . $name; } // if we added the user name or full name to sef url // remove it from query string if (!empty($name) && ($sefConfig->shJSInsertUsername || $sefConfig->shJSInsertUserFullName)) { shRemoveFromGETVarsList('userid'); } return $slug; } } if (!function_exists('shGetJSGroupCategoryTitle')) { function shGetJSGroupCategoryTitle($id, $option, $shLangName) { static $cats = null; $sefConfig = &Sh404sefFactory::getConfig(); if (is_null($cats)) { try { $cats = ShlDbHelper::selectObjectList( '#__community_groups_category', array('id', 'name') , $mWhere = '', $aWhereData = array(), $orderBy = array(), $offset = 0, $lines = 0, $key = 'id' ); } catch (Exception $e) { ShlSystem_Log::error('sh404sef', '%s::%s::%d: %s', __CLASS__, __METHOD__, __LINE__, $e->getMessage()); $cats = array(); } } $slug = empty($cats[$id]) ? '' : $cats[$id]->name; $prefix = empty($slug) || $sefConfig->shJSInsertGroupCategoryId ? $id : ''; $slug = $prefix . (empty($slug) ? '' : $sefConfig->replacement) . $slug; return $slug; } } if (!function_exists('shGetJSEventTitle')) { function shGetJSEventTitle($id) { static $events = array(); if (empty($id)) { return ''; } $sefConfig = Sh404sefFactory::getConfig(); if (empty($events[$id])) { try { $eventTitle = ShlDbHelper::selectResult( '#__community_events', array('title'), array('id' => $id) ); } catch (Exception $e) { ShlSystem_Log::error('sh404sef', '%s::%d: %s', __METHOD__, __LINE__, $e->getMessage()); $events[$id] = ''; } } $slug = empty($eventTitle) ? '' : $eventTitle; $prefix = empty($slug) || $sefConfig->shJSInsertGroupCategoryId ? $id : ''; $events[$id] = $prefix . (empty($slug) || empty($prefix)? '' : $sefConfig->replacement) . $slug; return $events[$id]; } } if (!function_exists('shGetJSEventsCategoryTitle')) { function shGetJSEventsCategoryTitle($id, $option, $shLangName) { static $cats = null; $sefConfig = &Sh404sefFactory::getConfig(); if (is_null($cats)) { try { $cats = ShlDbHelper::selectObjectList( '#__community_events_category', array('id', 'name') , $mWhere = '', $aWhereData = array(), $orderBy = array(), $offset = 0, $lines = 0, $key = 'id' ); } catch (Exception $e) { ShlSystem_Log::error('sh404sef', '%s::%s::%d: %s', __CLASS__, __METHOD__, __LINE__, $e->getMessage()); $cats = array(); } } $slug = empty($cats[$id]) ? '' : $cats[$id]->name; $prefix = empty($slug) || $sefConfig->shJSInsertGroupCategoryId ? $id : ''; $slug = $prefix . (empty($slug) ? '' : $sefConfig->replacement) . $slug; return $slug; } } if (!function_exists('shGetJSGroupTitleArray')) { function shGetJSGroupTitleArray($id, $option, $shLangName) { $sefConfig = &Sh404sefFactory::getConfig(); try { $result = ShlDbHelper::selectObject('#__community_groups', array('id', 'name', 'categoryid'), array('id' => $id)); } catch (Exception $e) { ShlSystem_Log::error('sh404sef', '%s::%s::%d: %s', __CLASS__, __METHOD__, __LINE__, $e->getMessage()); } $prefix = !is_object($result) || empty($result->name) || $sefConfig->shJSInsertGroupId ? $id : ''; $groupName = !is_object($result) || empty($result->name) ? '' : $result->name; $groupName = $prefix . (empty($groupName) ? '' : $sefConfig->replacement) . $groupName; // optionnally insert group category if ($sefConfig->shJSInsertGroupCategory) { $title = array(shGetJSGroupCategoryTitle($result->categoryid, $option, $shLangName), $groupName); } else { $title = array($groupName); } return $title; } } if (!function_exists('shGetJSGroupBulletinTitle')) { function shGetJSGroupBulletinTitle($id, $option, $shLangName) { $sefConfig = &Sh404sefFactory::getConfig(); try { $result = ShlDbHelper::selectObject('#__community_groups_bulletins', array('id', 'title'), array('id' => $id)); } catch (Exception $e) { ShlSystem_Log::error('sh404sef', '%s::%s::%d: %s', __CLASS__, __METHOD__, __LINE__, $e->getMessage()); } $prefix = !is_object($result) || empty($result->title) || $sefConfig->shJSInsertGroupBulletinId ? $id : ''; $slug = !is_object($result) || empty($result->title) ? '' : $result->title; $slug = $prefix . (empty($slug) ? '' : $sefConfig->replacement) . $slug; return $slug; } } if (!function_exists('shGetJSGroupDiscussionTitle')) { function shGetJSGroupDiscussionTitle($id, $option, $shLangName) { $sefConfig = &Sh404sefFactory::getConfig(); try { $result = ShlDbHelper::selectObject('#__community_groups_discuss', array('id', 'title'), array('id' => $id)); } catch (Exception $e) { ShlSystem_Log::error('sh404sef', '%s::%s::%d: %s', __CLASS__, __METHOD__, __LINE__, $e->getMessage()); } $prefix = !is_object($result) || empty($result->title) || $sefConfig->shJSInsertDiscussionId ? $id : ''; $slug = !is_object($result) || empty($result->title) ? '' : $result->title; $slug = $prefix . (empty($slug) ? '' : $sefConfig->replacement) . $slug; return $slug; } } if (!function_exists('shGetJSMessageTitle')) { function shGetJSMessageTitle($id, $option, $shLangName) { $sefConfig = &Sh404sefFactory::getConfig(); try { $result = ShlDbHelper::selectObject('#__community_msg', array('id', 'subject'), array('id' => $id)); } catch (Exception $e) { ShlSystem_Log::error('sh404sef', '%s::%s::%d: %s', __CLASS__, __METHOD__, __LINE__, $e->getMessage()); } $prefix = !is_object($result) || empty($result->subject) || $sefConfig->shJSInsertMessageId ? $id : ''; $slug = !is_object($result) || empty($result->subject) ? '' : $result->subject; $slug = $prefix . (empty($slug) ? '' : $sefConfig->replacement) . $slug; return $slug; } } if (!function_exists('shGetJSPhotoAlbumDetails')) { function shGetJSPhotoAlbumDetails($id, $option, $shLangName) { $sefConfig = &Sh404sefFactory::getConfig(); try { $result = ShlDbHelper::selectObject('#__community_photos_albums', array('id', 'name'), array('id' => $id)); } catch (Exception $e) { ShlSystem_Log::error('sh404sef', '%s::%s::%d: %s', __CLASS__, __METHOD__, __LINE__, $e->getMessage()); } $prefix = !is_object($result) || empty($result->name) || $sefConfig->shJSInsertPhotoAlbumId ? $id : ''; $slug = !is_object($result) || empty($result->name) ? '' : $result->name; $slug = $prefix . (empty($slug) ? '' : $sefConfig->replacement) . $slug; return $slug; } } if (!function_exists('shGetJSPhotoTitle')) { function shGetJSPhotoTitle($id, $option, $shLangName) { $sefConfig = &Sh404sefFactory::getConfig(); try { $result = ShlDbHelper::selectObject('#__community_photos', array('id', 'caption'), array('id' => $id)); } catch (Exception $e) { ShlSystem_Log::error('sh404sef', '%s::%s::%d: %s', __CLASS__, __METHOD__, __LINE__, $e->getMessage()); } // this photo name $prefix = !is_object($result) || empty($result->caption) || $sefConfig->shJSInsertPhotoId ? $id : ''; $slug = !is_object($result) || empty($result->caption) ? '' : $result->caption; $slug = $prefix . (empty($slug) ? '' : $sefConfig->replacement) . $slug; return $slug; } } if (!function_exists('shGetJSVideoCategoryTitle')) { function shGetJSVideoCategoryTitle($id, $option, $shLangName) { static $cats = null; $sefConfig = &Sh404sefFactory::getConfig(); if (is_null($cats)) { try { $cats = ShlDbHelper::selectObjectList( '#__community_videos_category', array('id', 'name') , $mWhere = '', $aWhereData = array(), $orderBy = array(), $offset = 0, $lines = 0, $key = 'id' ); } catch (Exception $e) { ShlSystem_Log::error('sh404sef', '%s::%s::%d: %s', __CLASS__, __METHOD__, __LINE__, $e->getMessage()); $cats = array(); } } $prefix = empty($cats[$id]) || $sefConfig->shJSInsertVideoCatId ? $id : ''; $slug = empty($cats[$id]) ? '' : $cats[$id]->name; $slug = $prefix . (empty($slug) ? '' : $sefConfig->replacement) . $slug; return $slug; } } if (!function_exists('shGetJSVideoTitle')) { function shGetJSVideoTitle($id, $option, $shLangName) { $sefConfig = &Sh404sefFactory::getConfig(); try { $result = ShlDbHelper::selectObject('#__community_videos', array('id', 'title', 'category_id'), array('id' => $id)); } catch (Exception $e) { ShlSystem_Log::error('sh404sef', '%s::%s::%d: %s', __CLASS__, __METHOD__, __LINE__, $e->getMessage()); } $videoName = ($sefConfig->shJSInsertVideoId ? $id . $sefConfig->replacement : '') . $result->title; // optionnally insert video category if ($sefConfig->shJSInsertVideoCat) { $title = array(shGetJSVideoCategoryTitle($result->category_id, $option, $shLangName), $videoName); } else { $title = array($videoName); } return $title; } } if (!function_exists('shMustInsertJSName')) { function shMustInsertJSName($shJSName, $userid, $view) { $sefConfig = &Sh404sefFactory::getConfig(); // nothing to insert if (empty($shJSName)) { return false; } if (!$sefConfig->shJSInsertJSName) { // if set to not insert, return false // except if we are on user profile, and short urls to profile is on $insert = $sefConfig->shJSShortURLToUserProfile && $view == 'profile' && !empty($userid) // and poor configuration made that we don't insert username or user full name // in such case, we should still insert the name && !$sefConfig->shJSInsertUsername && !$sefConfig->shJSInsertUserFullName; // or we are on user profile, and short url is off but user has set // to not insert user name or user full name if (!$insert && !$sefConfig->shJSShortURLToUserProfile && !$sefConfig->shJSInsertUsername && !$sefConfig->shJSInsertUserFullName) { $insert = true; } return $insert; } // params say to insert name. we should do it, unless on // user profile page, and we are set to have short urls to profile $insert = !($sefConfig->shJSShortURLToUserProfile && $view == 'profile' && !empty($userid)); // however if set to not insert either username or fullname, there will be a problem as // user id is passed a query string. In such case, revert the decision and still insert if (!$sefConfig->shJSInsertUsername && !$sefConfig->shJSInsertUserFullName) { $insert = true; } return $insert; } } // main vars $view = isset($view) ? $view : null; $task = isset($task) ? $task : null; $userid = isset($userid) ? $userid : null; $eventid = isset($eventid) ? $eventid : null; // insert component name from menu $shJSName = shGetComponentPrefix($option); $shJSName = empty($shJSName) ? getMenuTitle($option, null, $Itemid, null, $shLangName) : $shJSName; $shJSName = (empty($shJSName) || $shJSName == '/') ? 'JS' : $shJSName; // do this only if not set to create direct links to user profile like mysite.com/john if (shMustInsertJSName($shJSName, $userid, $view)) { $title[] = $shJSName; // if direct url to user profile, prevent adding suffix ('.html') if (($sefConfig->shJSShortURLToUserProfile || (!$sefConfig->shJSShortURLToUserProfile && !$sefConfig->shJSInsertUsername && !$sefConfig->shJSInsertUserFullName)) && $view == 'profile' && !empty($userid) ) { $title[] = '/'; } } // build url first based on view, but make use of other vars ($task,..) as needed switch ($view) { case 'frontpage': if (empty($task) && empty($userid) && empty($title)) { $title[] = $shJSName; } break; case 'profile': if (!empty($userid)) { $slug = shGetJSUsernameSlug($userid, $option, $shLangName); if (!empty($slug)) { $title[] = $slug; $title[] = '/'; } } else if (empty($task)) { $title[] = shGetJSText('PROFILE'); $title[] = '/'; } break; case 'groups': if (empty($task) || $task == 'display') { $title[] = shGetJSText('GROUP'); } if (!empty($groupid)) { $title = array_merge($title, shGetJSGroupTitleArray($groupid, $option, $shLangName)); if (!empty($topicid)) { $title[] = shGetJSGroupDiscussionTitle($topicid, $option, $shLangName); } } else if (!empty($categoryid)) { $title[] = shGetJSGroupCategoryTitle($categoryid, $option, $shLangName); } else if (!empty($topicid)) { $title[] = shGetJSGroupDiscussionTitle($topicid, $option, $shLangName); } else if (empty($task)) { $title[] = '/'; } break; case 'photos': $slug = shGetJSUsernameSlug($userid, $option, $shLangName); if (!empty($slug)) { $title[] = $slug; } if (!empty($groupid)) { $title = array_merge($title, shGetJSGroupTitleArray($groupid, $option, $shLangName)); } if (empty($task) || $task == 'search' || $task == 'display' || $task == 'app' || $task == 'album') { $title[] = shGetJSText('PHOTOS'); } if (!empty($albumid) && $sefConfig->shJSInsertPhotoAlbum) { $title[] = shGetJSPhotoAlbumDetails($albumid, $option, $shLangName); } if (!empty($photoid)) { $title[] = shGetJSPhotoTitle($photoid, $option, $shLangName); } if (empty($task) && empty($albumid) && empty($photoid)) { $title[] = '/'; } break; case 'videos': $slug = shGetJSUsernameSlug($userid, $option, $shLangName); if (!empty($slug)) { $title[] = $slug; } if (!empty($groupid)) { $title = array_merge($title, shGetJSGroupTitleArray($groupid, $option, $shLangName)); } if (empty($task) || $task == 'search' || $task == 'display' || $task == 'app') { $title[] = shGetJSText('VIDEOS'); } if (!empty($catid)) { $title[] = shGetJSVideoCategoryTitle($catid, $option, $shLangName); } else if (empty($task)) { $title[] = '/'; } break; case 'search': if ($task != 'browse' && $task != 'advancesearch') { $title[] = shGetJSText('SEARCH'); } if (empty($task)) { $title[] = '/'; } break; case 'inbox': $slug = shGetJSUsernameSlug($userid, $option, $shLangName); if (!empty($slug)) { $title[] = $slug; } $title[] = shGetJSText('INBOX'); break; case 'register': $title[] = shGetJSText('REGISTER'); break; case 'friends': $slug = shGetJSUsernameSlug($userid, $option, $shLangName); if (!empty($slug)) { $title[] = $slug; } $title[] = shGetJSText('FRIENDS'); if (empty($task)) { $title[] = '/'; } break; case 'apps': $slug = shGetJSUsernameSlug($userid, $option, $shLangName); if (!empty($slug)) { $title[] = $slug; } $title[] = shGetJSText('APPLICATIONS'); if (empty($task)) { $title[] = '/'; } break; case 'events': $slug = shGetJSUsernameSlug($userid, $option, $shLangName); if (!empty($slug)) { $title[] = $slug; } if (empty($task) || $task == 'uploadavatar' || $task == 'myinvites' || $task == 'expiredevents' || $task == 'search' || $task == 'display') { $title[] = shGetJSText('EVENTS'); } if (!empty($groupid)) { $title = array_merge($title, shGetJSGroupTitleArray($groupid, $option, $shLangName)); } if (!empty($categoryid)) { $slug = shGetJSEventsCategoryTitle($categoryid, $option, $shLangName); if (!empty($slug)) { $title[] = $slug; } } if (!empty($eventid) && (empty($task) || 'viewevent' == $task)) { $title[] = 'viewevent'; $eventTitle = shGetJSEventTitle($eventid); if (!empty($eventTitle)) { $title[] = $eventTitle; shRemoveFromGETVarsList('eventid'); } } if (empty($task)) { $title[] = '/'; } break; default: $slug = shGetJSUsernameSlug($userid, $option, $shLangName); if (!empty($slug)) { $title[] = $slug; } if (!empty($groupid)) { $title = array_merge($title, shGetJSGroupTitleArray($groupid, $option, $shLangName)); } $title[] = $view; } // add more details based on $task switch ($task) { // groups case 'mygroups': $slug = shGetJSUsernameSlug($userid, $option, $shLangName); if (!empty($slug)) { $title[] = $slug; } $title[] = shGetJSText('MY GROUPS TITLE'); $title[] = '/'; break; case 'create': switch ($view) { case 'groups': $title[] = shGetJSText('CREATE NEW GROUP TITLE'); break; case 'events': $title[] = shGetJSText('CREATE NEW EVENT'); break; default: $title[] = $task; break; } break; case 'joingroup': $title[] = shGetJSText('JOIN GROUP TITLE'); break; case 'leavegroup': $title[] = shGetJSText('LEAVE GROUP TITLE'); break; case 'viewgroup': break; case 'created': $title[] = $task; break; case 'invitefriends': $title[] = shGetJSText('INVITE FRIENDS'); break; case 'viewmembers': $title[] = shGetJSText('GROUP MEMBERS'); $title[] = '/'; break; case 'viewbulletin': if (!empty($bulletinid)) { $title[] = shGetJSGroupBulletinTitle($bulletinid, $option, $shLangName); } break; case 'viewbulletins': $title[] = shGetJSText('SHOW ALL BULLETINS'); break; case 'addnews': $title[] = shGetJSText('ADD BULLETIN'); break; case 'viewdiscussion': if (!empty($topicid) && empty($task)) { $title[] = shGetJSGroupDiscussionTitle($topicid, $option, $shLangName); } break; case 'viewdiscussions': $title[] = shGetJSText('SHOW ALL DISCUSSIONS'); $title[] = '/'; break; case 'adddiscussion': $title[] = shGetJSText('ADD DISCUSSION'); break; case 'uploadAvatar': switch ($view) { case 'profile': $title[] = shGetJSText('EDIT AVATAR'); break; default: $title[] = $task; break; } break; case 'uploadavatar': switch ($view) { case 'groups': $title[] = shGetJSText('EDIT GROUP AVATAR'); break; case 'profile': $title[] = shGetJSText('EDIT AVATAR'); break; case 'events': $title[] = shGetJSText('EDIT EVENT AVATAR'); break; default: $title[] = $task; break; } break; case 'avatar': $title[] = shGetJSText('AVATAR'); break; case 'edit': switch ($view) { case 'groups': $title[] = shGetJSText('EDIT'); break; case 'profile': $title[] = shGetJSText('EDIT PROFILE'); break; case 'events': $title[] = shGetJSText('EDIT EVENT DETAILS'); break; default: $title[] = $task; break; } break; case 'editDetails': $title[] = shGetJSText('EDIT DETAILS'); break; case 'privacy': $title[] = shGetJSText('EDIT PRIVACY'); break; // photos case 'myphotos': $title[] = shGetJSText('MY PHOTOS TITLE'); $title[] = '/'; break; case 'newalbum': $title[] = shGetJSText('ADD ALBUM'); break; case 'uploader': $title[] = shGetJSText('UPLOAD PHOTOS'); break; case 'album': break; case 'editAlbum': $title[] = shGetJSText('EDIT'); break; case 'photo': $title[] = shGetJSText('PHOTOS'); break; case 'jsonupload': $dosef = false; break; // videos case 'myvideos': $title[] = shGetJSText('MY VIDEOS'); $title[] = '/'; break; case 'removevideo': $title[] = shGetJSText('REMOVE'); break; case 'video': if (!empty($videoid)) { $title = array_merge($title, shGetJSVideoTitle($videoid, $option, $shLangName)); } break; // messages case 'read': if (!empty($msgid)) { $title[] = shGetJSMessageTitle($msgid, $option, $shLangName); } break; case 'sent': $title[] = shGetJSText('SENT'); break; case 'write': $title[] = shGetJSText('WRITE'); break; // applications case 'app': $title[] = shGetJSText('APPLICATIONS'); break; case 'invite': $title[] = shGetJSText('INVITE FRIENDS'); break; case 'sent': $title[] = shGetJSText('REQUEST SENT'); break; case 'pending': $title[] = shGetJSText('PENDING APPROVAL'); break; case 'remove': $slug = shGetJSUsernameSlug($userid, $option, $shLangName); if (!empty($slug)) { $title[] = $slug; } $title[] = shGetJSText('REMOVE'); break; case 'field': $title[] = shGetJSText('FIELD'); break; // events case 'myevents': $title[] = shGetJSText('MY EVENTS'); $title[] = '/'; break; case 'myinvites': $title[] = shGetJSText('INVITE'); break; case 'expiredevents': $title[] = $task; break; case 'viewevent': if (empty($eventid) || 'events' != $view) { $title[] = $task; } break; // searching case 'advancesearch': $title[] = shGetJSText('CUSTOM SEARCH'); $title[] = '/'; break; case 'browse': if ($view == 'search') { $title[] = shGetJSText('MEMBERS'); $title[] = '/'; } else { $title[] = shGetJSText('BROWSE APPS'); $title[] = '/'; } break; case 'search': $title[] = shGetJSText('SEARCH'); break; // others case 'removepicture': $title[] = shGetJSText('REMOVE PROFILE PICTURE'); break; case 'link': $title[] = shGetJSText('LINK VIDEO'); break; case 'registerProfile': $title[] = shGetJSText('PROFILE'); break; case 'registerAvatar': $title[] = shGetJSText('GET AVATAR'); break; case 'registerSucess': $title[] = shGetJSText('REGISTERED SUCCESSFULLY'); break; case 'cron': $dosef = false; break; default: if (!empty($task)) { if ( empty($view) || 'display' != $task || (!empty($view) && 'display' == $task && !in_array($view, array('photos', 'videos', 'groups', 'events'))) ) { $title[] = $task; } } } if (!empty($app)) { $title[] = $app; shRemoveFromGETVarsList('app'); } shRemoveFromGETVarsList('view'); shRemoveFromGETVarsList('task'); shRemoveFromGETVarsList('msgid'); shRemoveFromGETVarsList('categoryid'); shRemoveFromGETVarsList('bulletinid'); shRemoveFromGETVarsList('topicid'); if ($task != 'editAlbum') { shRemoveFromGETVarsList('albumid'); } shRemoveFromGETVarsList('photoid'); shRemoveFromGETVarsList('groupid'); shRemoveFromGETVarsList('catid'); shRemoveFromGETVarsList('videoid'); shRemoveFromGETVarsList('fid'); shRemoveFromGETVarsList('option'); shRemoveFromGETVarsList('lang'); if (!empty($Itemid)) { shRemoveFromGETVarsList('Itemid'); } if (!empty($limit)) { shRemoveFromGETVarsList('limit'); } if (isset($limitstart)) { shRemoveFromGETVarsList('limitstart'); } // ------------------ standard plugin finalize function - don't change --------------------------- if ($dosef) { $string = shFinalizePlugin( $string, $title, $shAppendString, $shItemidString, (isset($limit) ? @$limit : null), (isset($limitstart) ? @$limitstart : null), (isset($shLangName) ? @$shLangName : null) ); } // ------------------ standard plugin finalize function - don't change ---------------------------