本文整理汇总了PHP中CFactory::getFastCache方法的典型用法代码示例。如果您正苦于以下问题:PHP CFactory::getFastCache方法的具体用法?PHP CFactory::getFastCache怎么用?PHP CFactory::getFastCache使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CFactory
的用法示例。
在下文中一共展示了CFactory::getFastCache方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: ajaxStreamAddComment
/**
* Add comment to the stream
*
* @param int $actid acitivity id
* @param string $comment
* @return obj
*/
public function ajaxStreamAddComment($actid, $comment, $photoId = 0)
{
$filter = JFilterInput::getInstance();
$actid = $filter->clean($actid, 'int');
$my = CFactory::getUser();
$wallModel = CFactory::getModel('wall');
$rawComment = $comment;
$json = array();
$photoId = $filter->clean($photoId, 'int');
// Pull the activity record and find out the actor
// only allow comment if the actor is a friend of current user
$act = JTable::getInstance('Activity', 'CTable');
$act->load($actid);
//who can add comment
$obj = $act;
if ($act->groupid > 0) {
$obj = JTable::getInstance('Group', 'CTable');
$obj->load($act->groupid);
} else {
if ($act->eventid > 0) {
$obj = JTable::getInstance('Event', 'CTable');
$obj->load($act->eventid);
}
}
//link the actual comment from video page itself to the stream
if (isset($obj->comment_type) && $obj->comment_type == 'videos.linking') {
$obj->comment_type = 'videos';
}
$params = new CParameter($act->params);
$batchcount = $params->get('batchcount', 0);
$wallParam = new CParameter('');
if ($act->app == 'photos' && $batchcount > 1) {
$photo = JTable::getInstance('Photo', 'CTable');
$photo->load($params->get('photoid'));
$act->comment_type = 'albums';
$act->comment_id = $photo->albumid;
$wallParam->set('activityId', $act->id);
}
//if photo id is not 0, this wall is appended with a picture
if ($photoId > 0) {
//lets check if the photo belongs to the uploader
$photo = JTable::getInstance('Photo', 'CTable');
$photo->load($photoId);
if ($photo->creator == $my->id && $photo->albumid == '-1') {
$wallParam->set('attached_photo_id', $photoId);
//sets the status to ready so that it wont be deleted on cron run
$photo->status = 'ready';
$photo->store();
}
}
// Allow comment for system post
$allowComment = false;
if ($act->app == 'system') {
$allowComment = !empty($my->id);
}
if ($my->authorise('community.add', 'activities.comment.' . $act->actor, $obj) || $allowComment) {
$table = JTable::getInstance('Wall', 'CTable');
$table->type = $act->comment_type;
$table->contentid = $act->comment_id;
$table->post_by = $my->id;
$table->comment = $comment;
$table->params = $wallParam->toString();
if (preg_match("/\\b(?:(?:https?|ftp):\\/\\/|www\\.)[-a-z0-9+&@#\\/%?=~_|!:,.;]*[-a-z0-9+&@#\\/%=~_|]/i", $comment)) {
$graphObject = CParsers::linkFetch($comment);
if ($graphObject) {
$graphObject->merge($wallParam);
$table->params = $graphObject->toString();
}
}
$table->store();
$cache = CFactory::getFastCache();
$cache->clean(array('activities'));
if ($act->app == 'photos') {
$table->contentid = $act->id;
}
$table->params = new CParameter($table->get('params'));
$args[] = $table;
CWall::triggerWallComments($args, false);
$comment = CWall::formatComment($table);
$json['html'] = $comment;
//notification for activity comment
//case 1: user's activity
//case 2 : group's activity
//case 3 : event's activity
if ($act->groupid == 0 && $act->eventid == 0) {
// //CFactory::load( 'libraries' , 'notification' );
$params = new CParameter('');
$params->set('message', $table->comment);
$url = 'index.php?option=com_community&view=profile&userid=' . $act->actor . '&actid=' . $actid;
$params->set('url', $url);
$params->set('actor', $my->getDisplayName());
$params->set('actor_url', CRoute::_('index.php?option=com_community&view=profile&userid=' . $my->id));
$params->set('stream', JText::_('COM_COMMUNITY_SINGULAR_STREAM'));
//.........这里部分代码省略.........
示例2: getCount
/**
* Gets the count of wall entries for specific item
*
* @params uniqueId The unique id for the speicific item
* @params type The unique type for the specific item
**/
public function getCount($uniqueId, $type)
{
$cache = CFactory::getFastCache();
$cacheid = __FILE__ . __LINE__ . serialize(func_get_args()) . serialize(JRequest::get());
if ($data = $cache->get($cacheid)) {
return $data;
}
CError::assert($uniqueId, '', '!empty', __FILE__, __LINE__);
$db =& $this->getDBO();
$query = 'SELECT COUNT(*) FROM ' . $db->nameQuote('#__community_wall') . 'WHERE ' . $db->nameQuote('contentid') . '=' . $db->Quote($uniqueId) . 'AND ' . $db->nameQuote('type') . '=' . $db->Quote($type);
$db->setQuery($query);
$count = $db->loadResult();
$cache->store($count, $cacheid);
return $count;
}
示例3: getActivityContent
/**
* Return the HTML formatted activity content
*/
static function getActivityContent($act)
{
$cache = CFactory::getFastCache();
$cacheid = __FILE__ . __LINE__ . serialize(func_get_args());
if ($data = $cache->get($cacheid)) {
return $data;
}
// Return empty content or content with old, invalid data
// In some old version, some content might have 'This is the body'
if ($act->content == 'This is the body') {
return '';
}
$html = $act->content;
// For known core, apps, we can simply call the content command
switch ($act->app) {
case 'videos':
CFactory::load('libraries', 'videos');
$html = CVideos::getActivityContentHTML($act);
break;
case 'photos':
CFactory::load('libraries', 'photos');
$html = CPhotos::getActivityContentHTML($act);
break;
case 'events':
CFactory::load('libraries', 'events');
$html = CEvents::getActivityContentHTML($act);
break;
case 'groups.wall':
case 'groups':
CFactory::load('libraries', 'groups');
$html = CGroups::getActivityContentHTML($act);
break;
case 'groups.discussion.reply':
case 'groups.discussion':
CFactory::load('libraries', 'groups');
$html = CGroups::getActivityContentHTML($act);
break;
case 'groups.bulletin':
CFactory::load('libraries', 'groups');
$html = CGroups::getActivityContentHTML($act);
case 'system':
CFactory::load('libraries', 'adminstreams');
$html = CAdminstreams::getActivityContentHTML($act);
break;
case 'walls':
// If a wall does not have any content, do not
// display the summary
if ($act->app == 'walls' && $act->cid == 0) {
$html = '';
return $html;
}
if ($act->cid != 0) {
CFactory::load('libraries', 'wall');
$html = CWall::getActivityContentHTML($act);
}
break;
default:
// for other unknown apps, we include the plugin see if it is is callable
// we call the onActivityContentDisplay();
CFactory::load('libraries', 'apps');
$apps =& CAppPlugins::getInstance();
$plugin =& $apps->get($act->app);
$method = 'onActivityContentDisplay';
if (is_callable(array($plugin, $method))) {
$args = array();
$args[] = $act;
$html = call_user_func_array(array($plugin, $method), $args);
} else {
$html = $act->content;
}
}
$cache->store($html, $cacheid, array('activities'));
return $html;
}
示例4: cacheClean
public function cacheClean($cacheId)
{
$cache = CFactory::getFastCache();
$cache->clean($cacheId);
}
示例5: ajaxUpdate
/**
* Update the status of current user
*/
public function ajaxUpdate($message = '')
{
$filter = JFilterInput::getInstance();
$message = $filter->clean($message, 'string');
$cache = CFactory::getFastCache();
$cache->clean(array('activities'));
if (!COwnerHelper::isRegisteredUser()) {
return $this->ajaxBlockUnregister();
}
$mainframe = JFactory::getApplication();
$jinput = $mainframe->input;
$objResponse = new JAXResponse();
//@rule: In case someone bypasses the status in the html, we enforce the character limit.
$config = CFactory::getConfig();
if (JString::strlen($message) > $config->get('statusmaxchar')) {
$message = JHTML::_('string.truncate', $message, $config->get('statusmaxchar'));
}
//trim it here so that it wun go into activities stream.
$message = JString::trim($message);
$my = CFactory::getUser();
$status = $this->getModel('status');
// @rule: Spam checks
if ($config->get('antispam_akismet_status')) {
//CFactory::load( 'libraries' , 'spamfilter' );
$filter = CSpamFilter::getFilter();
$filter->setAuthor($my->getDisplayName());
$filter->setMessage($message);
$filter->setEmail($my->email);
$filter->setURL(CRoute::_('index.php?option=com_community&view=profile&userid=' . $my->id));
$filter->setType('message');
$filter->setIP($_SERVER['REMOTE_ADDR']);
if ($filter->isSpam()) {
$objResponse->addAlert(JText::_('COM_COMMUNITY_STATUS_MARKED_SPAM'));
return $objResponse->sendResponse();
}
}
$status->update($my->id, $message);
//set user status for current session.
$today = JFactory::getDate();
$message2 = empty($message) ? ' ' : $message;
$my->set('_status', $message2);
$my->set('_posted_on', $today->toSql());
$profileid = $jinput->get->get('userid', 0, 'INT');
//JRequest::getVar('userid' , 0 , 'GET');
if (COwnerHelper::isMine($my->id, $profileid)) {
$objResponse->addScriptCall("joms.jQuery('#profile-status span#profile-status-message').html('" . addslashes($message) . "');");
}
//CFactory::load( 'helpers' , 'string' );
// $message = CStringHelper::escape( $message );
if (!empty($message)) {
$act = new stdClass();
$act->cmd = 'profile.status.update';
$act->actor = $my->id;
$act->target = $my->id;
//CFactory::load( 'helpers' , 'linkgenerator' );
// @rule: Autolink hyperlinks
$message = CLinkGeneratorHelper::replaceURL($message);
// @rule: Autolink to users profile when message contains @username
$message = CUserHelper::replaceAliasURL($message);
$privacyParams = $my->getParams();
$act->title = $message;
$act->content = '';
$act->app = 'profile';
$act->cid = $my->id;
$act->access = $privacyParams->get('privacyProfileView');
$act->comment_id = CActivities::COMMENT_SELF;
$act->comment_type = 'profile.status';
$act->like_id = CActivities::LIKE_SELF;
$act->like_type = 'profile.status';
//add user points
//CFactory::load( 'libraries' , 'userpoints' );
if (CUserPoints::assignPoint('profile.status.update')) {
//only assign act if user points is set to true
CActivityStream::add($act);
}
//now we need to reload the activities streams (since some report regarding update status from hello me we disabled update the stream, cuz hellome usually called out from jomsocial page)
$friendsModel = CFactory::getModel('friends');
$memberSince = CTimeHelper::getDate($my->registerDate);
$friendIds = $friendsModel->getFriendIds($my->id);
//include_once(JPATH_COMPONENT .'/libraries/activities.php');
$act = new CActivityStream();
$params = $my->getParams();
$limit = !empty($params) ? $params->get('activityLimit', '') : '';
//$html = $act->getHTML($my->id, $friendIds, $memberSince, $limit );
$status = $my->getStatus();
$status = str_replace(array("\r\n", "\n", "\r"), "", $status);
$status = addslashes($status);
// also update hellome module if available
$script = "joms.jQuery('.joms-js--mod-hellome-label').html('" . $status . "');";
$script .= "joms.jQuery('.joms-js--mod-hellome-loading').hide();";
$objResponse->addScriptCall($script);
}
return $objResponse->sendResponse();
}
示例6: _
/**
* Wrapper to JRoute to handle itemid
* We need to try and capture the correct itemid for different view
*/
static function _($url, $xhtml = true, $ssl = null)
{
global $Itemid;
$mainframe = JFactory::getApplication();
$jinput = $mainframe->input;
$cache = CFactory::getFastCache();
$cacheid = __FILE__ . __LINE__ . serialize(func_get_args()) . $Itemid;
if ($data = $cache->get($cacheid)) {
$data = JRoute::_($data, $xhtml, $ssl);
return $data;
}
static $itemid = array();
parse_str(JString::str_ireplace('index.php?', '', $url));
if (empty($view)) {
$view = 'frontpage';
}
if (isset($option) && $option != 'com_community') {
if (!$Itemid) {
$db = JFactory::getDBO();
$query = 'SELECT ' . $db->quoteName('id') . ' FROM ' . $db->quoteName('#__menu') . ' ' . 'WHERE ' . $db->quoteName('link') . ' LIKE ' . $db->Quote('%' . $url . '%');
$db->setQuery($query);
$id = $db->loadResult();
$url .= '&Itemid=' . $id;
}
return JRoute::_($url, $xhtml, $ssl);
}
if (empty($itemid[$view])) {
global $Itemid;
$isValid = false;
$currentView = $jinput->get('view', 'frontpage', 'NONE');
//JRequest::getVar('view', 'frontpage');
$currentOption = $jinput->get('option', '', 'STRING');
//JRequest::getVar('option');
// If the current Itemid match the expected Itemid based on view
// we'll just use it
$db = JFactory::getDBO();
$viewId = CRoute::_getViewItemid($view);
// if current itemid
if ($currentOption == 'com_community' && $currentView == $view && $Itemid != 0) {
$itemid[$view] = $Itemid;
$isValid = true;
} else {
if ($viewId === $Itemid && !is_null($viewId) && $Itemid != 0) {
$itemid[$view] = $Itemid;
$isValid = true;
} else {
if ($viewId !== 0 && !is_null($viewId)) {
$itemid[$view] = $viewId;
$isValid = true;
}
}
}
if (!$isValid) {
$id = CRoute::_getDefaultItemid();
if ($id !== 0 && !is_null($id)) {
$itemid[$view] = $id;
}
$isValid = true;
}
// Search the mainmenu for the 1st itemid of jomsocial we can find, that match the current language code
if (!$isValid) {
$db = JFactory::getDBO();
$query = 'SELECT ' . $db->quoteName('id') . ' FROM ' . $db->quoteName('#__menu') . ' WHERE ' . $db->quoteName('link') . ' LIKE ' . $db->Quote('%com_community%') . 'AND ' . $db->quoteName('published') . '=' . $db->Quote(1) . ' ' . 'AND ' . $db->quoteName('menutype') . '=' . $db->Quote('{CRoute::menuname}') . 'AND ' . $db->quoteName('menutype') . '!=' . $db->Quote($config->get('toolbar_menutype')) . ' ' . 'AND ' . $db->quoteName('type') . '=' . $db->Quote('component');
$db->setQuery($query);
$isValid = $db->loadResult();
if (!empty($isValid)) {
$itemid[$view] = $isValid;
}
}
// If not in mainmenu, seach in any menu
if (!$isValid) {
$query = 'SELECT ' . $db->quoteName('id') . ' FROM ' . $db->quoteName('#__menu') . ' WHERE ' . $db->quoteName('link') . ' LIKE ' . $db->Quote('%com_community%') . 'AND ' . $db->quoteName('published') . '=' . $db->Quote(1) . ' ' . 'AND ' . $db->quoteName('menutype') . '!=' . $db->Quote($config->get('toolbar_menutype')) . ' ' . 'AND ' . $db->quoteName('type') . '=' . $db->Quote('component');
$db->setQuery($query);
$isValid = $db->loadResult();
if (!empty($isValid)) {
$itemid[$view] = $isValid;
}
}
}
$pos = strpos($url, '#');
if ($pos === false) {
if (isset($itemid[$view])) {
if (strpos($url, 'Itemid=') === false && strpos($url, 'com_community') !== false) {
$url .= '&Itemid=' . $itemid[$view];
}
}
} else {
if (isset($itemid[$view])) {
$url = str_ireplace('#', '&Itemid=' . $itemid[$view] . '#', $url);
}
}
$data = JRoute::_($url, $xhtml, $ssl);
$cache->store($url, $cacheid);
return $data;
}
示例7: _cachedCall
/**
* Cached the function call
*/
protected function _cachedCall($func, $params, $id, $tags)
{
$jConfig =& JFactory::getConfig();
// Check if the caching is enabled
if ($jConfig->getValue('caching')) {
$cache = CFactory::getFastCache();
$cacheid = __FILE__ . __LINE__ . $func . md5(serialize($params) . serialize($id));
if ($result = $cache->get($cacheid)) {
return $result;
}
$result = call_user_func_array(array($this, $func), $params);
$cache->store($result, $cacheid, $tags);
} else {
$result = call_user_func_array(array($this, $func), $params);
}
return $result;
}
示例8: getCategories
/**
* Loads the categories
*
* @access public
* @return array An array of categories object
* @since 1.2
*/
public function getCategories($categoryId = null)
{
$mainframe = JFactory::getApplication();
$jinput = $mainframe->input;
$cache = CFactory::getFastCache();
$cacheid = serialize(func_get_args()) . serialize(JRequest::get());
if ($data = $cache->get($cacheid)) {
return $data;
}
$my = CFactory::getUser();
$permissions = $my->id == 0 ? 0 : 20;
$groupId = $jinput->get->get('groupid', '', 'INT');
//JRequest::getVar('groupid' , '' , 'GET');
$conditions = '';
$db = $this->getDBO();
if (!empty($groupId)) {
$conditions = ' AND v.' . $db->quoteName('creator_type') . ' = ' . $db->quote(VIDEO_GROUP_TYPE);
//$conditions .= ' AND b.groupid = ' . $groupId;
$conditions .= ' AND g.' . $db->quoteName('id') . ' = ' . $db->Quote($groupId);
} else {
$conditions .= ' AND (g.' . $db->quoteName('approvals') . ' = ' . $db->Quote('0') . ' OR g.' . $db->quoteName('approvals') . ' IS NULL)';
}
$allcats = $this->getAllCategories($categoryId);
$allCatsNoFilter = $this->getAllCategories();
$result = array();
foreach ($allcats as $cat) {
$categoryIds = CCategoryHelper::getCategoryChilds($allCatsNoFilter, $cat->id);
if ((int) $cat->id > 0) {
$categoryIds[] = (int) $cat->id;
}
if (is_array($categoryIds)) {
$categoryIds = implode($categoryIds, ',');
$categoryCondition = $db->quoteName('category_id') . ' IN (' . $categoryIds . ') ';
} else {
$categoryCondition = $db->quoteName('category_id') . ' = ' . $db->Quote($cat->id);
}
$query = ' SELECT COUNT(v.' . $db->quoteName('id') . ') AS count' . ' FROM ' . $db->quoteName('#__community_videos') . ' AS v' . ' LEFT JOIN ' . $db->quoteName('#__community_groups') . ' AS g ON g.' . $db->quoteName('id') . ' = v.' . $db->quoteName('groupid') . ' WHERE v.' . $categoryCondition . ' AND v.' . $db->quoteName('status') . ' = ' . $db->Quote('ready') . ' AND v.' . $db->quoteName('published') . ' = ' . $db->Quote(1) . ' AND v.' . $db->quoteName('permissions') . ' <= ' . $db->Quote($permissions) . $conditions;
$db->setQuery($query);
$cat->count = $db->loadResult();
$result[] = $cat;
}
if ($db->getErrorNum()) {
JError::raiseError(500, $db->stderr());
}
$cache->store($result, $cacheid, array(COMMUNITY_CACHE_TAG_VIDEOS_CAT));
return $result;
}
示例9: ajaxStreamAddComment
/**
* Add comment to the stream
*
* @param int $actid acitivity id
* @param string $comment
* @return obj
*/
public function ajaxStreamAddComment($actid, $comment)
{
$filter = JFilterInput::getInstance();
$actid = $filter->clean($actid, 'int');
$comment = $filter->clean($comment, 'string');
$my = CFactory::getUser();
$config = CFactory::getConfig();
$objResponse = new JAXResponse();
$wallModel = CFactory::getModel('wall');
CFactory::load('libraries', 'wall');
CFactory::load('libraries', 'activities');
CFactory::load('helpers', 'friends');
CFactory::load('helper', 'owner');
// Pull the activity record and find out the actor
// only allow comment if the actor is a friend of current user
$act =& JTable::getInstance('Activity', 'CTable');
$act->load($actid);
//who can add comment
$obj = new stdClass();
if ($act->groupid > 0) {
$obj =& JTable::getInstance('Group', 'CTable');
$obj->load($act->groupid);
} else {
if ($act->eventid > 0) {
$obj =& JTable::getInstance('Event', 'CTable');
$obj->load($act->eventid);
}
}
if ($my->authorise('community.add', 'activities.comment.' . $act->actor, $obj)) {
$table =& JTable::getInstance('Wall', 'CTable');
$table->type = $act->comment_type;
$table->contentid = $act->comment_id;
$table->post_by = $my->id;
$table->comment = $comment;
$table->store();
$cache = CFactory::getFastCache();
$cache->clean(array('activities'));
$comment = CWall::formatComment($table);
$objResponse->addScriptCall('joms.miniwall.insert', $actid, $comment);
} else {
// Cannot comment on non-friend stream.
$objResponse->addAlert('Permission denied');
}
return $objResponse->sendResponse();
}