Update of /cvsroot/tikiwiki/tiki/lib/smarty_tiki
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20173/lib/smarty_tiki
Modified Files:
Tag: BRANCH-1-9
modifier.userlink.php
Log Message:
Cache the results of smarty_modifier_userlink() for 2 hours
Index: modifier.userlink.php
===================================================================
RCS file: /cvsroot/tikiwiki/tiki/lib/smarty_tiki/modifier.userlink.php,v
retrieving revision 1.3.2.16
retrieving revision 1.3.2.17
diff -u -d -r1.3.2.16 -r1.3.2.17
--- modifier.userlink.php 19 Nov 2004 12:50:41 -0000 1.3.2.16
+++ modifier.userlink.php 8 Feb 2005 20:43:22 -0000 1.3.2.17
@@ -7,11 +7,32 @@
}
function smarty_modifier_userlink($other_user,$class='link',$idletime='not_set') {
- global $tikilib, $userlib, $user, $feature_score, $feature_friends, $highlight_group,
+ global $tikilib, $userlib, $cachelib, $user, $feature_score, $feature_friends, $highlight_group,
$feature_community_mouseover, $feature_community_mouseover_name,$feature_community_mouseover_picture,
$feature_community_mouseover_friends,$feature_community_mouseover_score,$feature_community_mouseover_country,
$feature_community_mouseover_email, $feature_community_mouseover_lastlogin;
+ $cachePeriod = 60*60*2; // how long does an entry stay in the cache for? 2hr
+
+ $show_mouseover = $feature_community_mouseover == 'y' &&
+ $userlib->get_user_preference($user, 'show_mouseover_user_info','y') == 'y';
+ $show_friends = $feature_friends == 'y' &&
+ $tikilib->verify_friendship($user, $other_user);
+
+ if( $show_mouseover || $show_friends ) {
+ $cacheItem = "userlink.".$user.".".$other_user;
+ } else {
+ $cacheItem = "userlink.".$other_user;
+ }
+ $cacheDate = $cachelib->getCachedDate($cacheItem);
+ if( $cacheDate ) {
+ if( (time() - $cacheDate) < $cachePeriod ) {
+ return $cachelib->getCached($cacheItem);
+ } else {
+ $cachelib->invalidate($cacheItem);
+ }
+ }
+
$star = '';
@@ -30,21 +51,17 @@
$friend = "";
- if ($feature_friends == 'y') {
- if ($tikilib->verify_friendship($user, $other_user)) {
- $friend = ' <img src="img/icons/ico_friend.gif" width="7" height="10" alt="'.tra("Friend").'" /> ';
- }
+ if ($show_friends) {
+ $friend = ' <img src="img/icons/ico_friend.gif" width="7" height="10" alt="'.tra("Friend").'" /> ';
}
- $ou = $other_user;
+ $ou = $other_user;
if($userlib->user_exists($other_user)&&(!empty($friend) || $tikilib->get_user_preference($other_user,'user_information','public')=='public')) {
if (isset($info) and $highlight_group and in_array($highlight_group,$info['groups'])) {
$ou = '<i class="highlightgroup"><b>'.$other_user.'</b></i>';
}
$mouseover = '';
- $show_mouseover = $feature_community_mouseover == 'y' &&
- $userlib->get_user_preference($user, 'show_mouseover_user_info','y') == 'y';
if ($show_mouseover) {
$content = '';
@@ -102,12 +119,18 @@
if (is_numeric($idletime) && empty($mouseover)) {
- return "<a class='$class' href='tiki-user_information.php?view_user=$other_user' title='".tra("More info about $other_user")." ".tra("(idle for $idletime seconds)")."'>$ou</a>$friend$star";
+ $ret = "<a class='$class' href='tiki-user_information.php?view_user=$other_user' title='".tra("More info about $other_user")." ".tra("(idle for $idletime seconds)")."'>$ou</a>$friend$star";
+ $cachelib->cacheItem($cacheItem, $ret);
+ return $ret;
} else {
- return "<a class='$class' $mouseover href='tiki-user_information.php?view_user=$other_user' >$ou</a>$friend$star";
+ $ret = "<a class='$class' $mouseover href='tiki-user_information.php?view_user=$other_user' >$ou</a>$friend$star";
+ $cachelib->cacheItem($cacheItem, $ret);
+ return $ret;
}
} else {
- return "<span class='$class'>$ou</span>$friend$star";
+ $ret = "<span class='$class'>$ou</span>$friend$star";
+ $cachelib->cacheItem($cacheItem, $ret);
+ return $ret;
}
}
|