/** * @param \CB\Database\Table\TabTable $tab the tab database entry * @param \CB\Database\Table\UserTable $user the user being displayed * @param int $ui 1 for front-end, 2 for back-end * @return boolean */ public function getMenuAndStatus($tab, $user, $ui) { global $_CB_framework, $_CB_database, $ueConfig, $_REQUEST, $_POST; $params = $this->params; $userId = $user->id && $_CB_framework->myId() == $user->id ? null : $user->id; $firstMenuName = $params->get('firstMenuName', ''); // CBTxt::T( '_UE_MENU_CB', 'Community' ) $firstSubMenuName = $params->get('firstSubMenuName', ''); // CBTxt::T( '_UE_MENU_ABOUT_CB', 'About Community Builder...' ) $firstSubMenuHref = $params->get('firstSubMenuHref', ''); $secondSubMenuName = $params->get('secondSubMenuName', ''); $secondSubMenuHref = $params->get('secondSubMenuHref', ''); // ----- CUSTOM MENU ----- if ($firstMenuName != '') { $customMenu = array(); $customMenu['arrayPos'] = $firstMenuName; $customMenu['position'] = 'menuBar'; $customMenu['caption'] = CBTxt::T($firstMenuName); $this->addMenu($customMenu); if ($firstSubMenuName != '') { // Custom 1: $first = array(); $first['arrayPos'] = array($firstMenuName => array('_UE_FIRST' => null)); $first['position'] = 'menuBar'; $first['caption'] = CBTxt::T($firstSubMenuName); $first['url'] = $firstSubMenuHref == '' ? "javascript: void( 0 );" : cbSef($firstSubMenuHref); $first['target'] = ''; $first['img'] = ''; $first['tooltip'] = ''; $this->addMenu($first); if ($secondSubMenuName != '') { // Custom 2: $second = array(); $second['arrayPos'] = array($firstMenuName => array('_UE_SECOND' => null)); $second['position'] = 'menuBar'; $second['caption'] = CBTxt::T($secondSubMenuName); $second['url'] = $secondSubMenuHref == '' ? "javascript: void( 0 );" : cbSef($secondSubMenuHref); $second['target'] = ''; $second['img'] = ''; $second['tooltip'] = ''; $this->addMenu($second); } } } // ----- VIEW MENU ----- $viewMenu = array(); $viewMenu['arrayPos'] = '_UE_MENU_VIEW'; $viewMenu['position'] = 'menuBar'; $viewMenu['caption'] = CBTxt::T('_UE_MENU_VIEW', 'View'); $this->addMenu($viewMenu); if ($_CB_framework->myId() > 0) { if ($_CB_framework->displayedUser() === null || $_CB_framework->myId() != $user->id && $_CB_framework->displayedUser() !== null) { // View My Profile: $myProfile = array(); $myProfile['arrayPos'] = array('_UE_MENU_VIEW' => array('_UE_MENU_VIEWMYPROFILE' => null)); $myProfile['position'] = 'menuBar'; $myProfile['caption'] = CBTxt::T('UE_MENU_VIEWMYPROFILE', 'View Your Profile'); $myProfile['url'] = $_CB_framework->userProfileUrl(); $myProfile['target'] = ''; $myProfile['img'] = '<span class="fa fa-home"></span> '; $myProfile['tooltip'] = CBTxt::T('UE_MENU_VIEWMYPROFILE_DESC', 'View your own profile'); $this->addMenu($myProfile); } } // ----- EDIT MENU ----- $editMenu = array(); $editMenu['arrayPos'] = '_UE_MENU_EDIT'; $editMenu['position'] = 'menuBar'; $editMenu['caption'] = CBTxt::T('_UE_MENU_EDIT', 'Edit'); $this->addMenu($editMenu); if (!cbCheckIfUserCanPerformUserTask($user->id, 'allowModeratorsUserEdit')) { if ($user->id == $_CB_framework->myId()) { $menuTexts = array('_UE_UPDATEPROFILE' => CBTxt::T('UE_UPDATEPROFILE', 'Update Your Profile'), '_UE_MENU_UPDATEPROFILE_DESC' => CBTxt::T('UE_MENU_UPDATEPROFILE_DESC', 'Change your profile settings')); } else { $menuTexts = array('_UE_UPDATEPROFILE' => CBTxt::T('UE_MOD_MENU_UPDATEPROFILE', 'Update user profile'), '_UE_MENU_UPDATEPROFILE_DESC' => CBTxt::T('UE_MOD_MENU_UPDATEPROFILE_DESC', 'Change profile settings of this user profile')); } // Update Profile: $updateProfile = array(); $updateProfile['arrayPos'] = array('_UE_MENU_EDIT' => array('_UE_UPDATEPROFILE' => null)); $updateProfile['position'] = 'menuBar'; $updateProfile['caption'] = $menuTexts['_UE_UPDATEPROFILE']; $updateProfile['url'] = $_CB_framework->userProfileEditUrl($userId); $updateProfile['target'] = ''; $updateProfile['img'] = '<span class="fa fa-edit"></span> '; $updateProfile['tooltip'] = $menuTexts['_UE_MENU_UPDATEPROFILE_DESC']; $this->addMenu($updateProfile); } // ----- MESSAGES MENU ----- $messagesMenu = array(); $messagesMenu['arrayPos'] = '_UE_MENU_MESSAGES'; $messagesMenu['position'] = 'menuBar'; $messagesMenu['caption'] = CBTxt::T('_UE_MENU_MESSAGES', 'Messages'); $this->addMenu($messagesMenu); if ($_CB_framework->myId() != $user->id && $_CB_framework->myId() > 0) { global $_CB_PMS; $resultArray = $_CB_PMS->getPMSlinks($user->id, $_CB_framework->myId(), '', '', 1); if (count($resultArray) > 0) { foreach ($resultArray as $res) { if (is_array($res)) { // Send Private Message: $sendMessage = array(); $sendMessage['arrayPos'] = array('_UE_MENU_MESSAGES' => array('_UE_PM_USER' => null)); $sendMessage['position'] = 'menuBar'; $sendMessage['caption'] = $res['caption']; // Already translated in CB Menu $sendMessage['url'] = cbSef($res['url']); $sendMessage['target'] = ''; $sendMessage['img'] = '<span class="fa fa-comment"></span> '; $sendMessage['tooltip'] = $res['tooltip']; // Already translated in CB Menu $this->addMenu($sendMessage); } } } } if ($ueConfig['allow_email_display'] != 4 && $_CB_framework->myId() != $user->id && $_CB_framework->myId() > 0) { switch ($ueConfig['allow_email_display']) { case 1: // Display Email only $caption = moscomprofilerHTML::emailCloaking(htmlspecialchars($user->email), 0); $url = "javascript: void( 0 );;"; $desc = CBTxt::T('UE_MENU_USEREMAIL_DESC', 'Email address of this user'); break; case 2: // Display Email with link $caption = moscomprofilerHTML::emailCloaking(htmlspecialchars($user->email), 1); $url = "javascript: void( 0 );;"; $desc = CBTxt::T('UE_MENU_SENDUSEREMAIL_DESC', 'Send an Email to this user'); break; case 3: // Display Email-to text with link to web-form // Display Email-to text with link to web-form default: $caption = CBTxt::T('UE_MENU_SENDUSEREMAIL', 'Send Email to User'); $url = $_CB_framework->viewUrl('emailuser', true, array('uid' => $userId)); $desc = CBTxt::T('UE_MENU_SENDUSEREMAIL_DESC', 'Send an Email to this user'); break; } // Send Email: $sendEmail = array(); $sendEmail['arrayPos'] = array('_UE_MENU_MESSAGES' => array('_UE_MENU_SENDUSEREMAIL' => null)); $sendEmail['position'] = 'menuBar'; $sendEmail['caption'] = $caption; $sendEmail['url'] = $url; $sendEmail['target'] = ''; $sendEmail['img'] = '<span class="fa fa-envelope"></span> '; $sendEmail['tooltip'] = $desc; $this->addMenu($sendEmail); } // ----- CONNECTIONS MENU ----- $connectionsMenu = array(); $connectionsMenu['arrayPos'] = '_UE_MENU_CONNECTIONS'; $connectionsMenu['position'] = 'menuBar'; $connectionsMenu['caption'] = CBTxt::T('_UE_MENU_CONNECTIONS', 'Connections'); $this->addMenu($connectionsMenu); if ($ueConfig['allowConnections'] && $_CB_framework->myId() > 0) { // Manage My Connections: $manageConnections = array(); $manageConnections['arrayPos'] = array('_UE_MENU_CONNECTIONS' => array('_UE_MENU_MANAGEMYCONNECTIONS' => null)); $manageConnections['position'] = 'menuBar'; $manageConnections['caption'] = CBTxt::T('UE_MENU_MANAGEMYCONNECTIONS', 'Manage Your Connections'); $manageConnections['url'] = $_CB_framework->viewUrl('manageconnections'); $manageConnections['target'] = ''; $manageConnections['img'] = '<span class="fa fa-users"></span> '; $manageConnections['tooltip'] = CBTxt::T('UE_MENU_MANAGEMYCONNECTIONS_DESC', 'Manage your existing connections and pending connections actions'); $this->addMenu($manageConnections); if ($_CB_framework->myId() != $user->id) { $cbConnection = new cbConnection((int) $_CB_framework->myId()); $cbUser =& CBuser::getInstance((int) $user->id, false); $connClass = null; $connLink = null; $connDesc = null; $connMsg = null; $connImg = null; $isConnection = $cbConnection->isConnected((int) $user->id); if ($isConnection) { $isApproved = $cbConnection->isConnectionApproved((int) $user->id); $isAccepted = $cbConnection->isConnectionAccepted((int) $user->id); } else { $isApproved = false; $isAccepted = false; } if (!$isConnection) { $connUrl = $_CB_framework->viewUrl('addconnection', true, array('connectionid' => (int) $user->id)); if ($ueConfig['useMutualConnections'] == 1) { $connClass = 'UE_ADDCONNECTIONREQUEST'; $connMsg = CBTxt::T('UE_ADDCONNECTIONREQUEST', 'Request Connection'); $connDesc = CBTxt::T('UE_ADDCONNECTIONREQUEST_DESC', 'Request a Connection to that user'); } else { $connClass = 'UE_ADDCONNECTION'; $connMsg = CBTxt::T('UE_ADDCONNECTION', 'Add Connection'); $connDesc = CBTxt::T('UE_ADDCONNECTION_DESC', 'Add a Connection to that user'); } if ($ueConfig['conNotifyType'] != 0) { cbValidator::loadValidation(); $tooltipTitle = sprintf(CBTxt::T('UE_CONNECTTO', 'Connect to %s'), $cbUser->getField('formatname', null, 'html', 'none', 'profile', 0, true)); $connectionInvitationMsg = CBTxt::T('UE_CONNECTIONINVITATIONMSG', 'Personalize your invitation to connect by adding a message that will be included with your connection.'); $tooltip = null; if ($connectionInvitationMsg) { $tooltip .= '<div class="form-group cb_form_line clearfix">' . $connectionInvitationMsg . '</div>'; } $tooltip .= '<form action="' . $connUrl . '" method="post" id="connOverForm" name="connOverForm" class="cb_form cbValidation">' . '<div class="form-group cb_form_line clearfix">' . '<label for="message" class="control-label">' . CBTxt::T('UE_MESSAGE', 'Message') . '</label>' . '<div class="cb_field">' . '<textarea cols="40" rows="8" name="message" class="form-control"></textarea>' . '</div>' . '</div>' . '<div class="form-group cb_form_line clearfix">' . '<input type="submit" class="btn btn-primary cbConnReqSubmit" value="' . htmlspecialchars(CBTxt::Th('UE_SENDCONNECTIONREQUEST', 'Request Connection')) . '"' . cbValidator::getSubmitBtnHtmlAttributes() . ' />' . ' <input type="button" id="cbConnReqCancel" class="btn btn-default cbConnReqCancel cbTooltipClose" value="' . htmlspecialchars(CBTxt::Th('UE_CANCELCONNECTIONREQUEST', 'Cancel')) . '" />' . '</div>' . '</form>'; $connLink = cbTooltip($ui, $tooltip, $tooltipTitle, 400, null, '<span class="fa fa-heart"></span> ' . CBTxt::Th($connMsg), 'javascript: void( 0 );', 'data-hascbtooltip="true" data-cbtooltip-modal="true"'); } else { $connLink = $connUrl; $connImg = '<span class="fa fa-heart"></span> '; } } else { if ($isAccepted) { $connUrl = $_CB_framework->viewUrl('removeconnection', true, array('connectionid' => (int) $user->id)); if ($isApproved) { $connClass = 'UE_REMOVECONNECTION'; $connMsg = CBTxt::T('UE_REMOVECONNECTION', 'Remove Connection'); $connDesc = CBTxt::T('UE_REMOVECONNECTION_DESC', 'Remove Connection to that user'); } else { $connClass = 'UE_REVOKECONNECTIONREQUEST'; $connMsg = CBTxt::T('UE_REVOKECONNECTIONREQUEST', 'Revoke Connection Request'); $connDesc = CBTxt::T('UE_REVOKECONNECTIONREQUEST_DESC', 'Cancel the Connection Request to that user'); } $js = "if ( typeof confirmSubmit != 'function' ) {" . "function confirmSubmit() {" . "if ( confirm( '" . addslashes(CBTxt::T('UE_CONFIRMREMOVECONNECTION', 'Are you sure you want to remove this connection?')) . "' ) ) {" . "return true;" . "} else {" . "return false;" . "}" . "};" . "}"; $_CB_framework->document->addHeadScriptDeclaration($js); $connLink = $connUrl . '" onclick="return confirmSubmit();'; $connImg = '<span class="fa fa-heart-o"></span> '; } else { $connClass = null; $connMsg = null; } } if ($connMsg) { // Request/Add/Remove/Revoke Connection: $connectionRequest = array(); $connectionRequest['arrayPos'] = array('_UE_MENU_CONNECTIONS' => array($connClass => null)); $connectionRequest['position'] = 'menuBar'; $connectionRequest['caption'] = $connMsg; $connectionRequest['url'] = $connLink; $connectionRequest['target'] = ''; $connectionRequest['img'] = $connImg; $connectionRequest['tooltip'] = $connDesc; $this->addMenu($connectionRequest); } } } // ----- MODERATE MENU ----- $moderateMenu = array(); $moderateMenu['arrayPos'] = '_UE_MENU_MODERATE'; $moderateMenu['position'] = 'menuBar'; $moderateMenu['caption'] = CBTxt::T('_UE_MENU_MODERATE', 'Moderate'); $this->addMenu($moderateMenu); if ($_CB_framework->myId() == $user->id) { if ($user->banned == 1 && $this->cbUserIsModerator == 0 && $ueConfig['allowUserBanning'] == 1) { // Request Unban: $requestUnban = array(); $requestUnban['arrayPos'] = array('_UE_MENU_MODERATE' => array('_UE_REQUESTUNBANPROFILE' => null)); $requestUnban['position'] = 'menuBar'; $requestUnban['caption'] = CBTxt::T('UE_REQUESTUNBANPROFILE', 'Submit Unban Request'); $requestUnban['url'] = $_CB_framework->viewUrl('banprofile', true, array('act' => 2, 'reportform' => 1, 'uid' => (int) $user->id)); $requestUnban['target'] = ''; $requestUnban['img'] = '<span class="fa fa-envelope"></span> '; $requestUnban['tooltip'] = CBTxt::T('UE_MENU_REQUESTUNBANPROFILE_DESC', 'Submit a request to the site moderator to unban your profile'); $this->addMenu($requestUnban); } } else { if ($ueConfig['allowUserReports'] == 1 && $this->cbUserIsModerator == 0 && $_CB_framework->myId() > 0) { // Report User: $reportUser = array(); $reportUser['arrayPos'] = array('_UE_MENU_MODERATE' => array('_UE_REPORTUSER' => null)); $reportUser['position'] = 'menuBar'; $reportUser['caption'] = CBTxt::T('UE_REPORTUSER', 'Report User'); $reportUser['url'] = $_CB_framework->viewUrl('reportuser', true, array('uid' => (int) $user->id)); $reportUser['target'] = ''; $reportUser['img'] = '<span class="fa fa-bullhorn"></span> '; $reportUser['tooltip'] = CBTxt::T('UE_MENU_REPORTUSER_DESC', 'Report this user to the site moderator so that he can take appropriate action'); $this->addMenu($reportUser); } if ($this->cbMyIsModerator == 1 && $this->cbUserIsModerator == 0) { $query = 'SELECT COUNT(*)' . "\n FROM " . $_CB_database->NameQuote('#__comprofiler_userreports') . "\n WHERE " . $_CB_database->NameQuote('reporteduser') . " = " . (int) $user->id . "\n AND " . $_CB_database->NameQuote('reportedstatus') . " = 0"; $_CB_database->setQuery($query); $pendingReports = $_CB_database->loadResult(); $query = 'SELECT COUNT(*)' . "\n FROM " . $_CB_database->NameQuote('#__comprofiler_userreports') . "\n WHERE " . $_CB_database->NameQuote('reporteduser') . " = " . (int) $user->id; $_CB_database->setQuery($query); $processedReports = $_CB_database->loadResult(); if ($ueConfig['allowUserBanning'] == 1) { if ($user->banned != 0) { // Unban Profile: $unbanUser = array(); $unbanUser['arrayPos'] = array('_UE_MENU_MODERATE' => array('_UE_UNBANPROFILE' => null)); $unbanUser['position'] = 'menuBar'; $unbanUser['caption'] = CBTxt::T('UE_UNBANPROFILE', 'Unban Profile'); $unbanUser['url'] = $_CB_framework->viewUrl('banprofile', true, array('act' => 0, 'reportform' => 0, 'uid' => (int) $user->id)); $unbanUser['target'] = ''; $unbanUser['img'] = '<span class="fa fa-check-circle-o"></span> '; $unbanUser['tooltip'] = CBTxt::T('UE_MENU_UNBANPROFILE_DESC', 'As Site Moderator: Unban this profile, making it visible to other users'); $this->addMenu($unbanUser); } else { // Ban Profile: $banUser = array(); $banUser['arrayPos'] = array('_UE_MENU_MODERATE' => array('_UE_BANPROFILE' => null)); $banUser['position'] = 'menuBar'; $banUser['caption'] = CBTxt::T('UE_BANPROFILE', 'Ban Profile'); $banUser['url'] = $_CB_framework->viewUrl('banprofile', true, array('act' => 1, 'uid' => (int) $user->id)); $banUser['target'] = ''; $banUser['img'] = '<span class="fa fa-ban"></span> '; $banUser['tooltip'] = CBTxt::T('UE_MENU_BANPROFILE_DESC', 'As Site Moderator: Ban this profile, making it invisible to other users'); $this->addMenu($banUser); } if ($user->bannedby) { // Ban History: $banHistory = array(); $banHistory['arrayPos'] = array('_UE_MENU_MODERATE' => array('_UE_MENU_BANPROFILE_HISTORY' => null)); $banHistory['position'] = 'menuBar'; $banHistory['caption'] = CBTxt::T('UE_MENU_BANPROFILE_HISTORY', 'Ban history'); $banHistory['url'] = $_CB_framework->viewUrl('moderatebans', true, array('act' => 2, 'uid' => (int) $user->id)); $banHistory['target'] = ''; $banHistory['img'] = '<span class="fa fa-book"></span> '; $banHistory['tooltip'] = CBTxt::T('UE_MENU_BANPROFILE_HISTORY_DESC', 'As Site Moderator: See ban history of this profile'); $this->addMenu($banHistory); } } if ($ueConfig['allowUserReports'] == 1 && $pendingReports > 0) { // View Pending Reports: $userReports = array(); $userReports['arrayPos'] = array('_UE_MENU_MODERATE' => array('_UE_VIEWUSERREPORTS' => null)); $userReports['position'] = 'menuBar'; $userReports['caption'] = CBTxt::T('UE_VIEWUSERREPORTS', 'View User Reports'); $userReports['url'] = $_CB_framework->viewUrl('viewreports', true, array('uid' => (int) $user->id)); $userReports['target'] = ''; $userReports['img'] = '<span class="fa fa-warning"></span> '; $userReports['tooltip'] = CBTxt::T('UE_MENU_VIEWUSERREPORTS_DESC', 'As Site Moderator: View User Reports for this user'); $this->addMenu($userReports); } elseif ($ueConfig['allowUserReports'] == 1 && $processedReports > 0) { // View Processed Reports: $userReports = array(); $userReports['arrayPos'] = array('_UE_MENU_MODERATE' => array('_UE_VIEWUSERREPORTS' => null)); $userReports['position'] = 'menuBar'; $userReports['caption'] = CBTxt::T('UE_MOD_MENU_VIEWOLDUSERREPORTS', 'View processed user reports'); $userReports['url'] = $_CB_framework->viewUrl('viewreports', true, array('act' => 1, 'uid' => (int) $user->id)); $userReports['target'] = ''; $userReports['img'] = '<span class="fa fa-warning"></span> '; $userReports['tooltip'] = CBTxt::T('UE_MOD_MENU_VIEWOLDUSERREPORTS_DESC', 'As site moderator: View processed user reports for this user'); $this->addMenu($userReports); } } } }
/** * CB 1.0 COMPATIBILITY FUNCTION: DO NOT USE FOR NEW DEVELOPMENT ! * replaced by cbGetField temporarly * @access private * * @param unknown_type $oType * @param unknown_type $oValue * @param unknown_type $user * @param unknown_type $prefix * @param unknown_type $imgMode * @param unknown_type $linkURL * @param unknown_type $field * @return unknown */ function getFieldValue($oType, $oValue = null, $user = null, $prefix = null, $imgMode = 0, $linkURL = null, $field = null) { global $ueConfig, $_CB_database, $_CB_framework, $_PLUGINS; $oReturn = ""; switch ($oType) { case 'checkbox': if ($oValue != '' && $oValue != null) { if ($oValue == 1) { $oReturn = _UE_YES; } elseif ($oValue == 0) { $oReturn = _UE_NO; } else { $oReturn = null; } } break; case 'select': case 'radio': $oReturn = htmlspecialchars(getLangDefinition($oValue)); break; case 'multiselect': case 'multicheckbox': $oReturn = array(); $oReturn = explode("|*|", htmlspecialchars($oValue)); for ($i = 0; $i < count($oReturn); $i++) { $oReturn[$i] = htmlspecialchars(getLangDefinition($oReturn[$i])); } $oReturn = implode(', ', $oReturn); break; case 'date': if ($oValue != '' || $oValue != null) { if ($oValue != '0000-00-00 00:00:00' && $oValue != '0000-00-00') { $oReturn = cbFormatDate(htmlspecialchars($oValue)); } else { $oReturn = ""; } } break; case 'primaryemailaddress': if ($ueConfig['allow_email_display'] == 3 || $imgMode != 0) { $oValueText = _UE_SENDEMAIL; } else { $oValueText = htmlspecialchars($oValue); } $emailIMG = '<img src="' . $_CB_framework->getCfg('live_site') . '/components/com_comprofiler/images/email.gif" border="0" alt="' . _UE_SENDEMAIL . '" title="' . _UE_SENDEMAIL . '" />'; switch ($imgMode) { case 0: $linkItemImg = null; $linkItemSep = null; $linkItemTxt = $oValueText; break; case 1: $linkItemImg = $emailIMG; $linkItemSep = null; $linkItemTxt = null; break; case 2: $linkItemImg = $emailIMG; $linkItemSep = ' '; $linkItemTxt = $oValueText; break; } //if no email or 4 (do not display email) then return empty string if ($oValue == null || $ueConfig['allow_email_display'] == 4 || $imgMode != 0 && $ueConfig['allow_email_display'] == 1) { $oReturn = ""; } else { switch ($ueConfig['allow_email_display']) { case 1: //display email only $oReturn = moscomprofilerHTML::emailCloaking(htmlspecialchars($oValue), 0); break; case 2: //mailTo link // cloacking doesn't cloack the text of the hyperlink, if that text does contain email addresses //TODO: fix it. if (!$linkItemImg && $linkItemTxt == htmlspecialchars($oValue)) { $oReturn = moscomprofilerHTML::emailCloaking(htmlspecialchars($oValue), 1, '', 0); } elseif ($linkItemImg && $linkItemTxt != htmlspecialchars($oValue)) { $oReturn = moscomprofilerHTML::emailCloaking(htmlspecialchars($oValue), 1, $linkItemImg . $linkItemSep . $linkItemTxt, 0, false); } elseif ($linkItemImg && $linkItemTxt == htmlspecialchars($oValue)) { $oReturn = moscomprofilerHTML::emailCloaking(htmlspecialchars($oValue), 1, $linkItemImg, 0, false) . $linkItemSep; $oReturn .= moscomprofilerHTML::emailCloaking(htmlspecialchars($oValue), 1, '', 0); } elseif (!$linkItemImg && $linkItemTxt != htmlspecialchars($oValue)) { $oReturn = moscomprofilerHTML::emailCloaking(htmlspecialchars($oValue), 1, $linkItemTxt, 0); } break; case 3: //email Form (with cloacked email address if visible) $oReturn = "<a href=\"" . cbSef("index.php?option=com_comprofiler&task=emailUser&uid=" . $user->id . getCBprofileItemid(true)) . "\" title=\"" . _UE_MENU_SENDUSEREMAIL_DESC . "\">" . $linkItemImg . $linkItemSep; if ($linkItemTxt && $linkItemTxt != _UE_SENDEMAIL) { $oReturn .= moscomprofilerHTML::emailCloaking($linkItemTxt, 0); } else { $oReturn .= $linkItemTxt; } $oReturn .= "</a>"; break; } } break; case 'pm': $pmIMG = '<img src="' . $_CB_framework->getCfg('live_site') . '/components/com_comprofiler/images/pm.gif" border="0" alt="' . _UE_PM_USER . '" title="' . _UE_PM_USER . '" />'; $oReturn = ""; global $_CB_PMS; $resultArray = $_CB_PMS->getPMSlinks($user->id, $_CB_framework->myId(), "", "", 1); // toid,fromid,subject,message,1: link to compose new PMS message for $toid user. if (count($resultArray) > 0) { foreach ($resultArray as $res) { if (is_array($res)) { switch ($imgMode) { case 0: $linkItem = getLangDefinition($res["caption"]); break; case 1: $linkItem = $pmIMG; break; case 2: $linkItem = $pmIMG . ' ' . getLangDefinition($res["caption"]); break; } $oReturn .= "<a href=\"" . cbSef($res["url"]) . "\" title=\"" . getLangDefinition($res["tooltip"]) . "\">" . $linkItem . "</a>"; } } } break; case 'emailaddress': if ($oValue == null) { $oReturn = ''; } else { if ($ueConfig['allow_email'] == 1) { $oReturn = moscomprofilerHTML::emailCloaking(htmlspecialchars($oValue), 1, "", 0); } else { $oReturn = moscomprofilerHTML::emailCloaking(htmlspecialchars($oValue), 0); } } break; case 'webaddress': if ($oValue == null) { $oReturn = ""; } elseif ($ueConfig['allow_website'] == 1) { $oReturn = array(); $oReturn = explode("|*|", $oValue); if (count($oReturn) < 2) { $oReturn[1] = $oReturn[0]; } $oReturn = "<a href=\"http://" . htmlspecialchars($oReturn[0]) . "\" target=\"_blank\" rel=\"nofollow\">" . htmlspecialchars($oReturn[1]) . "</a>"; } else { $oReturn = $oValue; } break; case 'image': $cbUser =& CBuser::getInstance(null); $cbUser->loadCbRow($user); $oValue = $cbUser->avatarFilePath(); /* if(is_dir($_CB_framework->getCfg('absolute_path')."/components/com_comprofiler/plugin/language/".$_CB_framework->getCfg( 'lang' )."/images")) $fileLang=$_CB_framework->getCfg( 'lang' ); else $fileLang="default_language"; if($user->avatarapproved==0) $oValue="components/com_comprofiler/plugin/language/".$fileLang."/images/tnpendphoto.jpg"; elseif(($user->avatar=='' || $user->avatar==null) && $user->avatarapproved==1) $oValue = "components/com_comprofiler/plugin/language/".$fileLang."/images/tnnophoto.jpg"; elseif(strpos($user->avatar,"gallery/")===false) $oValue="images/comprofiler/tn".$oValue; else $oValue="images/comprofiler/".$oValue; if(!is_file($_CB_framework->getCfg('absolute_path')."/".$oValue)) $oValue = "components/com_comprofiler/plugin/language/".$fileLang."/images/tnnophoto.jpg"; if(is_file($_CB_framework->getCfg('absolute_path')."/".$oValue)) { */ $onclick = null; $aTag = null; if ($ueConfig['allow_profilelink'] == 1) { $profileURL = cbSef("index.php?option=com_comprofiler&task=userProfile&user="******"onclick=\"javascript:window.location='".$profileURL."'\""; $aTag = "<a href=\"" . $profileURL . "\">"; } $oReturn = $aTag . "<img src=\"" . $oValue . "\" " . $onclick . " alt=\"\" style=\"border-style: none;\" />" . ($aTag ? "</a>" : ""); /* } */ break; case 'status': if ($ueConfig['allow_onlinestatus'] == 1) { if (isset($user)) { $_CB_database->setQuery("SELECT COUNT(*) FROM #__session WHERE userid = " . (int) $user->id . " AND guest = 0"); $isonline = $_CB_database->loadResult(); } else { $isonline = $oValue; } if ($isonline > 0) { $oValue = _UE_ISONLINE; // $img = 'online.png'; $class = 'cb_online'; // $onlineIMG= "<img src=\"components/com_comprofiler/images/online.gif\" border=\"0\" alt=\"".$oValue."\" title=\"".$oValue."\" />"; } else { $oValue = _UE_ISOFFLINE; // $img = 'offline.png'; $class = 'cb_offline'; // $onlineIMG= "<img src=\"components/com_comprofiler/images/offline.gif\" border=\"0\" alt=\"".$oValue."\" title=\"".$oValue."\" />"; } switch ($imgMode) { case 0: $oReturn = $oValue; break; case 1: //$oReturn=$onlineIMG; $oReturn = '<span class="' . $class . '" title="' . htmlspecialchars($oValue) . '"> </span>'; break; case 2: //$oReturn=$onlineIMG.' '.$oValue; $oReturn = '<span class="' . $class . '"><span>' . htmlspecialchars($oValue) . '</span></span>'; break; } } break; case 'formatname': if ($linkURL && $ueConfig['allow_profilelink'] == 1) { $oReturn = "<a href=\"" . $linkURL . "\">"; } $oReturn .= getNameFormat($user->name, $user->username, $ueConfig['name_format']); if ($linkURL && $ueConfig['allow_profilelink'] == 1) { $oReturn .= "</a>"; } break; case 'textarea': $oReturn = nl2br(htmlspecialchars($oValue)); break; case 'delimiter': if ($field !== null && $user !== null) { $oReturn = cbReplaceVars(getLangDefinition(cbUnHtmlspecialchars($field->description)), $user); //TBD: unhtml is kept for backwards database compatibility until CB 2.0 } else { $oReturn = cbReplaceVars(getLangDefinition($oValue), $user); } break; case 'editorta': $cbFielfs = new cbFields(); $badHtmlFilter =& $cbFielfs->getInputFilter(array(), array(), 1, 1); if (isset($ueConfig['html_filter_allowed_tags']) && $ueConfig['html_filter_allowed_tags']) { $badHtmlFilter->tagBlacklist = array_diff($badHtmlFilter->tagBlacklist, explode(" ", $ueConfig['html_filter_allowed_tags'])); } $oReturn = $cbFielfs->clean($badHtmlFilter, $oValue); unset($cbFielfs); break; case 'predefined': if ($linkURL && $ueConfig['allow_profilelink'] == 1) { $oReturn = "<a href=\"" . $linkURL . "\">"; } $oReturn .= htmlspecialchars(cbUnHtmlspecialchars($oValue)); // needed for #__users:name (has &039; instead of ' in it...) //TBD: unhtml is kept for backwards database compatibility until CB 2.0 if ($linkURL && $ueConfig['allow_profilelink'] == 1) { $oReturn .= "</a>"; } break; case 'text': default: if ($field != null) { $args = array(&$field, &$user, 'html', 'profile'); $oReturn = $_PLUGINS->callField($oType, 'getField', $args, $field); } else { $oReturn = htmlspecialchars($oValue); } break; } if ($prefix != null && ($oReturn != null || $oReturn != '')) { $oReturn = $prefix . $oReturn; } return $oReturn; }
/** * Returns a field in specified format * * @param FieldTable $field * @param UserTable $user * @param string $output 'html', 'xml', 'json', 'php', 'csvheader', 'csv', 'rss', 'fieldslist', 'htmledit' * @param string $reason 'profile' for user profile view, 'edit' for profile edit, 'register' for registration, 'list' for user-lists * @param int $list_compare_types IF reason == 'search' : 0 : simple 'is' search, 1 : advanced search with modes, 2 : simple 'any' search * @return mixed */ public function getField(&$field, &$user, $output, $reason, $list_compare_types) { global $ueConfig; $value = $user->get($field->name); switch ($output) { case 'html': case 'rss': $useLayout = true; if ($field->type == 'primaryemailaddress') { if (isset($field->_imgMode)) { $imgMode = (int) $field->get('_imgMode'); $useLayout = false; // When using override we want to avoid layout usage } else { $imgMode = (int) $field->params->get($reason == 'list' ? 'displayModeList' : 'displayMode', 0); } if ($ueConfig['allow_email_display'] == 3 || $imgMode != 0) { $oValueText = CBTxt::T('UE_SENDEMAIL', 'Send Email'); } else { $oValueText = htmlspecialchars($value); } $emailIMG = '<span class="fa fa-envelope" title="' . htmlspecialchars(CBTxt::T('UE_SENDEMAIL', 'Send Email')) . '"></span>'; switch ($imgMode) { case 1: $useLayout = false; // We don't want to use layout for icon only display as we use it externally $linkItemImg = $emailIMG; $linkItemSep = null; $linkItemTxt = null; break; case 2: $linkItemImg = $emailIMG; $linkItemSep = ' '; $linkItemTxt = $oValueText; break; case 0: default: $linkItemImg = null; $linkItemSep = null; $linkItemTxt = $oValueText; break; } $oReturn = ''; //if no email or 4 (do not display email) then return empty string if ($value == null || $ueConfig['allow_email_display'] == 4 || $imgMode != 0 && $ueConfig['allow_email_display'] == 1) { // $oReturn = ''; } else { switch ($ueConfig['allow_email_display']) { case 1: //display email only $oReturn = moscomprofilerHTML::emailCloaking(htmlspecialchars($value), 0); break; case 2: //mailTo link // cloacking doesn't cloack the text of the hyperlink, if that text does contain email addresses //TODO: fix it. if (!$linkItemImg && $linkItemTxt == htmlspecialchars($value)) { $oReturn = moscomprofilerHTML::emailCloaking(htmlspecialchars($value), 1, '', 0); } elseif ($linkItemImg && $linkItemTxt != htmlspecialchars($value)) { $oReturn = moscomprofilerHTML::emailCloaking(htmlspecialchars($value), 1, $linkItemImg . $linkItemSep . $linkItemTxt, 0); } elseif ($linkItemImg && $linkItemTxt == htmlspecialchars($value)) { $oReturn = moscomprofilerHTML::emailCloaking(htmlspecialchars($value), 1, $linkItemImg, 0) . $linkItemSep; $oReturn .= moscomprofilerHTML::emailCloaking(htmlspecialchars($value), 1, '', 0); } elseif (!$linkItemImg && $linkItemTxt != htmlspecialchars($value)) { $oReturn = moscomprofilerHTML::emailCloaking(htmlspecialchars($value), 1, $linkItemTxt, 0); } break; case 3: //email Form (with cloacked email address if visible) $oReturn = "<a href=\"" . cbSef("index.php?option=com_comprofiler&view=emailuser&uid=" . $user->id . getCBprofileItemid(true)) . "\" title=\"" . CBTxt::T('UE_MENU_SENDUSEREMAIL_DESC', 'Send an Email to this user') . "\">" . $linkItemImg . $linkItemSep; if ($linkItemTxt && $linkItemTxt != CBTxt::T('UE_SENDEMAIL', 'Send Email')) { $oReturn .= moscomprofilerHTML::emailCloaking($linkItemTxt, 0); } else { $oReturn .= $linkItemTxt; } $oReturn .= "</a>"; break; } } } else { // emailaddress: if ($value == null) { $oReturn = ''; } else { if ($ueConfig['allow_email'] == 1) { $oReturn = moscomprofilerHTML::emailCloaking(htmlspecialchars($value), 1, "", 0); } else { $oReturn = moscomprofilerHTML::emailCloaking(htmlspecialchars($value), 0); } } } if ($useLayout) { $oReturn = $this->formatFieldValueLayout($oReturn, $reason, $field, $user); } break; case 'htmledit': $oReturn = $this->_fieldEditToHtml($field, $user, $reason, 'input', 'text', $value, $reason != 'search' ? $this->getDataAttributes($field, $user, $output, $reason) : null); if ($reason == 'search') { $oReturn = $this->_fieldSearchModeHtml($field, $user, $oReturn, 'text', $list_compare_types); } break; case 'json': case 'php': case 'xml': case 'csvheader': case 'fieldslist': case 'csv': default: $oReturn = parent::getField($field, $user, $output, $reason, $list_compare_types); break; } return $oReturn; }
/** * Returns a field in specified format * * @param moscomprofilerFields $field * @param moscomprofilerUser $user * @param string $output 'html', 'xml', 'json', 'php', 'csvheader', 'csv', 'rss', 'fieldslist', 'htmledit' * @param string $reason 'profile' for user profile view, 'edit' for profile edit, 'register' for registration, 'list' for user-lists * @param int $list_compare_types IF reason == 'search' : 0 : simple 'is' search, 1 : advanced search with modes, 2 : simple 'any' search * @return mixed */ function getField(&$field, &$user, $output, $reason, $list_compare_types) { global $_CB_framework, $ueConfig; $value = $user->get($field->name); switch ($output) { case 'html': case 'rss': if ($field->type == 'primaryemailaddress') { $imgMode = 0; if ($ueConfig['allow_email_display'] == 3 || $imgMode != 0) { $oValueText = _UE_SENDEMAIL; } else { $oValueText = htmlspecialchars($value); } $emailIMG = '<img src="' . $_CB_framework->getCfg('live_site') . '/components/com_comprofiler/images/email.gif" border="0" alt="' . _UE_SENDEMAIL . '" title="' . _UE_SENDEMAIL . '" />'; switch ($imgMode) { case 0: $linkItemImg = null; $linkItemSep = null; $linkItemTxt = $oValueText; break; case 1: $linkItemImg = $emailIMG; $linkItemSep = null; $linkItemTxt = null; break; case 2: $linkItemImg = $emailIMG; $linkItemSep = ' '; $linkItemTxt = $oValueText; break; } $oReturn = ''; //if no email or 4 (do not display email) then return empty string if ($value == null || $ueConfig['allow_email_display'] == 4 || $imgMode != 0 && $ueConfig['allow_email_display'] == 1) { // $oReturn = ''; } else { switch ($ueConfig['allow_email_display']) { case 1: //display email only $oReturn = moscomprofilerHTML::emailCloaking(htmlspecialchars($value), 0); break; case 2: //mailTo link // cloacking doesn't cloack the text of the hyperlink, if that text does contain email addresses //TODO: fix it. if (!$linkItemImg && $linkItemTxt == htmlspecialchars($value)) { $oReturn = moscomprofilerHTML::emailCloaking(htmlspecialchars($value), 1, '', 0); } elseif ($linkItemImg && $linkItemTxt != htmlspecialchars($value)) { $oReturn = moscomprofilerHTML::emailCloaking(htmlspecialchars($value), 1, $linkItemImg . $linkItemSep . $linkItemTxt, 0); } elseif ($linkItemImg && $linkItemTxt == htmlspecialchars($value)) { $oReturn = moscomprofilerHTML::emailCloaking(htmlspecialchars($value), 1, $linkItemImg, 0) . $linkItemSep; $oReturn .= moscomprofilerHTML::emailCloaking(htmlspecialchars($value), 1, '', 0); } elseif (!$linkItemImg && $linkItemTxt != htmlspecialchars($value)) { $oReturn = moscomprofilerHTML::emailCloaking(htmlspecialchars($value), 1, $linkItemTxt, 0); } break; case 3: //email Form (with cloacked email address if visible) $oReturn = "<a href=\"" . cbSef("index.php?option=com_comprofiler&task=emailUser&uid=" . $user->id . getCBprofileItemid(true)) . "\" title=\"" . _UE_MENU_SENDUSEREMAIL_DESC . "\">" . $linkItemImg . $linkItemSep; if ($linkItemTxt && $linkItemTxt != _UE_SENDEMAIL) { $oReturn .= moscomprofilerHTML::emailCloaking($linkItemTxt, 0); } else { $oReturn .= $linkItemTxt; } $oReturn .= "</a>"; break; } } } else { // emailaddress: if ($value == null) { $oReturn = ''; } else { if ($ueConfig['allow_email'] == 1) { $oReturn = moscomprofilerHTML::emailCloaking(htmlspecialchars($value), 1, "", 0); } else { $oReturn = moscomprofilerHTML::emailCloaking(htmlspecialchars($value), 0); } } } break; case 'htmledit': $ajaxCheck = ($field->type == 'primaryemailaddress' && (isset($ueConfig['reg_email_checker']) && $ueConfig['reg_email_checker'] > 0) || $field->params->get('field_check_email', 0) || $_CB_framework->getUi() == 2) && $reason != 'search'; if (defined('_CB_VALIDATE_NEW')) { if ($ajaxCheck && $reason != 'search') { $oReturn = $this->_fieldEditToHtml($field, $user, $reason, 'input', 'text', $value, '', null, true, array('email', $this->ajaxCheckField($field, $user, $reason, array('email:true')))); // $this->ajaxCheckField( $field, $user, $reason ); } else { $oReturn = $this->_fieldEditToHtml($field, $user, $reason, 'input', 'text', $value, '', null, true, $reason != 'search' ? array('email') : array()); if ($reason == 'search') { $oReturn = $this->_fieldSearchModeHtml($field, $user, $oReturn, 'text', $list_compare_types); } } } else { $oReturn = $this->_fieldEditToHtml($field, $user, $reason, 'input', 'text', $value, '', null, true, $reason != 'search' ? array('email') : array()); if ($reason == 'search') { $oReturn = $this->_fieldSearchModeHtml($field, $user, $oReturn, 'text', $list_compare_types); } elseif ($ajaxCheck) { $this->ajaxCheckField($field, $user, $reason); } } break; case 'json': case 'php': case 'xml': case 'csvheader': case 'fieldslist': case 'csv': default: $oReturn = parent::getField($field, $user, $output, $reason, $list_compare_types); break; } return $oReturn; }