[geeklog-cvs] geeklog: When viewing your own profile page, you now get an "edi...

geeklog-cvs at lists.geeklog.net geeklog-cvs at lists.geeklog.net
Sun Oct 4 13:57:05 EDT 2009


changeset 7359:b71518e57545
url:  http://project.geeklog.net/cgi-bin/hgwebdir.cgi/geeklog/rev/b71518e57545
user: Dirk Haun <dirk at haun-online.de>
date: Sun Oct 04 13:51:37 2009 +0200
description:
When viewing your own profile page, you now get an "edit" link that take you to "My Account"

diffstat:

 public_html/docs/history |    2 +
 public_html/users.php    |  127 ++++++++++++++++++++++-------------------
 2 files changed, 70 insertions(+), 59 deletions(-)

diffs (242 lines):

diff -r b6d086ec0e01 -r b71518e57545 public_html/docs/history
--- a/public_html/docs/history	Sun Oct 04 13:32:11 2009 +0200
+++ b/public_html/docs/history	Sun Oct 04 13:51:37 2009 +0200
@@ -3,6 +3,8 @@
 Oct ??, 2009 (1.6.1)
 ------------
 
+- When viewing your own profile page, you now get an "edit" link that take you
+  to "My Account" [Dirk]
 - Additional checks in "Mail Story to a Friend", "Send mail to user", and
   "Mail Users" dialogs to make sure users don't enter email addresses into the
   name fields (bug #0000992) [Dirk]
diff -r b6d086ec0e01 -r b71518e57545 public_html/users.php
--- a/public_html/users.php	Sun Oct 04 13:32:11 2009 +0200
+++ b/public_html/users.php	Sun Oct 04 13:51:37 2009 +0200
@@ -59,75 +59,76 @@
 *
 * This grabs the user profile for a given user and displays it
 *
-* @param    int     $user   User ID of profile to get
+* @param    int     $uid    User ID of profile to get
 * @param    int     $msg    Message to display (if != 0)
 * @param    string  $plugin optional plugin name for message
 * @return   string          HTML for user profile page
 *
 */
-function userprofile($user, $msg = 0, $plugin = '')
+function userprofile($uid, $msg = 0, $plugin = '')
 {
-    global $_CONF, $_TABLES, $_USER, $LANG01, $LANG04, $LANG09, $LANG28, $LANG_LOGIN;
+    global $_CONF, $_TABLES, $_USER, $_IMAGE_TYPE,
+           $LANG01, $LANG04, $LANG09, $LANG28, $LANG_LOGIN, $LANG_ADMIN;
 
     $retval = '';
-    if (empty ($_USER['username']) &&
+    if (empty($_USER['username']) &&
         (($_CONF['loginrequired'] == 1) || ($_CONF['profileloginrequired'] == 1))) {
-        $retval .= COM_siteHeader ('menu', $LANG_LOGIN[1]);
-        $retval .= COM_startBlock ($LANG_LOGIN[1], '',
-                           COM_getBlockTemplate ('_msg_block', 'header'));
+        $retval .= COM_siteHeader('menu', $LANG_LOGIN[1]);
+        $retval .= COM_startBlock($LANG_LOGIN[1], '',
+                           COM_getBlockTemplate('_msg_block', 'header'));
         $login = new Template($_CONF['path_layout'] . 'submit');
-        $login->set_file (array ('login'=>'submitloginrequired.thtml'));
-        $login->set_var ( 'xhtml', XHTML );
-        $login->set_var ('login_message', $LANG_LOGIN[2]);
-        $login->set_var ('site_url', $_CONF['site_url']);
-        $login->set_var ('site_admin_url', $_CONF['site_admin_url']);
-        $login->set_var ('layout_url', $_CONF['layout_url']);
-        $login->set_var ('lang_login', $LANG_LOGIN[3]);
-        $login->set_var ('lang_newuser', $LANG_LOGIN[4]);
-        $login->parse ('output', 'login');
-        $retval .= $login->finish ($login->get_var('output'));
-        $retval .= COM_endBlock (COM_getBlockTemplate ('_msg_block', 'footer'));
-        $retval .= COM_siteFooter ();
+        $login->set_file(array('login'=>'submitloginrequired.thtml'));
+        $login->set_var('xhtml', XHTML);
+        $login->set_var('login_message', $LANG_LOGIN[2]);
+        $login->set_var('site_url', $_CONF['site_url']);
+        $login->set_var('site_admin_url', $_CONF['site_admin_url']);
+        $login->set_var('layout_url', $_CONF['layout_url']);
+        $login->set_var('lang_login', $LANG_LOGIN[3]);
+        $login->set_var('lang_newuser', $LANG_LOGIN[4]);
+        $login->parse('output', 'login');
+        $retval .= $login->finish($login->get_var('output'));
+        $retval .= COM_endBlock(COM_getBlockTemplate('_msg_block', 'footer'));
+        $retval .= COM_siteFooter();
 
         return $retval;
     }
 
-    $result = DB_query ("SELECT {$_TABLES['users']}.uid,username,fullname,regdate,homepage,about,location,pgpkey,photo,email,status FROM {$_TABLES['userinfo']},{$_TABLES['users']} WHERE {$_TABLES['userinfo']}.uid = {$_TABLES['users']}.uid AND {$_TABLES['users']}.uid = $user");
-    $nrows = DB_numRows ($result);
+    $result = DB_query("SELECT {$_TABLES['users']}.uid,username,fullname,regdate,homepage,about,location,pgpkey,photo,email,status FROM {$_TABLES['userinfo']},{$_TABLES['users']} WHERE {$_TABLES['userinfo']}.uid = {$_TABLES['users']}.uid AND {$_TABLES['users']}.uid = $uid");
+    $nrows = DB_numRows($result);
     if ($nrows == 0) { // no such user
-        return COM_refresh ($_CONF['site_url'] . '/index.php');
+        return COM_refresh($_CONF['site_url'] . '/index.php');
     }
-    $A = DB_fetchArray ($result);
+    $A = DB_fetchArray($result);
 
-    if ($A['status'] == USER_ACCOUNT_DISABLED && !SEC_hasRights ('user.edit')) {
-        COM_displayMessageAndAbort (30, '', 403, 'Forbidden');
+    if ($A['status'] == USER_ACCOUNT_DISABLED && !SEC_hasRights('user.edit')) {
+        COM_displayMessageAndAbort(30, '', 403, 'Forbidden');
     }
 
-    $display_name = htmlspecialchars(COM_getDisplayName($user, $A['username'],
+    $display_name = htmlspecialchars(COM_getDisplayName($uid, $A['username'],
                                                         $A['fullname']));
 
-    $retval .= COM_siteHeader ('menu', $LANG04[1] . ' ' . $display_name);
+    $retval .= COM_siteHeader('menu', $LANG04[1] . ' ' . $display_name);
     if ($msg > 0) {
         $retval .= COM_showMessage($msg, $plugin);
     }
 
     // format date/time to user preference
-    $curtime = COM_getUserDateTimeFormat ($A['regdate']);
+    $curtime = COM_getUserDateTimeFormat($A['regdate']);
     $A['regdate'] = $curtime[0];
 
-    $user_templates = new Template ($_CONF['path_layout'] . 'users');
-    $user_templates->set_file (array ('profile' => 'profile.thtml',
-                                      'row'     => 'commentrow.thtml',
-                                      'strow'   => 'storyrow.thtml'));
-    $user_templates->set_var ('xhtml', XHTML);
-    $user_templates->set_var ('site_url', $_CONF['site_url']);
-    $user_templates->set_var ('start_block_userprofile',
-            COM_startBlock ($LANG04[1] . ' ' . $display_name));
-    $user_templates->set_var ('end_block', COM_endBlock ());
-    $user_templates->set_var ('lang_username', $LANG04[2]);
+    $user_templates = new Template($_CONF['path_layout'] . 'users');
+    $user_templates->set_file(array('profile' => 'profile.thtml',
+                                    'row'     => 'commentrow.thtml',
+                                    'strow'   => 'storyrow.thtml'));
+    $user_templates->set_var('xhtml', XHTML);
+    $user_templates->set_var('site_url', $_CONF['site_url']);
+    $user_templates->set_var('start_block_userprofile',
+            COM_startBlock($LANG04[1] . ' ' . $display_name));
+    $user_templates->set_var('end_block', COM_endBlock());
+    $user_templates->set_var('lang_username', $LANG04[2]);
 
     if ($_CONF['show_fullname'] == 1) {
-        if (empty ($A['fullname'])) {
+        if (empty($A['fullname'])) {
             $username = $A['username'];
             $fullname = '';
         } else {
@@ -142,38 +143,46 @@
     $fullname = htmlspecialchars($fullname);
 
     if ($A['status'] == USER_ACCOUNT_DISABLED) {
-        $username = sprintf ('<s title="%s">%s</s>', $LANG28[42], $username);
-        if (!empty ($fullname)) {
-            $fullname = sprintf ('<s title="%s">%s</s>', $LANG28[42], $fullname);
+        $username = sprintf('<s title="%s">%s</s>', $LANG28[42], $username);
+        if (!empty($fullname)) {
+            $fullname = sprintf('<s title="%s">%s</s>', $LANG28[42], $fullname);
         }
     }
 
-    $user_templates->set_var ('username', $username);
-    $user_templates->set_var ('user_fullname', $fullname);
+    $user_templates->set_var('username', $username);
+    $user_templates->set_var('user_fullname', $fullname);
 
-    if (SEC_hasRights ('user.edit')) {
-        global $_IMAGE_TYPE, $LANG_ADMIN;
-
+    if (!COM_isAnonUser() && ($_USER['uid'] == $uid)) {
+        $edit_icon = '<img src="' . $_CONF['layout_url'] . '/images/edit.'
+                   . $_IMAGE_TYPE . '" alt="' . $LANG01[48]
+                   . '" title="' . $LANG01[48] . '"' . XHTML . '>';
+        $edit_link_url = COM_createLink($edit_icon,
+                            $_CONF['site_url'] . '/usersettings.php');
+        $user_templates->set_var('edit_icon', $edit_icon);
+        $user_templates->set_var('edit_link', $edit_link_url);
+        $user_templates->set_var('user_edit', $edit_link_url);
+    } elseif (SEC_hasRights('user.edit')) {
         $edit_icon = '<img src="' . $_CONF['layout_url'] . '/images/edit.'
                    . $_IMAGE_TYPE . '" alt="' . $LANG_ADMIN['edit']
                    . '" title="' . $LANG_ADMIN['edit'] . '"' . XHTML . '>';
         $edit_link_url = COM_createLink($edit_icon,
             "{$_CONF['site_admin_url']}/user.php?mode=edit&uid={$A['uid']}");
-        $user_templates->set_var ('edit_icon', $edit_icon);
-        $user_templates->set_var ('edit_link', $edit_link_url);
-        $user_templates->set_var ('user_edit', $edit_link_url);
+        $user_templates->set_var('edit_icon', $edit_icon);
+        $user_templates->set_var('edit_link', $edit_link_url);
+        $user_templates->set_var('user_edit', $edit_link_url);
     }
 
     if (isset ($A['photo']) && empty ($A['photo'])) {
         $A['photo'] = '(none)'; // user does not have a photo
     }
-    $photo = USER_getPhoto ($user, $A['photo'], $A['email'], -1);
+    $photo = USER_getPhoto ($uid, $A['photo'], $A['email'], -1);
     $user_templates->set_var ('user_photo', $photo);
 
     $user_templates->set_var ('lang_membersince', $LANG04[67]);
     $user_templates->set_var ('user_regdate', $A['regdate']);
     $user_templates->set_var ('lang_email', $LANG04[5]);
-    $user_templates->set_var ('user_id', $user);
+    $user_templates->set_var ('user_id', $uid);
+    $user_templates->set_var ('uid', $uid);
     $user_templates->set_var ('lang_sendemail', $LANG04[81]);
     $user_templates->set_var ('lang_homepage', $LANG04[6]);
     $user_templates->set_var ('user_homepage', COM_killJS ($A['homepage']));
@@ -209,7 +218,7 @@
 
     // list of last 10 stories by this user
     if (count($tids) > 0) {
-        $sql = "SELECT sid,title,UNIX_TIMESTAMP(date) AS unixdate FROM {$_TABLES['stories']} WHERE (uid = $user) AND (draft_flag = 0) AND (date <= NOW()) AND (tid IN ($topics))" . COM_getPermSQL ('AND');
+        $sql = "SELECT sid,title,UNIX_TIMESTAMP(date) AS unixdate FROM {$_TABLES['stories']} WHERE (uid = $uid) AND (draft_flag = 0) AND (date <= NOW()) AND (tid IN ($topics))" . COM_getPermSQL ('AND');
         $sql .= " ORDER BY unixdate DESC LIMIT 10";
         $result = DB_query ($sql);
         $nrows = DB_numRows ($result);
@@ -257,7 +266,7 @@
     $sidList = "'$sidList'";
 
     // then, find all comments by the user in those stories
-    $sql = "SELECT sid,title,cid,UNIX_TIMESTAMP(date) AS unixdate FROM {$_TABLES['comments']} WHERE (uid = $user) GROUP BY sid,title,cid,UNIX_TIMESTAMP(date)";
+    $sql = "SELECT sid,title,cid,UNIX_TIMESTAMP(date) AS unixdate FROM {$_TABLES['comments']} WHERE (uid = $uid) GROUP BY sid,title,cid,UNIX_TIMESTAMP(date)";
 
     // SQL NOTE:  Using a HAVING clause is usually faster than a where if the
     // field is part of the select
@@ -295,12 +304,12 @@
 
     // posting stats for this user
     $user_templates->set_var ('lang_number_stories', $LANG04[84]);
-    $sql = "SELECT COUNT(*) AS count FROM {$_TABLES['stories']} WHERE (uid = $user) AND (draft_flag = 0) AND (date <= NOW())" . COM_getPermSQL ('AND');
+    $sql = "SELECT COUNT(*) AS count FROM {$_TABLES['stories']} WHERE (uid = $uid) AND (draft_flag = 0) AND (date <= NOW())" . COM_getPermSQL ('AND');
     $result = DB_query($sql);
     $N = DB_fetchArray ($result);
     $user_templates->set_var ('number_stories', COM_numberFormat ($N['count']));
     $user_templates->set_var ('lang_number_comments', $LANG04[85]);
-    $sql = "SELECT COUNT(*) AS count FROM {$_TABLES['comments']} WHERE (uid = $user)";
+    $sql = "SELECT COUNT(*) AS count FROM {$_TABLES['comments']} WHERE (uid = $uid)";
     if (!empty ($sidList)) {
         $sql .= " AND (sid in ($sidList))";
     }
@@ -312,14 +321,14 @@
 
     // Call custom registration function if enabled and exists
     if ($_CONF['custom_registration'] && function_exists ('CUSTOM_userDisplay') ) {
-        $user_templates->set_var ('customfields', CUSTOM_userDisplay ($user));
+        $user_templates->set_var ('customfields', CUSTOM_userDisplay ($uid));
     }
-    PLG_profileVariablesDisplay ($user, $user_templates);
+    PLG_profileVariablesDisplay ($uid, $user_templates);
 
     $user_templates->parse ('output', 'profile');
     $retval .= $user_templates->finish ($user_templates->get_var ('output'));
 
-    $retval .= PLG_profileBlocksDisplay ($user);
+    $retval .= PLG_profileBlocksDisplay ($uid);
     $retval .= COM_siteFooter ();
 
     return $retval;



More information about the geeklog-cvs mailing list