本文整理汇总了PHP中CBLib\Application\Application::Config方法的典型用法代码示例。如果您正苦于以下问题:PHP Application::Config方法的具体用法?PHP Application::Config怎么用?PHP Application::Config使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CBLib\Application\Application
的用法示例。
在下文中一共展示了Application::Config方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: sendToModerators
/**
* Send an email to all global moderators
*
* @param string $subject Subject
* @param string $message HTML message for PMS
* @param boolean|int $replaceVariables Should we replace variables ?
* @param int $mode false = plain text, true = HTML
* @param null|string $cc Email CC address
* @param null|string $bcc Email BCC address
* @param null|string $attachment Email attachment files
* @param array $extraStrings Extra replacement strings to use if $replaceVariables = true
* @return boolean Result
*/
public function sendToModerators($subject, $message, $replaceVariables = false, $mode = 0, $cc = null, $bcc = null, $attachment = null, $extraStrings = array())
{
global $_CB_database;
$moderators = Application::CmsPermissions()->getGroupsOfViewAccessLevel(Application::Config()->get('moderator_viewaccesslevel', 3, \CBLib\Registry\GetterInterface::INT), true);
if ($moderators) {
$query = 'SELECT u.id' . "\n FROM #__users u" . "\n INNER JOIN #__comprofiler c" . ' ON u.id = c.id';
$query .= "\n INNER JOIN #__user_usergroup_map g" . ' ON c.id = g.user_id' . "\n WHERE g.group_id IN " . $_CB_database->safeArrayOfIntegers($moderators);
$query .= "\n AND u.block = 0" . "\n AND c.confirmed = 1" . "\n AND c.approved = 1" . "\n AND u.sendEmail = 1";
$_CB_database->setQuery($query);
$mods = $_CB_database->loadObjectList();
if ($mods) {
foreach ($mods as $mod) {
$this->sendFromSystem($mod->id, $subject, $message, $replaceVariables, $mode, $cc, $bcc, $attachment, $extraStrings);
}
}
}
}
示例2: showInviteEdit
/**
* prepare frontend invite edit render
*
* @param int $id
* @param UserTable $user
*/
private function showInviteEdit( $id, $user )
{
global $_CB_framework;
$row = new InviteTable();
$row->load( (int) $id );
$isModerator = CBGroupJive::isModerator( $user->get( 'id' ) );
$groupId = $this->input( 'group', null, GetterInterface::INT );
if ( $groupId === null ) {
$group = $row->group();
} else {
$group = CBGroupJive::getGroup( $groupId );
}
$returnUrl = $_CB_framework->pluginClassUrl( $this->element, false, array( 'action' => 'groups', 'func' => 'show', 'id' => (int) $group->get( 'id' ) ) );
if ( ! CBGroupJive::canAccessGroup( $group, $user ) ) {
cbRedirect( $returnUrl, CBTxt::T( 'Group does not exist.' ), 'error' );
} elseif ( $row->get( 'id' ) && ( $user->get( 'id' ) != $row->get( 'user_id' ) ) ) {
cbRedirect( $returnUrl, CBTxt::T( 'You do not have sufficient permissions to edit this invite.' ), 'error' );
} elseif ( ! $isModerator ) {
if ( ( $row->get( 'published' ) == -1 ) || ( ( ! $this->params->get( 'groups_invites_display', 1 ) ) && ( $group->get( 'type' ) != 3 ) ) ) {
cbRedirect( $returnUrl, CBTxt::T( 'You do not have access to invites in this group.' ), 'error' );
} elseif ( ( ! $row->get( 'id' ) ) && ( ! CBGroupJive::canCreateGroupContent( $user, $group, 'invites' ) ) ) {
cbRedirect( $returnUrl, CBTxt::T( 'You do not have sufficient permissions to create an invite in this group.' ), 'error' );
}
}
CBGroupJive::getTemplate( 'invite_edit' );
$input = array();
$inviteBy = array();
$inviteByLimit = explode( '|*|', $this->params->get( 'groups_invites_by', '1|*|2|*|3|*|4' ) );
if ( ! $inviteByLimit ) {
$inviteByLimit = array( 1, 2, 3, 4 );
}
if ( in_array( 1, $inviteByLimit ) ) {
$inviteBy[] = CBTxt::T( 'User ID' );
}
if ( in_array( 2, $inviteByLimit ) ) {
$inviteBy[] = CBTxt::T( 'Username' );
}
if ( in_array( 3, $inviteByLimit ) ) {
$inviteBy[] = CBTxt::T( 'Name' );
}
if ( in_array( 4, $inviteByLimit ) ) {
$inviteBy[] = CBTxt::T( 'Email Address' );
}
$input['invite_by'] = $inviteBy;
$listConnections = array();
if ( Application::Config()->get( 'allowConnections' ) ) {
$cbConnection = new cbConnection( (int) $user->get( 'id' ) );
foreach( $cbConnection->getConnectedToMe( (int) $user->get( 'id' ) ) as $connection ) {
$listConnections[] = moscomprofilerHTML::makeOption( (string) $connection->id, getNameFormat( $connection->name, $connection->username, Application::Config()->get( 'name_format', 3 ) ) );
}
}
if ( $listConnections ) {
array_unshift( $listConnections, moscomprofilerHTML::makeOption( '0', CBTxt::T( '- Select Connection -' ) ) );
$listTooltip = cbTooltip( null, CBTxt::T( 'Select a connection to invite.' ), null, null, null, null, null, 'data-hascbtooltip="true"' );
$input['list'] = moscomprofilerHTML::selectList( $listConnections, 'selected', 'class="gjInviteConnection form-control"' . $listTooltip, 'value', 'text', (int) $this->input( 'post/selected', 0, GetterInterface::INT ), 1, false, false );
} else {
$input['list'] = null;
}
$toTooltup = cbTooltip( null, CBTxt::T( 'GROUP_INVITE_BY', 'Input the recipient as [invite_by].', array( '[invite_by]' => implode( ', ', $inviteBy ) ) ), null, null, null, null, null, 'data-hascbtooltip="true"' );
$input['to'] = '<input type="text" id="to" name="to" value="' . htmlspecialchars( $this->input( 'post/to', ( $row->get( 'user' ) ? (int) $row->get( 'user' ) : $row->get( 'email' ) ), GetterInterface::STRING ) ) . '" class="gjInviteOther form-control" size="40"' . $toTooltup . ' />';
$messageTooltip = cbTooltip( null, CBTxt::T( 'Optionally input private message to include with the invite.' ), null, null, null, null, null, 'data-hascbtooltip="true"' );
$input['message'] = '<textarea id="message" name="message" class="form-control" cols="40" rows="5"' . $messageTooltip . '>' . htmlspecialchars( $this->input( 'post/message', $row->get( 'message' ), GetterInterface::STRING ) ) . '</textarea>';
HTML_groupjiveInviteEdit::showInviteEdit( $row, $input, $group, $user, $this );
}
示例3: recordViewHit
/**
* records a visit and the hit with timed protection similar to voting protections
*
* @param int $viewerId Viewing user id
* @param int $profileId Viewed user id
* @param string $ipAddress IP address of viewing user
*/
function recordViewHit($viewerId, $profileId, $ipAddress)
{
global $_CB_framework, $_CB_database, $ueConfig;
if (!Application::Config()->get('profile_recordviews', 1)) {
return;
}
$query = 'SELECT ' . $_CB_database->NameQuote('lastview') . ', ' . $_CB_database->NameQuote('lastip') . "\n FROM " . $_CB_database->NameQuote('#__comprofiler_views') . "\n WHERE " . $_CB_database->NameQuote('viewer_id') . " = " . (int) $viewerId . "\n AND " . $_CB_database->NameQuote('profile_id') . " = " . (int) $profileId . ($viewerId == 0 ? "\n AND " . $_CB_database->NameQuote('lastip') . " = " . $_CB_database->Quote($ipAddress) : null) . "\n ORDER BY " . $_CB_database->NameQuote('lastview') . " DESC";
$_CB_database->setQuery($query);
$views = $_CB_database->loadObjectList();
if (count($views) == 0) {
// no views yet: insert the view record:
$query = 'INSERT INTO ' . $_CB_database->NameQuote('#__comprofiler_views') . "\n ( " . $_CB_database->NameQuote('viewer_id') . ', ' . $_CB_database->NameQuote('profile_id') . ', ' . $_CB_database->NameQuote('lastip') . ', ' . $_CB_database->NameQuote('lastview') . ', ' . $_CB_database->NameQuote('viewscount') . ' )' . "\n VALUES ( " . (int) $viewerId . ', ' . (int) $profileId . ', ' . $_CB_database->Quote($ipAddress) . ', ' . $_CB_database->Quote($_CB_framework->getUTCDate()) . ', 1 )';
$_CB_database->setQuery($query);
if (!$_CB_database->query()) {
echo "<script type=\"text/javascript\">alert( 'InsertViews: " . addslashes($_CB_database->getErrorMsg()) . "' );</script>\n";
}
_incHits($profileId);
} else {
// we already have view(s):
$count = count($views);
$lastview = $_CB_framework->getUTCTimestamp($views[0]->lastview);
if ($count > 1) {
// huston, we have a database problem: we have more than one entry for the pair viewer-viewed OR the tripplet (anonymous viewer=0 - viewed - IP address):
// updating would generate key conflicts: cleanupt that mess please:
$query = 'DELETE FROM ' . $_CB_database->NameQuote('#__comprofiler_views') . "\n WHERE " . $_CB_database->NameQuote('viewer_id') . " = " . (int) $viewerId . "\n AND " . $_CB_database->NameQuote('profile_id') . " = " . (int) $profileId . ($viewerId == 0 ? "\n AND " . $_CB_database->NameQuote('lastip') . " = " . $_CB_database->Quote($ipAddress) : null) . "\n AND " . $_CB_database->NameQuote('lastview') . " <> " . $_CB_database->Quote($views[0]->lastview);
$_CB_database->setQuery($query);
if (!$_CB_database->query()) {
echo "<script type=\"text/javascript\">alert( 'DeleteViews: " . addslashes($_CB_database->getErrorMsg()) . "' );</script>\n";
}
}
// ok there was a view, we will count it only if lastview time is greater than the minimum interval configured,
$needsUpdate = $_CB_framework->getUTCTimestamp() - $lastview > $ueConfig['minHitsInterval'] * 60;
// but we will update any IP address changes in case of a logged-in user (for guests, the SELECT above is by IP address, so that entry and IP is already same:
if ($ipAddress != $views[0]->lastip || $needsUpdate) {
$query = 'UPDATE ' . $_CB_database->NameQuote('#__comprofiler_views') . "\n SET " . $_CB_database->NameQuote('lastview') . " = " . $_CB_database->Quote($_CB_framework->getUTCDate()) . ', ' . $_CB_database->NameQuote('lastip') . " = " . $_CB_database->Quote($ipAddress) . ($needsUpdate ? ', ' . $_CB_database->NameQuote('viewscount') . " = (" . $_CB_database->NameQuote('viewscount') . "+1)" : '') . "\n WHERE " . $_CB_database->NameQuote('viewer_id') . " = " . (int) $viewerId . "\n AND " . $_CB_database->NameQuote('profile_id') . " = " . (int) $profileId . ($viewerId == 0 ? "\n AND " . $_CB_database->NameQuote('lastip') . " = " . $_CB_database->Quote($ipAddress) : null);
$_CB_database->setQuery($query);
if (!$_CB_database->query()) {
echo "<script type=\"text/javascript\">alert( 'UpdateViews: " . addslashes($_CB_database->getErrorMsg()) . "' );</script>\n";
}
if ($needsUpdate) {
_incHits($profileId);
}
}
}
}
示例4: getDisplayTab
//.........这里部分代码省略.........
. "\n LEFT JOIN " . $_CB_database->NameQuote( '#__groupjive_invites' ) . " AS mi"
. ' ON mi.' . $_CB_database->NameQuote( 'group' ) . ' = g.' . $_CB_database->NameQuote( 'id' )
. ' AND mi.' . $_CB_database->NameQuote( 'accepted' ) . ' = ' . $_CB_database->Quote( '0000-00-00 00:00:00' )
. ' AND ( ( mi.' . $_CB_database->NameQuote( 'email' ) . ' = ' . $_CB_database->Quote( $viewer->get( 'email' ) )
. ' AND mi.' . $_CB_database->NameQuote( 'email' ) . ' != "" )'
. ' OR ( mi.' . $_CB_database->NameQuote( 'user' ) . ' = ' . (int) $viewer->get( 'id' )
. ' AND mi.' . $_CB_database->NameQuote( 'user' ) . ' > 0 ) )'
. "\n WHERE ( g." . $_CB_database->NameQuote( 'user_id' ) . " = " . (int) $user->get( 'id' );
if ( ! $isModerator ) {
$query .= ' OR ( g.' . $_CB_database->NameQuote( 'published' ) . ' = 1'
. ' AND u.' . $_CB_database->NameQuote( 'status' ) . ' IN ( 1, 2, 3 ) ) )'
. "\n AND ( g." . $_CB_database->NameQuote( 'user_id' ) . " = " . (int) $viewer->get( 'id' )
. ' OR ( g.' . $_CB_database->NameQuote( 'published' ) . ' = 1'
. ' AND ( g.' . $_CB_database->NameQuote( 'type' ) . ' IN ( 1, 2 )'
. ' OR mu.' . $_CB_database->NameQuote( 'status' ) . ' IN ( 0, 1, 2, 3 )'
. ' OR mi.' . $_CB_database->NameQuote( 'id' ) . ' IS NOT NULL ) ) )';
} else {
$query .= ' OR u.' . $_CB_database->NameQuote( 'status' ) . ' IN ( 1, 2, 3 ) )';
}
}
if ( ! $isModerator ) {
$query .= "\n AND ( ( c." . $_CB_database->NameQuote( 'published' ) . " = 1"
. ' AND c.' . $_CB_database->NameQuote( 'access' ) . ' IN ' . $_CB_database->safeArrayOfIntegers( CBGroupJive::getAccess( (int) $user->get( 'id' ) ) )
. ' AND c.' . $_CB_database->NameQuote( 'access' ) . ' IN ' . $_CB_database->safeArrayOfIntegers( CBGroupJive::getAccess( (int) $viewer->get( 'id' ) ) ) . ' )'
. ( $this->params->get( 'groups_uncategorized', 1 ) ? ' OR g.' . $_CB_database->NameQuote( 'category' ) . ' = 0 )' : ' )' );
}
$query .= $where;
$_CB_database->setQuery( $query );
$total = (int) $_CB_database->loadResult();
if ( ( ! $total ) && ( ! $searching ) && ( ( ! $isOwner ) || ( $isOwner && ( ! CBGroupJive::canCreateGroup( $user ) ) ) ) && ( ! Application::Config()->get( 'showEmptyTabs', 1 ) ) ) {
return null;
}
$pageNav = new cbPageNav( $total, $limitstart, $limit );
$pageNav->setInputNamePrefix( 'gj_tab_' );
switch( (int) $tab->params->get( 'tab_orderby', 1 ) ) {
case 2:
$orderBy = 'g.' . $_CB_database->NameQuote( 'ordering' ) . ' DESC';
break;
case 3:
$orderBy = 'g.' . $_CB_database->NameQuote( 'date' ) . ' ASC';
break;
case 4:
$orderBy = 'g.' . $_CB_database->NameQuote( 'date' ) . ' DESC';
break;
case 5:
$orderBy = 'g.' . $_CB_database->NameQuote( 'name' ) . ' ASC';
break;
case 6:
$orderBy = 'g.' . $_CB_database->NameQuote( 'name' ) . ' DESC';
break;
case 7:
$orderBy = $_CB_database->NameQuote( '_users' ) . ' ASC';
break;
case 8:
$orderBy = $_CB_database->NameQuote( '_users' ) . ' DESC';
break;
case 1:
default:
$orderBy = 'g.' . $_CB_database->NameQuote( 'ordering' ) . ' ASC';
示例5: authoriseView
/**
* Check authorization to view for $contentType for content $id
*
* @since 1.8 (experimental)
*
* @param string $contentType Content-type: 'profile'
* @param int $id Content id
* @return boolean True if authorized, False if not authorized
*/
public function authoriseView($contentType, $id)
{
global $_PLUGINS;
$authorization = false;
if ($contentType == 'profile') {
// Check for profile View Access Level (new in CB 2.0):
$viewAccessLevel = Application::Config()->get('profile_viewaccesslevel', 0, GetterInterface::INT);
if ($viewAccessLevel == 0) {
// No configuration here: Check for old config (safely defaulting to Special View access level) until config is re-saved:
$oldGID = Application::Config()->get('allow_profileviewbyGID', 3, GetterInterface::INT);
$mapping = array(-2 => 1, -1 => 2, 0 => 1, 1 => 1, 2 => 2, 3 => 3);
if (in_array($oldGID, $mapping)) {
$viewAccessLevel = $mapping[$oldGID];
} else {
// Default here is "Special" Access level until configuration is saved:
$viewAccessLevel = 3;
}
}
$authorization = Application::MyUser()->canViewAccessLevel($viewAccessLevel);
}
if ($contentType == 'userslist') {
$authorization = Application::MyUser()->canViewAccessLevel(cbUsersList::getInstance($id)->viewaccesslevel);
}
if ($_PLUGINS) {
$_PLUGINS->trigger('onAfterAuthorizeView', array($contentType, $id, &$authorization));
}
return $authorization;
}
示例6: getFieldValue
/**
* Formats a field value $oValue for field name $oType for user $user
*
* @deprecated 1.0 (used only by (and kept only for) ProfileBook 1.3 until it is rewritten)
*
* @param string $oType
* @param string $oValue
* @param UserTable $user
* @return string
*/
function getFieldValue($oType, $oValue = null, $user = null)
{
if (!$user || !$user->id) {
return '';
}
if ($oType == 'text') {
return htmlspecialchars($oValue);
}
if ($oType == 'webaddress') {
if ($oValue == null) {
return '';
}
if (Application::Config()->get('allow_website') == 1) {
$oReturn = explode('|*|', $oValue);
if (count($oReturn) < 2) {
$oReturn[1] = $oReturn[0];
}
return '<a href="http://' . htmlspecialchars($oReturn[0]) . '" target="_blank" rel="nofollow">' . htmlspecialchars($oReturn[1]) . '</a>';
}
return htmlspecialchars($oValue);
}
return CBuser::getInstance($user->id)->getField($oType, $oValue);
}
示例7: uploadImage
/**
* Uploads category or group canvas or logo
*
* @param string $type
* @param CategoryTable|GroupTable $row
* @return bool
*/
static public function uploadImage( $type = 'canvas', &$row )
{
global $_CB_framework, $_PLUGINS;
if ( ( ! $type ) || ( ! in_array( $type, array( 'canvas', 'logo' ) ) ) ) {
return false;
}
$method = Application::Input()->get( 'post/' . $type . '_method', null, GetterInterface::INT );
if ( $method === 0 ) {
return true;
}
static $params = null;
if ( ! $params ) {
$plugin = $_PLUGINS->getLoadedPlugin( 'user', 'cbgroupjive' );
$params = $_PLUGINS->getPluginParams( $plugin );
}
$basePath = $_CB_framework->getCfg( 'absolute_path' ) . '/images/comprofiler/plug_cbgroupjive';
if ( $row instanceof GroupTable ) {
$imagePath = $basePath . '/' . (int) $row->get( 'category' ) . '/' . (int) $row->get( 'id' );
} else {
$imagePath = $basePath . '/' . (int) $row->get( 'id' );
}
if ( ( ( $method === null ) || ( $method === 1 ) ) && isset( $_FILES[$type]['tmp_name'] ) && ( ! empty( $_FILES[$type]['tmp_name'] ) ) ) {
if ( $row instanceof GroupTable ) {
self::createDirectory( $basePath, $row->get( 'category' ), $row->get( 'id' ) );
} else {
self::createDirectory( $basePath, $row->get( 'id' ) );
}
$resample = $params->get( $type . '_resample', 1 );
$aspectRatio = $params->get( $type . '_maintain_aspect_ratio', 1 );
$imageHeight = (int) $params->get( $type . '_image_height', 640 );
if ( ! $imageHeight ) {
$imageHeight = 640;
}
$imageWidth = (int) $params->get( $type . '_image_width', 1280 );
if ( ! $imageWidth ) {
$imageWidth = 1280;
}
$thumbHeight = (int) $params->get( $type . '_thumbnail_height', 320 );
if ( ! $thumbHeight ) {
$thumbHeight = 320;
}
$thumbWidth = (int) $params->get( $type . '_thumbnail_width', 640 );
if ( ! $thumbWidth ) {
$thumbWidth = 640;
}
$conversionType = (int) Application::Config()->get( 'conversiontype', 0 );
$imageSoftware = ( $conversionType == 5 ? 'gmagick' : ( $conversionType == 1 ? 'imagick' : 'gd' ) );
$imageId = uniqid();
try {
$image = new \CBLib\Image\Image( $imageSoftware, $resample, $aspectRatio );
$image->setName( $imageId );
$image->setSource( $_FILES[$type] );
$image->setDestination( $imagePath . '/' );
$image->processImage( $imageWidth, $imageHeight );
$newFileName = $image->getCleanFilename();
$image->setName( 'tn' . $imageId );
$image->processImage( $thumbWidth, $thumbHeight );
if ( $row->get( $type ) ) {
$oldImage = $imagePath . '/' . $row->get( $type );
if ( file_exists( $oldImage ) ) {
@unlink( $oldImage );
}
$oldThumbnail = $imagePath . '/tn' . $row->get( $type );
if ( file_exists( $oldThumbnail ) ) {
@unlink( $oldThumbnail );
}
//.........这里部分代码省略.........
示例8: profiles
/**
* Replaces @MENTION with profile urls
*
* @return string
*/
public function profiles()
{
global $_CB_database, $_CB_framework;
/** @var UserTable[] $users */
static $users = array();
foreach ( $this->words as $k => $word ) {
if ( preg_match( $this->regexp['profile'], $word, $match ) ) {
$cleanWord = Get::clean( $match[1], GetterInterface::STRING );
if ( ! isset( $users[$cleanWord] ) ) {
$user = new UserTable();
if ( is_numeric( $match[1] ) ) {
$user->load( (int) $match[1] );
}
if ( ! $user->get( 'id' ) ) {
$wordNext2 = ( isset( $this->words[$k+1] ) && ( ! preg_match( $this->regexp['profile'], $this->words[$k+1] ) ) ? $cleanWord . ' ' . Get::clean( $this->words[$k+1], GetterInterface::STRING ) : null );
$wordNext3 = ( $wordNext2 && isset( $this->words[$k+2] ) && ( ! preg_match( $this->regexp['profile'], $this->words[$k+2] ) ) ? $wordNext2 . ' ' . Get::clean( $this->words[$k+2], GetterInterface::STRING ) : null );
$wordNext4 = ( $wordNext3 && isset( $this->words[$k+3] ) && ( ! preg_match( $this->regexp['profile'], $this->words[$k+3] ) ) ? $wordNext3 . ' ' . Get::clean( $this->words[$k+3], GetterInterface::STRING ) : null );
$wordNext5 = ( $wordNext4 && isset( $this->words[$k+4] ) && ( ! preg_match( $this->regexp['profile'], $this->words[$k+4] ) ) ? $wordNext4 . ' ' . Get::clean( $this->words[$k+4], GetterInterface::STRING ) : null );
$wordNext6 = ( $wordNext5 && isset( $this->words[$k+5] ) && ( ! preg_match( $this->regexp['profile'], $this->words[$k+5] ) ) ? $wordNext5 . ' ' . Get::clean( $this->words[$k+5], GetterInterface::STRING ) : null );
$query = 'SELECT c.*, u.*'
. "\n FROM " . $_CB_database->NameQuote( '#__users' ) . " AS u"
. "\n LEFT JOIN " . $_CB_database->NameQuote( '#__comprofiler' ) . " AS c"
. ' ON c.' . $_CB_database->NameQuote( 'id' ) . ' = u.' . $_CB_database->NameQuote( 'id' )
. "\n WHERE ( u." . $_CB_database->NameQuote( 'username' ) . ' = ' . $_CB_database->Quote( $cleanWord ) // Match username exactly
. ' OR u.' . $_CB_database->NameQuote( 'name' ) . ' = ' . $_CB_database->Quote( $cleanWord ); // Match name exactly
if ( $wordNext2 ) { // 2 Words
$query .= ' OR u.' . $_CB_database->NameQuote( 'username' ) . ' = ' . $_CB_database->Quote( $wordNext2 ) // Match username +1 word exactly
. ' OR u.' . $_CB_database->NameQuote( 'name' ) . ' = ' . $_CB_database->Quote( $wordNext2 ); // Match name +1 word exactly
}
if ( $wordNext3 ) { // 3 Words
$query .= ' OR u.' . $_CB_database->NameQuote( 'username' ) . ' = ' . $_CB_database->Quote( $wordNext3 ) // Match username +2 words exactly
. ' OR u.' . $_CB_database->NameQuote( 'name' ) . ' = ' . $_CB_database->Quote( $wordNext3 ); // Match name +2 words exactly
}
if ( $wordNext4 ) { // 4 Words
$query .= ' OR u.' . $_CB_database->NameQuote( 'username' ) . ' = ' . $_CB_database->Quote( $wordNext4 ) // Match username +3 words exactly
. ' OR u.' . $_CB_database->NameQuote( 'name' ) . ' = ' . $_CB_database->Quote( $wordNext4 ); // Match name +3 words exactly
}
if ( $wordNext5 ) { // 5 Words
$query .= ' OR u.' . $_CB_database->NameQuote( 'username' ) . ' = ' . $_CB_database->Quote( $wordNext5 ) // Match username +4 words exactly
. ' OR u.' . $_CB_database->NameQuote( 'name' ) . ' = ' . $_CB_database->Quote( $wordNext5 ); // Match name +4 words exactly
}
if ( $wordNext6 ) { // 6 Words
$query .= ' OR u.' . $_CB_database->NameQuote( 'username' ) . ' = ' . $_CB_database->Quote( $wordNext6 ) // Match username +5 words exactly
. ' OR u.' . $_CB_database->NameQuote( 'name' ) . ' = ' . $_CB_database->Quote( $wordNext6 ); // Match name +5 words exactly
}
$query .= ' )'
. "\n ORDER BY u." . $_CB_database->NameQuote( 'username' ) . ", u." . $_CB_database->NameQuote( 'name' );
$_CB_database->setQuery( $query );
$_CB_database->loadObject( $user );
}
$users[$cleanWord] = $user;
}
$user = $users[$cleanWord];
if ( $user->get( 'id' ) ) {
$this->parsed = preg_replace( '/@' . (int) $user->get( 'id' ) . '\b|@' . preg_quote( $user->get( 'name' ), '/' ) . '\b|@' . preg_quote( $user->get( 'username' ), '/' ) . '\b|' . preg_quote( $word, '/' ) . '\b/i', '<a href="' . $_CB_framework->userProfileUrl( (int) $user->get( 'id' ) ) . '" rel="nofollow">@' . htmlspecialchars( getNameFormat( $user->get( 'name' ), $user->get( 'username' ), Application::Config()->get( 'name_format' ) ) ) . '</a>', $this->parsed );
}
}
}
return $this->parsed;
}
示例9: getFieldRow
/**
* Returns a USERPARAMS field in specified format
*
* @param FieldTable $field
* @param UserTable $user
* @param string $output 'html', 'xml', 'json', 'php', 'csvheader', 'csv', 'rss', 'fieldslist', 'htmledit'
* @param string $formatting 'table', 'td', 'span', 'div', 'none'
* @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 getFieldRow(&$field, &$user, $output, $formatting, $reason, $list_compare_types)
{
global $_CB_framework, $ueConfig;
$results = null;
if (class_exists('JFactory')) {
// Joomla 1.5 :
$lang = JFactory::getLanguage();
$lang->load('com_users');
}
$pseudoFields = array();
//Implementing Joomla's new user parameters such as editor
$ui = $_CB_framework->getUi();
$userParams = $this->_getUserParams($ui, $user);
if (is_array($userParams) && count($userParams) > 0 && ($ui == 2 || (isset($ueConfig['frontend_userparams']) ? $ueConfig['frontend_userparams'] == 1 : in_array($_CB_framework->getCfg('frontend_userparams'), array('1', null))))) {
if ($ui == 1) {
$excludeParams = explode('|*|', $field->params->get('hide_userparams'));
} else {
$excludeParams = array();
}
//Loop through each parameter and prepare rendering appropriately.
foreach ($userParams as $k => $userParam) {
if (checkJversion() >= 2) {
$nameId = isset($userParam[4]) ? $userParam[4] : null;
} else {
$nameId = isset($userParam[5]) ? $userParam[5] : null;
}
if (!$excludeParams || !$nameId || $nameId && !in_array($nameId, $excludeParams)) {
$paramField = new FieldTable($field->getDbo());
$paramField->title = $userParam[0];
$paramField->_html = $userParam[1];
$paramField->description = isset($userParam[2]) && class_exists("JText") ? JText::_($userParam[2]) : null;
$paramField->name = isset($userParam[3]) && class_exists("JText") ? JText::_($userParam[3]) : null;
// very probably wrong!
$paramField->fieldid = 'userparam_' . $k;
$paramField->type = 'param';
// this is for cb_ftparam class to be correct.
if (!preg_match('/<(?:input|select|textarea)[^>]*class[^>]*>/i', $paramField->_html)) {
$paramField->_html = preg_replace('/<(input|select|textarea)/i', '<$1 class="form-control"', $paramField->_html);
}
$pseudoFields[] = $paramField;
}
}
}
if ($ui == 2) {
$i_am_super_admin = Application::MyUser()->isSuperAdmin();
$canBlockUser = Application::MyUser()->isAuthorizedToPerformActionOnAsset('core.edit.state', 'com_users');
$canEmailEvents = $user->id == 0 && $canBlockUser || Application::User((int) $user->id)->isAuthorizedToPerformActionOnAsset('core.edit.state', 'com_users') || Application::User((int) $user->id)->canViewAccessLevel(Application::Config()->get('moderator_viewaccesslevel', 3, \CBLib\Registry\GetterInterface::INT));
$lists = array();
if ($canBlockUser) {
// ensure user can't add group higher than themselves
$gtree = $_CB_framework->acl->get_groups_below_me();
if (!$i_am_super_admin && $user->id && Application::User((int) $user->id)->isAuthorizedToPerformActionOnAsset('core.manage', 'com_users') && (Application::User((int) $user->id)->isAuthorizedToPerformActionOnAsset('core.edit', 'com_users') || Application::User((int) $user->id)->isAuthorizedToPerformActionOnAsset('core.edit.state', 'com_users'))) {
$disabled = ' disabled="disabled"';
} else {
$disabled = '';
}
if ($user->id) {
$strgids = array_map('strval', Application::User((int) $user->id)->getAuthorisedGroups(false));
} else {
$strgids = (string) $_CB_framework->getCfg('new_usertype');
}
$lists['gid'] = moscomprofilerHTML::selectList($gtree, 'gid[]', 'class="form-control" size="11" multiple="multiple"' . $disabled, 'value', 'text', $strgids, 2, false, null, false);
// build the html select list
$lists['block'] = moscomprofilerHTML::yesnoSelectList('block', 'class="form-control"', (string) $user->block);
$list_banned = array();
$list_banned[] = moscomprofilerHTML::makeOption('1', CBTxt::T('Banned'));
$list_banned[] = moscomprofilerHTML::makeOption('2', CBTxt::T('Pending'));
$list_banned[] = moscomprofilerHTML::makeOption('0', CBTxt::T('Active'));
$lists['banned'] = moscomprofilerHTML::selectList($list_banned, 'banned', 'class="form-control"', 'value', 'text', (string) $user->banned, 2, false, null, false);
$list_approved = array();
$list_approved[] = moscomprofilerHTML::makeOption('2', CBTxt::T('Rejected'));
$list_approved[] = moscomprofilerHTML::makeOption('0', CBTxt::T('Pending'));
$list_approved[] = moscomprofilerHTML::makeOption('1', CBTxt::T('Approved'));
$lists['approved'] = moscomprofilerHTML::selectList($list_approved, 'approved', 'class="form-control"', 'value', 'text', (string) $user->approved, 2, false, null, false);
$lists['confirmed'] = moscomprofilerHTML::yesnoSelectList('confirmed', 'class="form-control"', (string) $user->confirmed, CBTxt::T('Confirmed'), CBTxt::T('Pending'));
// build the html select list
$lists['sendEmail'] = moscomprofilerHTML::yesnoSelectList('sendEmail', 'class="form-control"', (string) $user->sendEmail);
$paramField = new FieldTable($field->getDbo());
$paramField->title = 'Group';
// For translation parser: CBTxt::T( 'Group' );
$paramField->_html = $lists['gid'];
$paramField->description = '';
$paramField->name = 'gid';
$pseudoFields[] = $paramField;
$paramField = new FieldTable($field->getDbo());
$paramField->title = 'Block User';
// For translation parser: CBTxt::T( 'Block User' );
$paramField->_html = $lists['block'];
$paramField->description = '';
//.........这里部分代码省略.........
示例10: outputCbJQuery
/**
* Outputs a JQuery init string into JQuery strings at end of page,
* and adds if needed JS file inclusions at begin of page.
* Pro-memo, JQuery runs in CB in noConflict mode.
*
* @param string $javascriptCode Javascript code ended by ; which will be put in between jQuery(document).ready(function($){ AND });
* @param string $jQueryPlugin (optional) name of plugin to auto-load (if core plugin, or call first addJQueryPlugin).
*/
function outputCbJQuery($javascriptCode, $jQueryPlugin = null)
{
if (Application::Config()->get('jsJqueryMigrate', 1) || Application::Cms()->getClientId()) {
$this->addJQueryPlugin('migrate', true);
}
if ($jQueryPlugin) {
$this->addJQueryPlugin($jQueryPlugin, true);
}
if ($javascriptCode) {
$this->_jQueryCodes[] = $javascriptCode;
}
if ($this->document->isHeadOutputed()) {
$this->getAllJsPageCodes();
}
}
示例11: loadLegacyCBueConfig
/**
* Legacy support function: Loads the CB Config from database (if it is ready) and
* Sets the global $ueConfig
* It also loads the Language handler powering CBTxt.
*
* @param boolean $legacy prepare legacy config params
* @return void
*/
public static function loadLegacyCBueConfig($legacy = false)
{
global $ueConfig;
if (self::$configReady) {
$version = $ueConfig['version'];
$config = Application::Config();
$ueConfig = $config->asArray();
$ueConfig['version'] = $version;
// Legacy config options for B/C:
if ($legacy) {
if (isset($ueConfig['profile_viewaccesslevel'])) {
switch ((int) $ueConfig['profile_viewaccesslevel']) {
case 1:
// Public
// Public
case 5:
// Guest
$profileAccess = '1';
// Public
break;
case 3:
// Special
$profileAccess = '3';
// Author
break;
default:
$profileAccess = '2';
// Registered
break;
}
} else {
$profileAccess = '2';
// Registered
}
if (isset($ueConfig['moderator_viewaccesslevel'])) {
switch ((int) $ueConfig['moderator_viewaccesslevel']) {
case 1:
// Public
// Public
case 5:
// Guest
$modAccess = '1';
// Public
break;
case 2:
// Registered
$modAccess = '2';
// Registered
break;
default:
$modAccess = '6';
// Manager
break;
}
} else {
$modAccess = '6';
// Manager
}
$ueConfig['allow_profileviewbyGID'] = $profileAccess;
// "Allow Access To:"
$ueConfig['imageApproverGid'] = $modAccess;
// "Moderator Groups"
$ueConfig['reg_email_checker'] = '0';
// "Ajax Email checker"
$ueConfig['reg_toc_url'] = '';
// "URL to Terms & Conditions"
$ueConfig['num_per_page'] = '30';
// "Users Per Page"
$ueConfig['allow_profilelink'] = '1';
// "Allow Link to Profile"
$ueConfig['nesttabs'] = '0';
// "Nest Tabs"
$ueConfig['xhtmlComply'] = '1';
// "W3C XHTML 1.0 Trans. compliance"
$ueConfig['im_path'] = 'auto';
// "Path to ImageMagick"
$ueConfig['netpbm_path'] = 'auto';
// "Path to NetPBM"
$ueConfig['allowAvatar'] = '1';
// "Image"
$ueConfig['allowAvatarUpload'] = '1';
// "Allow Image Upload"
$ueConfig['allowAvatarGallery'] = '1';
// "Use Image Gallery"
}
$languageParams = array('debugMode' => $config->get('translations_debug', 0));
if ($languageParams['debugMode'] == 0) {
$languageParams['translationsLogger'] = null;
}
} else {
$languageParams = array();
}
//.........这里部分代码省略.........
示例12: userProfile
function userProfile($option, $uid, $submitvalue)
{
global $_REQUEST, $ueConfig, $_CB_framework, $_PLUGINS;
$msg = null;
if (isset($_REQUEST['user'])) {
if (!CBuser::getMyInstance()->authoriseView('profile', $uid)) {
$canRegister = !isset($ueConfig['reg_admin_allowcbregistration']) || $ueConfig['reg_admin_allowcbregistration'] != '1';
// Can the guest access once registered with default User Group ? (and doing the check only if he even can register to avoid unneeded checks)
$canAccess = $canRegister && Application::CmsPermissions()->checkGroupsForViewAccessLevel($_CB_framework->getCfg('new_usertype'), Application::Config()->get('profile_viewaccesslevel', 3));
if ($_CB_framework->myId() < 1 && !($_CB_framework->getCfg('allowUserRegistration') == '0' && $canRegister) && $canAccess) {
$msg = CBTxt::Th('UE_REGISTERFORPROFILEVIEW', 'Please log in or sign up to view user profiles.');
} else {
$msg = CBTxt::Th('UE_NOT_AUTHORIZED', 'You are not authorized to view this page!');
}
}
} else {
if ($uid == 0) {
$msg = CBTxt::Th('UE_REGISTERFORPROFILE', 'Please log in or sign up to view or modify your profile.');
}
}
$_PLUGINS->loadPluginGroup('user');
$_PLUGINS->trigger('onBeforeUserProfileAccess', array($uid, &$msg, 1));
if ($msg) {
$_CB_framework->enqueueMessage($msg, 'error');
return;
}
$user =& loadComprofilerUser($uid);
if ($user === null) {
$_CB_framework->enqueueMessage(CBTxt::Th('UE_NOSUCHPROFILE', 'This profile does not exist or is no longer available'), 'error');
return;
}
if (cbGetParam($_GET, 'reason') == 'canceledit') {
if ($uid == 0) {
$Euid = $_CB_framework->myId();
} else {
$Euid = $uid;
}
$msg = cbCheckIfUserCanPerformUserTask($Euid, 'allowModeratorsUserEdit');
if ($Euid != $_CB_framework->myId() && $msg === null) {
// safeguard against missconfiguration of the above: also avoids lower-level users editing higher level ones:
$msg = checkCBpermissions(array((int) $Euid), 'edit', true);
}
$_PLUGINS->trigger('onBeforeUserProfileEditRequest', array($Euid, &$msg, 1));
if ($msg) {
$_CB_framework->enqueueMessage($msg, 'error');
return;
}
$_PLUGINS->trigger('onAfterUserProfileEditCancel', array(&$user));
if ($_PLUGINS->is_errors()) {
echo "<script type=\"text/javascript\">alert(\"" . $_PLUGINS->getErrorMSG() . "\"); window.history.go(-1); </script>\n";
exit;
}
}
HTML_comprofiler::userProfile($user, $option, $submitvalue);
}
示例13: store
/**
* @param bool $updateNulls
* @return bool
*/
public function store( $updateNulls = false )
{
global $_CB_framework, $_PLUGINS;
$new = ( $this->get( 'id' ) ? false : true );
$old = new self();
$this->set( 'date', $this->get( 'date', Application::Database()->getUtcDateTime() ) );
if ( isset( $_FILES['image']['tmp_name'] ) && ( ! empty( $_FILES['image']['tmp_name'] ) ) ) {
static $params = null;
if ( ! $params ) {
$plugin = $_PLUGINS->getLoadedPlugin( 'user/plug_cbgroupjive/plugins', 'cbgroupjivephoto' );
$params = $_PLUGINS->getPluginParams( $plugin );
}
$basePath = $_CB_framework->getCfg( 'absolute_path' ) . '/images/comprofiler/cbgroupjivephoto';
$filePath = $basePath . '/' . (int) $this->group()->get( 'category' ) . '/' . (int) $this->group()->get( 'id' );
CBGroupJive::createDirectory( $basePath, $this->group()->get( 'category' ), $this->group()->get( 'id' ) );
$resample = $params->get( 'groups_photo_resample', 1 );
$aspectRatio = $params->get( 'groups_photo_maintain_aspect_ratio', 1 );
$imageHeight = (int) $params->get( 'groups_photo_image_height', 640 );
if ( ! $imageHeight ) {
$imageHeight = 640;
}
$imageWidth = (int) $params->get( 'groups_photo_image_width', 1280 );
if ( ! $imageWidth ) {
$imageWidth = 1280;
}
$thumbHeight = (int) $params->get( 'groups_photo_thumbnail_height', 320 );
if ( ! $thumbHeight ) {
$thumbHeight = 320;
}
$thumbWidth = (int) $params->get( 'groups_photo_thumbnail_width', 640 );
if ( ! $thumbWidth ) {
$thumbWidth = 640;
}
$conversionType = (int) Application::Config()->get( 'conversiontype', 0 );
$imageSoftware = ( $conversionType == 5 ? 'gmagick' : ( $conversionType == 1 ? 'imagick' : 'gd' ) );
$fileExtension = strtolower( preg_replace( '/[^-a-zA-Z0-9_]/', '', pathinfo( $_FILES['image']['name'], PATHINFO_EXTENSION ) ) );
$fileName = Get::clean( pathinfo( $_FILES['image']['name'], PATHINFO_FILENAME ), GetterInterface::STRING ) . '.' . $fileExtension;
$fileId = uniqid();
try {
$image = new Image( $imageSoftware, $resample, $aspectRatio );
$image->setName( $fileId );
$image->setSource( $_FILES['image'] );
$image->setDestination( $filePath . '/' );
$image->processImage( $imageWidth, $imageHeight );
$newFileName = $image->getCleanFilename();
$image->setName( 'tn' . $fileId );
$image->processImage( $thumbWidth, $thumbHeight );
if ( $this->get( 'image' ) ) {
if ( file_exists( $filePath . '/' . $this->get( 'image' ) ) ) {
@unlink( $filePath . '/' . $this->get( 'image' ) );
}
if ( file_exists( $filePath . '/tn' . $this->get( 'image' ) ) ) {
@unlink( $filePath . '/tn' . $this->get( 'image' ) );
}
}
$this->set( 'image', $newFileName );
$this->set( 'filename', $fileName );
$params = $this->params();
$params->unsetEntry( 'name' );
$params->unsetEntry( 'extension' );
$params->unsetEntry( 'mimetype' );
$params->unsetEntry( 'filesize' );
$params->unsetEntry( 'filesize_thumbnail' );
$params->unsetEntry( 'height' );
$params->unsetEntry( 'width' );
$params->unsetEntry( 'height_thumbnail' );
$params->unsetEntry( 'width_thumbnail' );
$params->set( 'name', $this->name() );
//.........这里部分代码省略.........
示例14: _displayWebAddress
private function _displayWebAddress( $oValue )
{
if ( Application::Config()->get( 'allow_website' ) != 1 ) {
return '';
}
$oReturn = explode( '|*|', $oValue );
if ( count( $oReturn ) < 2 ) {
$oReturn[1] = $oReturn[0];
}
return '<a href="http://' . htmlspecialchars( $oReturn[0] ) . '" target="_blank" rel="nofollow">' . htmlspecialchars( $oReturn[1] ) . '</a>';
}
示例15: loadTagOptions
/**
* Returns an options array of available user tags with optional activity specific
*
* @param null|int|ActivityTable $activityId
* @param null|int $userId
* @return array
*/
static public function loadTagOptions( $activityId = null, $userId = null )
{
global $_CB_database;
/** @var ActivityTable[] $cache */
static $cache = array();
if ( $activityId && ( $userId === null ) ) {
if ( $activityId instanceof ActivityTable ) {
$activity = $activityId;
$activityId = (int) $activity->get( 'id' );
} else {
if ( ! isset( $cache[$activityId] ) ) {
$activity = new ActivityTable();
$activity->load( (int) $activityId );
$cache[$activityId] = $activity;
}
$activity = $cache[$activityId];
}
$userId = (int) $activity->get( 'user_id' );
} elseif ( $userId === null ) {
$userId = Application::MyUser()->getUserId();
}
static $connections = array();
static $custom = array();
static $options = array();
if ( ! isset( $options[$userId][$activityId] ) ) {
if ( ! isset( $connections[$userId] ) ) {
$connectionOptions = array();
if ( Application::Config()->get( 'allowConnections' ) ) {
$cbConnection = new \cbConnection( $userId );
foreach( $cbConnection->getConnectedToMe( $userId ) as $connection ) {
$connectionOptions[] = \moscomprofilerHTML::makeOption( (string) $connection->id, getNameFormat( $connection->name, $connection->username, Application::Config()->get( 'name_format', 3 ) ) );
}
}
$connections[$userId] = $connectionOptions;
}
if ( ! isset( $custom[$activityId] ) ) {
$activityOptions = array();
if ( $activityId ) {
$exclude = array();
foreach ( $connections[$userId] as $connection ) {
$exclude[] = $connection->value;
}
$query = 'SELECT *'
. "\n FROM " . $_CB_database->NameQuote( '#__comprofiler_plugin_activity_tags' )
. "\n WHERE " . $_CB_database->NameQuote( 'type' ) . " = " . $_CB_database->Quote( 'activity' )
. "\n AND " . $_CB_database->NameQuote( 'item' ) . " = " . (int) $activityId
. "\n ORDER BY " . $_CB_database->NameQuote( 'date' ) . " ASC";
$_CB_database->setQuery( $query );
$tags = $_CB_database->loadObjectList( null, '\CB\Plugin\Activity\Table\TagTable', array( $_CB_database ) );
/** @var TagTable[] $tags */
foreach ( $tags as $tag ) {
if ( ! in_array( $tag->get( 'user' ), $exclude ) ) {
$activityOptions[] = \moscomprofilerHTML::makeOption( (string) $tag->get( 'user' ), $tag->get( 'user' ) );
}
}
}
$custom[$activityId] = $activityOptions;
}
$options[$userId][$activityId] = array_merge( $connections[$userId], $custom[$activityId] );
}
return $options[$userId][$activityId];
}