]> gitweb.fluxo.info Git - semanticscuttle.git/commitdiff
Minor refactoring: introduce user as an object.
authormensonge <mensonge@b3834d28-1941-0410-a4f8-b48e95affb8f>
Fri, 21 Nov 2008 18:45:18 +0000 (18:45 +0000)
committermensonge <mensonge@b3834d28-1941-0410-a4f8-b48e95affb8f>
Fri, 21 Nov 2008 18:45:18 +0000 (18:45 +0000)
git-svn-id: https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/trunk@172 b3834d28-1941-0410-a4f8-b48e95affb8f

header.inc.php
services/userservice.php
templates/bookmarks.tpl.php

index f26cb685971ce4a0ba73732f4fc04e5c14b805c1..ccf198b83c22b4566f1bb0b58765349bb42d41ad 100644 (file)
@@ -13,7 +13,6 @@ if(DEBUG_MODE) {
        ini_set('display_errors', '1');
        ini_set('mysql.trace_mode', '1');
        error_reporting(E_ALL);
-       //error_reporting(E_ALL^E_NOTICE);
 } else {
        ini_set('display_errors', '0');
        ini_set('mysql.trace_mode', '0');
index e611cb8d6fb9e65df77dde55c1d3f03111259f97..19e81c6300e4c727f78b0a140231ac294e1bdd30 100644 (file)
@@ -1,6 +1,15 @@
 <?php
 class UserService {
        var $db;
+       var $fields = array(
+        'primary'   =>  'uId',
+        'username'  =>  'username',
+        'password'  =>  'password');
+       var $profileurl;
+       var $tablename;
+       var $sessionkey;
+       var $cookiekey;
+       var $cookietime = 1209600; // 2 weeks
 
        function &getInstance(&$db) {
                static $instance;
@@ -9,423 +18,460 @@ class UserService {
                return $instance;
        }
 
-       var $fields = array(
-        'primary'   =>  'uId',
-        'username'  =>  'username',
-        'password'  =>  'password'
-        );
-        var $profileurl;
-        var $tablename;
-        var $sessionkey;
-        var $cookiekey;
-        var $cookietime = 1209600; // 2 weeks
-
-        function UserService(& $db) {
-               $this->db =& $db;
-               $this->tablename = $GLOBALS['tableprefix'] .'users';
-               $this->sessionkey = INSTALLATION_ID.'-currentuserid';
-               $this->cookiekey = INSTALLATION_ID.'-login';
-               $this->profileurl = createURL('profile', '%2$s');
-        }
-
-        function _checkdns($host) {
-               if (function_exists('checkdnsrr')) {
-                       return checkdnsrr($host);
-               } else {
-                       return $this->_checkdnsrr($host);
-               }
-        }
-
-        function _checkdnsrr($host, $type = "MX") {
-               if(!empty($host)) {
-                       @exec("nslookup -type=$type $host", $output);
-                       while(list($k, $line) = each($output)) {
-                               if(eregi("^$host", $line)) {
-                                       return true;
-                               }
-                       }
-                       return false;
-               }
-        }
-
-        function _getuser($fieldname, $value) {
-               $query = 'SELECT * FROM '. $this->getTableName() .' WHERE '. $fieldname .' = "'. $this->db->sql_escape($value) .'"';
-
-               if (! ($dbresult =& $this->db->sql_query($query)) ) {
-                       message_die(GENERAL_ERROR, 'Could not get user', '', __LINE__, __FILE__, $query, $this->db);
-                       return false;
-               }
-
-               if ($row =& $this->db->sql_fetchrow($dbresult))
-               return $row;
-               else
-               return false;
-        }
-
-        function & getUsers($nb=0) {
-               $query = 'SELECT * FROM '. $this->getTableName() .' ORDER BY `uId` DESC';
-               if($nb>0) {
-                       $query .= ' LIMIT 0, '.$nb;
-               }
-               if (! ($dbresult =& $this->db->sql_query($query)) ) {
-                       message_die(GENERAL_ERROR, 'Could not get user', '', __LINE__, __FILE__, $query, $this->db);
-                       return false;
-               }
-
-               while ($row = & $this->db->sql_fetchrow($dbresult)) {
-                       $users[] = $row;
-               }
-               return $users;
-        }
-
-        function _randompassword() {
-               $seed = (integer) md5(microtime());
-               mt_srand($seed);
-               $password = mt_rand(1, 99999999);
-               $password = substr(md5($password), mt_rand(0, 19), mt_rand(6, 12));
-               return $password;
-        }
-
-        function _updateuser($uId, $fieldname, $value) {
-               $updates = array ($fieldname => $value);
-               $sql = 'UPDATE '. $this->getTableName() .' SET '. $this->db->sql_build_array('UPDATE', $updates) .' WHERE '. $this->getFieldName('primary') .'='. intval($uId);
-
-               // Execute the statement.
-               $this->db->sql_transaction('begin');
-               if (!($dbresult = & $this->db->sql_query($sql))) {
-                       $this->db->sql_transaction('rollback');
-                       message_die(GENERAL_ERROR, 'Could not update user', '', __LINE__, __FILE__, $sql, $this->db);
-                       return false;
-               }
-               $this->db->sql_transaction('commit');
-
-               // Everything worked out, so return true.
-               return true;
-        }
-
-        function getProfileUrl($id, $username) {
-               return sprintf($this->profileurl, urlencode($id), urlencode($username));
-        }
-
-        function getUserByUsername($username) {
-               return $this->_getuser($this->getFieldName('username'), $username);
-        }
-
-        function getUser($id) {
-               return $this->_getuser($this->getFieldName('primary'), $id);
-        }
-
-        function isLoggedOn() {
-               return ($this->getCurrentUserId() !== false);
-        }
-
-        function &getCurrentUser($refresh = FALSE, $newval = NULL) {
-               static $currentuser;
-               if (!is_null($newval)) //internal use only: reset currentuser
-               $currentuser = $newval;
-               else if ($refresh || !isset($currentuser)) {
-                       if ($id = $this->getCurrentUserId()) {
-                               $currentuser = $this->getUser($id);
-                       } else {
-                               $currentuser = null;
-                       }
-               }
-               return $currentuser;
-        }
-
-        function isAdmin($userid) {
-               $user = $this->getUser($userid);
-               
-               if(isset($GLOBALS['admin_users'])
-               && in_array($user['username'], $GLOBALS['admin_users'])) {
-                       return true;
-               } else {
-                       return false;
-               }
-        }
-
-        function getCurrentUserId() {
-               if (isset($_SESSION[$this->getSessionKey()])) {
-                       //echo "session";die($_SESSION[$this->getSessionKey()]);
-                       return $_SESSION[$this->getSessionKey()];
-               } else if (isset($_COOKIE[$this->getCookieKey()])) {
-                       //echo "cookie";die();
-
-                       $cook = split(':', $_COOKIE[$this->getCookieKey()]);
-                       //cookie looks like this: 'id:md5(username+password)'
-                       $query = 'SELECT * FROM '. $this->getTableName() .
+       function UserService(& $db) {
+               $this->db =& $db;
+               $this->tablename = $GLOBALS['tableprefix'] .'users';
+               $this->sessionkey = INSTALLATION_ID.'-currentuserid';
+               $this->cookiekey = INSTALLATION_ID.'-login';
+               $this->profileurl = createURL('profile', '%2$s');
+       }
+
+       function _checkdns($host) {
+               if (function_exists('checkdnsrr')) {
+                       return checkdnsrr($host);
+               } else {
+                       return $this->_checkdnsrr($host);
+               }
+       }
+
+       function _checkdnsrr($host, $type = "MX") {
+               if(!empty($host)) {
+                       @exec("nslookup -type=$type $host", $output);
+                       while(list($k, $line) = each($output)) {
+                               if(eregi("^$host", $line)) {
+                                       return true;
+                               }
+                       }
+                       return false;
+               }
+       }
+
+       function _getuser($fieldname, $value) {
+               $query = 'SELECT * FROM '. $this->getTableName() .' WHERE '. $fieldname .' = "'. $this->db->sql_escape($value) .'"';
+
+               if (! ($dbresult =& $this->db->sql_query($query)) ) {
+                       message_die(GENERAL_ERROR, 'Could not get user', '', __LINE__, __FILE__, $query, $this->db);
+                       return false;
+               }
+
+               if ($row =& $this->db->sql_fetchrow($dbresult))
+               return $row;
+               else
+               return false;
+       }
+
+       function & getUsers($nb=0) {
+               $query = 'SELECT * FROM '. $this->getTableName() .' ORDER BY `uId` DESC';
+               if($nb>0) {
+                       $query .= ' LIMIT 0, '.$nb;
+               }
+               if (! ($dbresult =& $this->db->sql_query($query)) ) {
+                       message_die(GENERAL_ERROR, 'Could not get user', '', __LINE__, __FILE__, $query, $this->db);
+                       return false;
+               }
+
+               while ($row = & $this->db->sql_fetchrow($dbresult)) {
+                       $users[] = $row;
+               }
+               return $users;
+       }
+
+       function _randompassword() {
+               $seed = (integer) md5(microtime());
+               mt_srand($seed);
+               $password = mt_rand(1, 99999999);
+               $password = substr(md5($password), mt_rand(0, 19), mt_rand(6, 12));
+               return $password;
+       }
+
+       function _updateuser($uId, $fieldname, $value) {
+               $updates = array ($fieldname => $value);
+               $sql = 'UPDATE '. $this->getTableName() .' SET '. $this->db->sql_build_array('UPDATE', $updates) .' WHERE '. $this->getFieldName('primary') .'='. intval($uId);
+
+               // Execute the statement.
+               $this->db->sql_transaction('begin');
+               if (!($dbresult = & $this->db->sql_query($sql))) {
+                       $this->db->sql_transaction('rollback');
+                       message_die(GENERAL_ERROR, 'Could not update user', '', __LINE__, __FILE__, $sql, $this->db);
+                       return false;
+               }
+               $this->db->sql_transaction('commit');
+
+               // Everything worked out, so return true.
+               return true;
+       }
+
+       function getProfileUrl($id, $username) {
+               return sprintf($this->profileurl, urlencode($id), urlencode($username));
+       }
+
+       function getUserByUsername($username) {
+               return $this->_getuser($this->getFieldName('username'), $username);
+       }
+
+       function getUser($id) {
+               return $this->_getuser($this->getFieldName('primary'), $id);
+       }
+       
+       // Momentary useful in order to go to object code
+       function getObjectUser($id) {
+               $user = $this->_getuser($this->getFieldName('primary'), $id);
+               return new User($id, $user[$this->getFieldName('username')]);
+       }
+
+       function isLoggedOn() {
+               return ($this->getCurrentUserId() !== false);
+       }
+
+       function &getCurrentUser($refresh = FALSE, $newval = NULL) {
+               static $currentuser;
+               if (!is_null($newval)) { //internal use only: reset currentuser
+                       $currentuser = $newval;
+               } else if ($refresh || !isset($currentuser)) {
+                       if ($id = $this->getCurrentUserId()) {
+                               $currentuser = $this->getUser($id);
+                       } else {
+                               $currentuser = null;
+                       }
+               }
+               return $currentuser;
+       }
+       
+       // Momentary useful in order to go to object code
+       function getCurrentObjectUser($refresh = FALSE, $newval = NULL) {
+               static $currentObjectUser;
+               if (!is_null($newval)) { //internal use only: reset currentuser
+                       $currentObjectUser = $newval;
+               } else if ($refresh || !isset($currentObjectUser)) {
+                       if ($id = $this->getCurrentUserId()) {
+                               $currentObjectUser = $this->getObjectUser($id);
+                       } else {
+                               $currentObjectUser = null;
+                       }
+               }
+               return $currentObjectUser;
+       }
+
+       function isAdmin($userid) {
+               $user = $this->getUser($userid);
+
+               if(isset($GLOBALS['admin_users'])
+               && in_array($user['username'], $GLOBALS['admin_users'])) {
+                       return true;
+               } else {
+                       return false;
+               }
+       }
+
+       /* return current user id based on session or cookie */
+       function getCurrentUserId() {
+               if (isset($_SESSION[$this->getSessionKey()])) {
+                       return $_SESSION[$this->getSessionKey()];
+               } else if (isset($_COOKIE[$this->getCookieKey()])) {
+                       $cook = split(':', $_COOKIE[$this->getCookieKey()]);
+                       //cookie looks like this: 'id:md5(username+password)'
+                       $query = 'SELECT * FROM '. $this->getTableName() .
                      ' WHERE MD5(CONCAT('.$this->getFieldName('username') .
                                      ', '.$this->getFieldName('password') .
                      ')) = \''.$this->db->sql_escape($cook[1]).'\' AND '.
-                       $this->getFieldName('primary'). ' = '. $this->db->sql_escape($cook[0]);
-
-                       if (! ($dbresult =& $this->db->sql_query($query)) ) {
-                               message_die(GENERAL_ERROR, 'Could not get user', '', __LINE__, __FILE__, $query, $this->db);
-                               return false;
-                       }
-
-                       if ($row = $this->db->sql_fetchrow($dbresult)) {
-                               $_SESSION[$this->getSessionKey()] = $row[$this->getFieldName('primary')];
-                               return $_SESSION[$this->getSessionKey()];
-                       }
-               }
-               return false;
-        }
-
-        function login($username, $password, $remember = FALSE) {
-               $password = $this->sanitisePassword($password);
-               $query = 'SELECT '. $this->getFieldName('primary') .' FROM '. $this->getTableName() .' WHERE '. $this->getFieldName('username') .' = "'. $this->db->sql_escape($username) .'" AND '. $this->getFieldName('password') .' = "'. $this->db->sql_escape($password) .'"';
-
-               if (! ($dbresult =& $this->db->sql_query($query)) ) {
-                       message_die(GENERAL_ERROR, 'Could not get user', '', __LINE__, __FILE__, $query, $this->db);
-                       return false;
-               }
-
-               if ($row =& $this->db->sql_fetchrow($dbresult)) {
-                       $id = $_SESSION[$this->getSessionKey()] = $row[$this->getFieldName('primary')];
-                       if ($remember) {
-                               $cookie = $id .':'. md5($username.$password);
-                               setcookie($this->cookiekey, $cookie, time() + $this->cookietime, '/');
-                       }
-                       return true;
-               } else {
-                       return false;
-               }
-        }
-
-        function logout() {
-               @setcookie($this->getCookiekey(), '', time() - 1, '/');
-               unset($_COOKIE[$this->getCookiekey()]);
-               session_unset();
-               $this->getCurrentUser(TRUE, false);
-        }
-
-        function getWatchlist($uId) {
-               // Gets the list of user IDs being watched by the given user.
-               $query = 'SELECT watched FROM '. $GLOBALS['tableprefix'] .'watched WHERE uId = '. intval($uId);
-
-               if (! ($dbresult =& $this->db->sql_query($query)) ) {
-                       message_die(GENERAL_ERROR, 'Could not get watchlist', '', __LINE__, __FILE__, $query, $this->db);
-                       return false;
-               }
-
-               $arrWatch = array();
-               if ($this->db->sql_numrows($dbresult) == 0)
-               return $arrWatch;
-               while ($row =& $this->db->sql_fetchrow($dbresult))
-               $arrWatch[] = $row['watched'];
-               return $arrWatch;
-        }
-
-        function getWatchNames($uId, $watchedby = false) {
-               // Gets the list of user names being watched by the given user.
-               // - If $watchedby is false get the list of users that $uId watches
-               // - If $watchedby is true get the list of users that watch $uId
-               if ($watchedby) {
-                       $table1 = 'b';
-                       $table2 = 'a';
-               } else {
-                       $table1 = 'a';
-                       $table2 = 'b';
-               }
-               $query = 'SELECT '. $table1 .'.'. $this->getFieldName('username') .' FROM '. $GLOBALS['tableprefix'] .'watched AS W, '. $this->getTableName() .' AS a, '. $this->getTableName() .' AS b WHERE W.watched = a.'. $this->getFieldName('primary') .' AND W.uId = b.'. $this->getFieldName('primary') .' AND '. $table2 .'.'. $this->getFieldName('primary') .' = '. intval($uId) .' ORDER BY '. $table1 .'.'. $this->getFieldName('username');
-
-               if (!($dbresult =& $this->db->sql_query($query))) {
-                       message_die(GENERAL_ERROR, 'Could not get watchlist', '', __LINE__, __FILE__, $query, $this->db);
-                       return false;
-               }
-
-               $arrWatch = array();
-               if ($this->db->sql_numrows($dbresult) == 0) {
-                       return $arrWatch;
-               }
-               while ($row =& $this->db->sql_fetchrow($dbresult)) {
-                       $arrWatch[] = $row[$this->getFieldName('username')];
-               }
-               return $arrWatch;
-        }
-
-        function getWatchStatus($watcheduser, $currentuser) {
-               // Returns true if the current user is watching the given user, and false otherwise.
-               $query = 'SELECT watched FROM '. $GLOBALS['tableprefix'] .'watched AS W INNER JOIN '. $this->getTableName() .' AS U ON U.'. $this->getFieldName('primary') .' = W.watched WHERE U.'. $this->getFieldName('primary') .' = '. intval($watcheduser) .' AND W.uId = '. intval($currentuser);
-
-               if (! ($dbresult =& $this->db->sql_query($query)) ) {
-                       message_die(GENERAL_ERROR, 'Could not get watchstatus', '', __LINE__, __FILE__, $query, $this->db);
-                       return false;
-               }
-
-               $arrWatch = array();
-               if ($this->db->sql_numrows($dbresult) == 0)
-               return false;
-               else
-               return true;
-        }
-
-        function setWatchStatus($subjectUserID) {
-               if (!is_numeric($subjectUserID))
-               return false;
-
-               $currentUserID = $this->getCurrentUserId();
-               $watched = $this->getWatchStatus($subjectUserID, $currentUserID);
-
-               if ($watched) {
-                       $sql = 'DELETE FROM '. $GLOBALS['tableprefix'] .'watched WHERE uId = '. intval($currentUserID) .' AND watched = '. intval($subjectUserID);
-                       if (!($dbresult =& $this->db->sql_query($sql))) {
-                               $this->db->sql_transaction('rollback');
-                               message_die(GENERAL_ERROR, 'Could not add user to watch list', '', __LINE__, __FILE__, $sql, $this->db);
-                               return false;
-                       }
-               } else {
-                       $values = array(
+                       $this->getFieldName('primary'). ' = '. $this->db->sql_escape($cook[0]);
+
+                       if (! ($dbresult =& $this->db->sql_query($query)) ) {
+                               message_die(GENERAL_ERROR, 'Could not get user', '', __LINE__, __FILE__, $query, $this->db);
+                               return false;
+                       }
+
+                       if ($row = $this->db->sql_fetchrow($dbresult)) {
+                               $_SESSION[$this->getSessionKey()] = $row[$this->getFieldName('primary')];
+                               return $_SESSION[$this->getSessionKey()];
+                       }
+               }
+               return false;
+       }
+
+       function login($username, $password, $remember = FALSE) {
+               $password = $this->sanitisePassword($password);
+               $query = 'SELECT '. $this->getFieldName('primary') .' FROM '. $this->getTableName() .' WHERE '. $this->getFieldName('username') .' = "'. $this->db->sql_escape($username) .'" AND '. $this->getFieldName('password') .' = "'. $this->db->sql_escape($password) .'"';
+
+               if (! ($dbresult =& $this->db->sql_query($query)) ) {
+                       message_die(GENERAL_ERROR, 'Could not get user', '', __LINE__, __FILE__, $query, $this->db);
+                       return false;
+               }
+
+               if ($row =& $this->db->sql_fetchrow($dbresult)) {
+                       $id = $_SESSION[$this->getSessionKey()] = $row[$this->getFieldName('primary')];
+                       if ($remember) {
+                               $cookie = $id .':'. md5($username.$password);
+                               setcookie($this->cookiekey, $cookie, time() + $this->cookietime, '/');
+                       }
+                       return true;
+               } else {
+                       return false;
+               }
+       }
+
+       function logout() {
+               @setcookie($this->getCookiekey(), '', time() - 1, '/');
+               unset($_COOKIE[$this->getCookiekey()]);
+               session_unset();
+               $this->getCurrentUser(TRUE, false);
+       }
+
+       function getWatchlist($uId) {
+               // Gets the list of user IDs being watched by the given user.
+               $query = 'SELECT watched FROM '. $GLOBALS['tableprefix'] .'watched WHERE uId = '. intval($uId);
+
+               if (! ($dbresult =& $this->db->sql_query($query)) ) {
+                       message_die(GENERAL_ERROR, 'Could not get watchlist', '', __LINE__, __FILE__, $query, $this->db);
+                       return false;
+               }
+
+               $arrWatch = array();
+               if ($this->db->sql_numrows($dbresult) == 0)
+               return $arrWatch;
+               while ($row =& $this->db->sql_fetchrow($dbresult))
+               $arrWatch[] = $row['watched'];
+               return $arrWatch;
+       }
+
+       function getWatchNames($uId, $watchedby = false) {
+               // Gets the list of user names being watched by the given user.
+               // - If $watchedby is false get the list of users that $uId watches
+               // - If $watchedby is true get the list of users that watch $uId
+               if ($watchedby) {
+                       $table1 = 'b';
+                       $table2 = 'a';
+               } else {
+                       $table1 = 'a';
+                       $table2 = 'b';
+               }
+               $query = 'SELECT '. $table1 .'.'. $this->getFieldName('username') .' FROM '. $GLOBALS['tableprefix'] .'watched AS W, '. $this->getTableName() .' AS a, '. $this->getTableName() .' AS b WHERE W.watched = a.'. $this->getFieldName('primary') .' AND W.uId = b.'. $this->getFieldName('primary') .' AND '. $table2 .'.'. $this->getFieldName('primary') .' = '. intval($uId) .' ORDER BY '. $table1 .'.'. $this->getFieldName('username');
+
+               if (!($dbresult =& $this->db->sql_query($query))) {
+                       message_die(GENERAL_ERROR, 'Could not get watchlist', '', __LINE__, __FILE__, $query, $this->db);
+                       return false;
+               }
+
+               $arrWatch = array();
+               if ($this->db->sql_numrows($dbresult) == 0) {
+                       return $arrWatch;
+               }
+               while ($row =& $this->db->sql_fetchrow($dbresult)) {
+                       $arrWatch[] = $row[$this->getFieldName('username')];
+               }
+               return $arrWatch;
+       }
+
+       function getWatchStatus($watcheduser, $currentuser) {
+               // Returns true if the current user is watching the given user, and false otherwise.
+               $query = 'SELECT watched FROM '. $GLOBALS['tableprefix'] .'watched AS W INNER JOIN '. $this->getTableName() .' AS U ON U.'. $this->getFieldName('primary') .' = W.watched WHERE U.'. $this->getFieldName('primary') .' = '. intval($watcheduser) .' AND W.uId = '. intval($currentuser);
+
+               if (! ($dbresult =& $this->db->sql_query($query)) ) {
+                       message_die(GENERAL_ERROR, 'Could not get watchstatus', '', __LINE__, __FILE__, $query, $this->db);
+                       return false;
+               }
+
+               $arrWatch = array();
+               if ($this->db->sql_numrows($dbresult) == 0)
+               return false;
+               else
+               return true;
+       }
+
+       function setWatchStatus($subjectUserID) {
+               if (!is_numeric($subjectUserID))
+               return false;
+
+               $currentUserID = $this->getCurrentUserId();
+               $watched = $this->getWatchStatus($subjectUserID, $currentUserID);
+
+               if ($watched) {
+                       $sql = 'DELETE FROM '. $GLOBALS['tableprefix'] .'watched WHERE uId = '. intval($currentUserID) .' AND watched = '. intval($subjectUserID);
+                       if (!($dbresult =& $this->db->sql_query($sql))) {
+                               $this->db->sql_transaction('rollback');
+                               message_die(GENERAL_ERROR, 'Could not add user to watch list', '', __LINE__, __FILE__, $sql, $this->db);
+                               return false;
+                       }
+               } else {
+                       $values = array(
                 'uId' => intval($currentUserID),
                 'watched' => intval($subjectUserID)
-                       );
-                       $sql = 'INSERT INTO '. $GLOBALS['tableprefix'] .'watched '. $this->db->sql_build_array('INSERT', $values);
-                       if (!($dbresult =& $this->db->sql_query($sql))) {
-                               $this->db->sql_transaction('rollback');
-                               message_die(GENERAL_ERROR, 'Could not add user to watch list', '', __LINE__, __FILE__, $sql, $this->db);
-                               return false;
-                       }
-               }
-
-               $this->db->sql_transaction('commit');
-               return true;
-        }
-
-        function addUser($username, $password, $email) {
-               // Set up the SQL UPDATE statement.
-               $datetime = gmdate('Y-m-d H:i:s', time());
-               $password = $this->sanitisePassword($password);
-               $values = array('username' => $username, 'password' => $password, 'email' => $email, 'uDatetime' => $datetime, 'uModified' => $datetime);
-               $sql = 'INSERT INTO '. $this->getTableName() .' '. $this->db->sql_build_array('INSERT', $values);
-
-               // Execute the statement.
-               $this->db->sql_transaction('begin');
-               if (!($dbresult = & $this->db->sql_query($sql))) {
-                       $this->db->sql_transaction('rollback');
-                       message_die(GENERAL_ERROR, 'Could not insert user', '', __LINE__, __FILE__, $sql, $this->db);
-                       return false;
-               }
-               $this->db->sql_transaction('commit');
-
-               // Everything worked out, so return true.
-               return true;
-        }
-
-        function updateUser($uId, $password, $name, $email, $homepage, $uContent) {
-               if (!is_numeric($uId))
-               return false;
-
-               // Set up the SQL UPDATE statement.
-               $moddatetime = gmdate('Y-m-d H:i:s', time());
-               if ($password == '')
-               $updates = array ('uModified' => $moddatetime, 'name' => $name, 'email' => $email, 'homepage' => $homepage, 'uContent' => $uContent);
-               else
-               $updates = array ('uModified' => $moddatetime, 'password' => $this->sanitisePassword($password), 'name' => $name, 'email' => $email, 'homepage' => $homepage, 'uContent' => $uContent);
-               $sql = 'UPDATE '. $this->getTableName() .' SET '. $this->db->sql_build_array('UPDATE', $updates) .' WHERE '. $this->getFieldName('primary') .'='. intval($uId);
-
-               // Execute the statement.
-               $this->db->sql_transaction('begin');
-               if (!($dbresult = & $this->db->sql_query($sql))) {
-                       $this->db->sql_transaction('rollback');
-                       message_die(GENERAL_ERROR, 'Could not update user', '', __LINE__, __FILE__, $sql, $this->db);
-                       return false;
-               }
-               $this->db->sql_transaction('commit');
-
-               // Everything worked out, so return true.
-               return true;
-        }
-
-        function getAllUsers ( ) {\r
-               $query = 'SELECT * FROM '. $this->getTableName();\r
+                       );
+                       $sql = 'INSERT INTO '. $GLOBALS['tableprefix'] .'watched '. $this->db->sql_build_array('INSERT', $values);
+                       if (!($dbresult =& $this->db->sql_query($sql))) {
+                               $this->db->sql_transaction('rollback');
+                               message_die(GENERAL_ERROR, 'Could not add user to watch list', '', __LINE__, __FILE__, $sql, $this->db);
+                               return false;
+                       }
+               }
+
+               $this->db->sql_transaction('commit');
+               return true;
+       }
+
+       function addUser($username, $password, $email) {
+               // Set up the SQL UPDATE statement.
+               $datetime = gmdate('Y-m-d H:i:s', time());
+               $password = $this->sanitisePassword($password);
+               $values = array('username' => $username, 'password' => $password, 'email' => $email, 'uDatetime' => $datetime, 'uModified' => $datetime);
+               $sql = 'INSERT INTO '. $this->getTableName() .' '. $this->db->sql_build_array('INSERT', $values);
+
+               // Execute the statement.
+               $this->db->sql_transaction('begin');
+               if (!($dbresult = & $this->db->sql_query($sql))) {
+                       $this->db->sql_transaction('rollback');
+                       message_die(GENERAL_ERROR, 'Could not insert user', '', __LINE__, __FILE__, $sql, $this->db);
+                       return false;
+               }
+               $this->db->sql_transaction('commit');
+
+               // Everything worked out, so return true.
+               return true;
+       }
+
+       function updateUser($uId, $password, $name, $email, $homepage, $uContent) {
+               if (!is_numeric($uId))
+               return false;
+
+               // Set up the SQL UPDATE statement.
+               $moddatetime = gmdate('Y-m-d H:i:s', time());
+               if ($password == '')
+               $updates = array ('uModified' => $moddatetime, 'name' => $name, 'email' => $email, 'homepage' => $homepage, 'uContent' => $uContent);
+               else
+               $updates = array ('uModified' => $moddatetime, 'password' => $this->sanitisePassword($password), 'name' => $name, 'email' => $email, 'homepage' => $homepage, 'uContent' => $uContent);
+               $sql = 'UPDATE '. $this->getTableName() .' SET '. $this->db->sql_build_array('UPDATE', $updates) .' WHERE '. $this->getFieldName('primary') .'='. intval($uId);
+
+               // Execute the statement.
+               $this->db->sql_transaction('begin');
+               if (!($dbresult = & $this->db->sql_query($sql))) {
+                       $this->db->sql_transaction('rollback');
+                       message_die(GENERAL_ERROR, 'Could not update user', '', __LINE__, __FILE__, $sql, $this->db);
+                       return false;
+               }
+               $this->db->sql_transaction('commit');
+
+               // Everything worked out, so return true.
+               return true;
+       }
+
+       function getAllUsers ( ) {\r
+               $query = 'SELECT * FROM '. $this->getTableName();\r
 \r
-               if (! ($dbresult =& $this->db->sql_query($query)) ) {\r
-                       message_die(GENERAL_ERROR, 'Could not get users', '', __LINE__, __FILE__, $query, $this->db);\r
-                       return false;\r
-               }\r
+               if (! ($dbresult =& $this->db->sql_query($query)) ) {\r
+                       message_die(GENERAL_ERROR, 'Could not get users', '', __LINE__, __FILE__, $query, $this->db);\r
+                       return false;\r
+               }\r
 \r
-               $rows = array();\r
+               $rows = array();\r
 \r
-               while ( $row = $this->db->sql_fetchrow($dbresult) ) {\r
-                       $rows[] = $row;\r
-               }\r
+               while ( $row = $this->db->sql_fetchrow($dbresult) ) {\r
+                       $rows[] = $row;\r
+               }\r
 \r
-               return $rows;\r
-        }\r
+               return $rows;\r
+       }\r
 \r
-        function deleteUser($uId) {\r
-               $query = 'DELETE FROM '. $this->getTableName() .' WHERE uId = '. intval($uId);\r
+       function deleteUser($uId) {\r
+               $query = 'DELETE FROM '. $this->getTableName() .' WHERE uId = '. intval($uId);\r
 \r
-               if (!($dbresult = & $this->db->sql_query($query))) {\r
-                       message_die(GENERAL_ERROR, 'Could not delete user', '', __LINE__, __FILE__, $query, $this->db);\r
-                       return false;\r
-               }\r
+               if (!($dbresult = & $this->db->sql_query($query))) {\r
+                       message_die(GENERAL_ERROR, 'Could not delete user', '', __LINE__, __FILE__, $query, $this->db);\r
+                       return false;\r
+               }\r
 \r
-               return true;\r
-        }\r
-
-
-        function sanitisePassword($password) {
-               return sha1(trim($password));
-        }
-
-        function generatePassword($uId) {
-               if (!is_numeric($uId))
-               return false;
-
-               $password = $this->_randompassword();
-
-               if ($this->_updateuser($uId, $this->getFieldName('password'), $this->sanitisePassword($password)))
-               return $password;
-               else
-               return false;
-        }
-
-        function isReserved($username) {
-               if (in_array($username, $GLOBALS['reservedusers'])) {
-                       return true;
-               } else {
-                       return false;
-               }
-        }
-        
-        function isValidUsername($username) {
-               if (strlen($username) > 24) {
-                       // too long usernames are cut by database and may cause bugs when compared 
-                       return false;
-               } elseif (preg_match('/(\W)/', $username) > 0) {
-                       // forbidden non-alphanumeric characters
-                       return false;
-               }
-               return true;
-        }        
-
-        
-
-        function isValidEmail($email) {
-               if (eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,6})$", $email)) {
-                       list($emailUser, $emailDomain) = split("@", $email);
-
-                       // Check if the email domain has a DNS record
-                       if ($this->_checkdns($emailDomain)) {
-                               return true;
-                       }
-               }
-               return false;
-        }
-
-        // Properties
-        function getTableName()       { return $this->tablename; }
-        function setTableName($value) { $this->tablename = $value; }
-
-        function getFieldName($field)         { return $this->fields[$field]; }
-        function setFieldName($field, $value) { $this->fields[$field] = $value; }
-
-        function getSessionKey()       { return $this->sessionkey; }
-        function setSessionKey($value) { $this->sessionkey = $value; }
-
-        function getCookieKey()       { return $this->cookiekey; }
-        function setCookieKey($value) { $this->cookiekey = $value; }
+               return true;\r
+       }\r
+
+
+       function sanitisePassword($password) {
+               return sha1(trim($password));
+       }
+
+       function generatePassword($uId) {
+               if (!is_numeric($uId))
+               return false;
+
+               $password = $this->_randompassword();
+
+               if ($this->_updateuser($uId, $this->getFieldName('password'), $this->sanitisePassword($password)))
+               return $password;
+               else
+               return false;
+       }
+
+       function isReserved($username) {
+               if (in_array($username, $GLOBALS['reservedusers'])) {
+                       return true;
+               } else {
+                       return false;
+               }
+       }
+
+       function isValidUsername($username) {
+               if (strlen($username) > 24) {
+                       // too long usernames are cut by database and may cause bugs when compared
+                       return false;
+               } elseif (preg_match('/(\W)/', $username) > 0) {
+                       // forbidden non-alphanumeric characters
+                       return false;
+               }
+               return true;
+       }
+
+
+
+       function isValidEmail($email) {
+               if (eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,6})$", $email)) {
+                       list($emailUser, $emailDomain) = split("@", $email);
+
+                       // Check if the email domain has a DNS record
+                       if ($this->_checkdns($emailDomain)) {
+                               return true;
+                       }
+               }
+               return false;
+       }
+
+       // Properties
+       function getTableName()       { return $this->tablename; }
+       function setTableName($value) { $this->tablename = $value; }
+
+       function getFieldName($field)         { return $this->fields[$field]; }
+       function setFieldName($field, $value) { $this->fields[$field] = $value; }
+
+       function getSessionKey()       { return $this->sessionkey; }
+       function setSessionKey($value) { $this->sessionkey = $value; }
+
+       function getCookieKey()       { return $this->cookiekey; }
+       function setCookieKey($value) { $this->cookiekey = $value; }
+}
+
+class User {
+
+       var $id;
+       var $username;
+       var $isAdmin;
+
+       function User($id, $username) {
+               $this->id = $id;
+               $this->username = $username;
+       }
+       
+       function getId() {
+               return $this->id;
+       }
+       
+       function getUsername() {
+               return $this->username;
+       }
+       
+       function isAdmin() {
+               // Look for value if not already set
+               if(!isset($this->isAdmin)) {
+                       $userservice =& ServiceFactory::getServiceInstance('UserService');
+                       $this->isAdmin = $userservice->isAdmin($this->id);
+               }
+               return $this->isAdmin;
+       }
 }
 ?>
index e95f787f5b46eda0adbebd4e14e4acddb8e4dda0..475436ba8c1dfb28961c8b4bb4dbb77b93f75f89 100644 (file)
@@ -8,9 +8,13 @@ $cdservice =& ServiceFactory::getServiceInstance('CommonDescriptionService');
 
 
 
-$logged_on_userid = $userservice->getCurrentUserId();
-$currentUser = $userservice->getCurrentUser();
-$currentUsername = $currentUser[$userservice->getFieldName('username')];
+//$logged_on_userid = $userservice->getCurrentUserId();
+//$currentUser = $userservice->getCurrentUser();
+//$currentUsername = $currentUser[$userservice->getFieldName('username')];
+
+// Momentary useful to go to object code
+$currentObjectUser = $userservice->getCurrentObjectUser();
+
 $pageName = isset($pageName)?$pageName:"";
 
 $this->includeTemplate($GLOBALS['top_include']);
@@ -23,50 +27,45 @@ include('search.inc.php');
 <?php endif?>
 
 
-<?php 
-if((isset($currenttag) && $GLOBALS['enableCommonTagDescription'])
- || (isset($hash) && $GLOBALS['enableCommonBookmarkDescription'])):?>
-<p class="commondescription">
-
 <?php
+if((isset($currenttag) && $GLOBALS['enableCommonTagDescription'])
+|| (isset($hash) && $GLOBALS['enableCommonBookmarkDescription'])):?>
+<p class="commondescription"><?php
 if(isset($currenttag) && $cdservice->getLastTagDescription($currenttag)) {
-    $description = $cdservice->getLastTagDescription($currenttag);
-    echo nl2br(filter($description['cdDescription']));
+       $description = $cdservice->getLastTagDescription($currenttag);
+       echo nl2br(filter($description['cdDescription']));
 } elseif(isset($hash) && $cdservice->getLastBookmarkDescription($hash)) {
-    $description = $cdservice->getLastBookmarkDescription($hash);
-    echo nl2br(filter($description['cdTitle'])). "<br/>";
-    echo nl2br(filter($description['cdDescription'])). "<br/>";
+       $description = $cdservice->getLastBookmarkDescription($hash);
+       echo nl2br(filter($description['cdTitle'])). "<br/>";
+       echo nl2br(filter($description['cdDescription'])). "<br/>";
 }
 
-if($logged_on_userid>0) {
-    if(isset($currenttag)) {
-       echo ' (<a href="'. createURL('tagcommondescriptionedit', $currenttag).'">';
-       echo T_('edit common description').'</a>)';
-    } elseif(isset($hash)) {
-       echo ' (<a href="'.createURL('bookmarkcommondescriptionedit', $hash).'">';
-       echo T_('edit common description').'</a>)';
-    }
+if($userservice->isLoggedOn()) {
+       if(isset($currenttag)) {
+               echo ' (<a href="'. createURL('tagcommondescriptionedit', $currenttag).'">';
+               echo T_('edit common description').'</a>)';
+       } elseif(isset($hash)) {
+               echo ' (<a href="'.createURL('bookmarkcommondescriptionedit', $hash).'">';
+               echo T_('edit common description').'</a>)';
+       }
 }
-?>
-</p>
+?></p>
 <?php endif ?>
 
 
 <?php
 /* Private tag description */
 if(isset($currenttag) && isset($user)) {
-    $userObject = $userservice->getUserByUsername($user);
-    if($tagservice->getDescription($currenttag, $userObject['uId'])) { ?>
+       $userObject = $userservice->getUserByUsername($user);
+       if($tagservice->getDescription($currenttag, $userObject['uId'])) { ?>
 
-<p class="commondescription">
-<?php
-    $description = $tagservice->getDescription($currenttag, $userObject['uId']);
-    echo nl2br(filter($description['tDescription']));
-?>
-</p>
+<p class="commondescription"><?php
+$description = $tagservice->getDescription($currenttag, $userObject['uId']);
+echo nl2br(filter($description['tDescription']));
+?></p>
 
-<?php 
-    }
+<?php
+       }
 }
 ?>
 
@@ -75,202 +74,195 @@ if(isset($currenttag) && isset($user)) {
 window.onload = playerLoad;
 </script>
 
-<p id="sort">
-    <?php echo $total.' '.T_("bookmark(s)"); ?> - 
-    <?php echo T_("Sort by:"); ?>
-    <?php
-       $dateSort = (getSortOrder()=='date_desc')? 'date_asc':'date_desc';
-       $titleSort = (getSortOrder()=='title_asc')? 'title_desc':'title_asc';
-       $urlSort = (getSortOrder()=='url_asc')? 'url_desc':'url_asc';
-    ?>
-    <a href="?sort=<?php echo $dateSort ?>"><?php echo T_("Date"); ?></a><span> / </span>
-    <a href="?sort=<?php echo $titleSort ?>"><?php echo T_("Title"); ?></a><span> / </span>
-    <?php
-    if (!isset($hash)) {
-    ?>
-    <a href="?sort=<?php echo $urlSort ?>"><?php echo T_("URL"); ?></a>
-    <?php
-    }
-    ?>
-
-    <?php
-    if(isset($currenttag)) {
+<p id="sort"><?php echo $total.' '.T_("bookmark(s)"); ?> - <?php echo T_("Sort by:"); ?>
+<?php
+$dateSort = (getSortOrder()=='date_desc')? 'date_asc':'date_desc';
+$titleSort = (getSortOrder()=='title_asc')? 'title_desc':'title_asc';
+$urlSort = (getSortOrder()=='url_asc')? 'url_desc':'url_asc';
+?> <a href="?sort=<?php echo $dateSort ?>"><?php echo T_("Date"); ?></a><span>
+/ </span> <a href="?sort=<?php echo $titleSort ?>"><?php echo T_("Title"); ?></a><span>
+/ </span> <?php
+if (!isset($hash)) {
+       ?> <a href="?sort=<?php echo $urlSort ?>"><?php echo T_("URL"); ?></a>
+       <?php
+}
+?> <?php
+if(isset($currenttag)) {
        if(isset($user)) {
-           echo ' - ';
-           echo '<a href="'. createURL('tags', $currenttag) .'">';
-           echo T_('Bookmarks from other users for this tag').'</a>';
-           //echo T_(' for these tags');
-       } else if($logged_on_userid>0){
-           echo ' - ';
-           echo '<a href="'. createURL('bookmarks', $currentUsername.'/'.$currenttag) .'">';
-           echo T_('Only your bookmarks for this tag').'</a>';
-           //echo T_(' for these tags');
+               echo ' - ';
+               echo '<a href="'. createURL('tags', $currenttag) .'">';
+               echo T_('Bookmarks from other users for this tag').'</a>';
+               //echo T_(' for these tags');
+       } else if($userservice->isLoggedOn()){
+               echo ' - ';
+               echo '<a href="'. createURL('bookmarks', $currentObjectUser->getUsername().'/'.$currenttag) .'">';
+               echo T_('Only your bookmarks for this tag').'</a>';
+               //echo T_(' for these tags');
+       }
+}
+?></p>
+
+
+
+<ol <?php echo ($start > 0 ? ' start="'. ++$start .'"' : ''); ?>
+       id="bookmarks">
+
+       <?php
+       foreach(array_keys($bookmarks) as $key) {
+               $row =& $bookmarks[$key];
+               switch ($row['bStatus']) {
+                       case 0:
+                               $access = '';
+                               break;
+                       case 1:
+                               $access = ' shared';
+                               break;
+                       case 2:
+                               $access = ' private';
+                               break;
+               }
+
+               $cats = '';
+               $tagsForCopy = '';
+               $tags = $row['tags'];
+               foreach(array_keys($tags) as $key) {
+
+                       $tag =& $tags[$key];
+                       $cats .= '<a href="'. sprintf($cat_url, filter($row['username'], 'url'), filter($tag, 'url')) .'" rel="tag">'. filter($tag) .'</a>, ';
+                       $tagsForCopy.= $tag.',';
+               }
+               $cats = substr($cats, 0, -2);
+               if ($cats != '') {
+                       $cats = ' '.T_('in').' '. $cats;
+               }
+
+               // Edit and delete links
+               $edit = '';
+               if ($bookmarkservice->editAllowed($row['bId'])) {
+                       $edit = ' - <a href="'. createURL('edit', $row['bId']) .'">'. T_('Edit') .'</a><script type="text/javascript">document.write(" - <a href=\"#\" onclick=\"deleteBookmark(this, '. $row['bId'] .'); return false;\">'. T_('Delete') .'<\/a>");</script>';
+               }
+
+               // User attribution
+               $copy = '';
+               if (!isset($user) || isset($watched)) {
+                       $copy = ' '. T_('by') .' <a href="'. createURL('bookmarks', $row['username']) .'">'. $row['username'] .'</a>';
+               }
+
+               // Udders!
+               if (!isset($hash)) {
+                       $others = $bookmarkservice->countOthers($row['bAddress']);
+                       $ostart = '<a href="'. createURL('history', $row['bHash']) .'">';
+                       $oend = '</a>';
+                       switch ($others) {
+                               case 0:
+                                       break;
+                               case 1:
+                                       $copy .= sprintf(T_(' and %s1 other%s'), $ostart, $oend);
+                                       break;
+                               default:
+                                       $copy .= sprintf(T_(' and %2$s%1$s others%3$s'), $others, $ostart, $oend);
+                       }
+               }
+
+               // Copy link
+               if ($userservice->isLoggedOn()
+               && ($currentObjectUser->getId() != $row['uId'])
+               && !$bookmarkservice->bookmarkExists($row['bAddress'], $currentObjectUser->getId())) {
+                       $copy .= ' - <a href="'. createURL('bookmarks', $currentObjectUser->getUsername() .'?action=add&amp;address='. urlencode($row['bAddress']) .'&amp;title='. urlencode($row['bTitle'])). '&amp;description='.urlencode($row['bDescription']). '&amp;tags='.$tagsForCopy  .'">'. T_('Copy') .'</a>';
+               }
+
+               // Nofollow option
+               $rel = '';
+               if ($GLOBALS['nofollow']) {
+                       $rel = ' rel="nofollow"';
+               }
+
+               $address = filter($row['bAddress']);
+
+               // Redirection option
+               if ($GLOBALS['useredir']) {
+                       $address = $GLOBALS['url_redir'] . $address;
+               }
+
+               // Output
+               echo '<li class="xfolkentry'. $access .'">'."\n";
+               if ($GLOBALS['enableWebsiteThumbnails']) {
+                       $thumbnailHash = md5($address.$GLOBALS['thumbnailsUserId'].$GLOBALS['thumbnailsKey']);
+                       echo '<a href="'. $address .'"'. $rel .' ><img class="thumbnail" src="http://www.artviper.net/screenshots/screener.php?url='.$address.'&w=120&sdx=1280&userID='.$GLOBALS['thumbnailsUserId'].'&hash='.$thumbnailHash.'" />  ';
+               }
+               echo '<div>';
+
+               echo '<div class="link"><a href="'. $address .'"'. $rel .' class="taggedlink">'. filter($row['bTitle']) ."</a></div>\n";
+               if ($row['bDescription'] == '') {
+                       $row['bDescription'] = '-';
+               }
+               echo '<div class="description">'. filter($row['bDescription']) ."</div>\n";
+               if(!isset($hash)) {
+                       echo '<div class="address">'.shortenString($address).'</div>';
+               }
+
+               echo '<div class="meta">'. date($GLOBALS['shortdate'], strtotime($row['bDatetime'])) . $cats . $copy . $edit ."</div>\n";
+
+               echo '</div>';
+
+               echo "</li>\n";
+       }
+       ?>
+
+</ol>
+
+       <?php
+       // PAGINATION
+
+       // Ordering
+       $sortOrder = '';
+       if (isset($_GET['sort'])) {
+               $sortOrder = 'sort='. $_GET['sort'];
        }
-    }
-    ?>
-</p>
-
-
-
-<ol<?php echo ($start > 0 ? ' start="'. ++$start .'"' : ''); ?> id="bookmarks">
-
-    <?php
-    foreach(array_keys($bookmarks) as $key) {
-        $row =& $bookmarks[$key];
-        switch ($row['bStatus']) {
-            case 0:
-                $access = '';
-                break;
-            case 1:
-                $access = ' shared';
-                break;
-            case 2:
-                $access = ' private';
-                break;
-        }
-
-        $cats = '';
-       $tagsForCopy = '';
-        $tags = $row['tags'];
-        foreach(array_keys($tags) as $key) {
-
-            $tag =& $tags[$key];
-            $cats .= '<a href="'. sprintf($cat_url, filter($row['username'], 'url'), filter($tag, 'url')) .'" rel="tag">'. filter($tag) .'</a>, ';
-           $tagsForCopy.= $tag.',';
-        }
-        $cats = substr($cats, 0, -2);
-        if ($cats != '') {
-            $cats = ' '.T_('in').' '. $cats;
-        }
-
-        // Edit and delete links
-        $edit = '';
-        if ($bookmarkservice->editAllowed($row['bId'])) {
-            $edit = ' - <a href="'. createURL('edit', $row['bId']) .'">'. T_('Edit') .'</a><script type="text/javascript">document.write(" - <a href=\"#\" onclick=\"deleteBookmark(this, '. $row['bId'] .'); return false;\">'. T_('Delete') .'<\/a>");</script>';
-        }
-
-        // User attribution
-        $copy = '';
-        if (!isset($user) || isset($watched)) {
-            $copy = ' '. T_('by') .' <a href="'. createURL('bookmarks', $row['username']) .'">'. $row['username'] .'</a>';
-        }
-
-        // Udders!
-        if (!isset($hash)) {
-            $others = $bookmarkservice->countOthers($row['bAddress']);
-            $ostart = '<a href="'. createURL('history', $row['bHash']) .'">';
-            $oend = '</a>';
-            switch ($others) {
-                case 0:
-                    break;
-                case 1:
-                    $copy .= sprintf(T_(' and %s1 other%s'), $ostart, $oend);
-                    break;
-                default:
-                    $copy .= sprintf(T_(' and %2$s%1$s others%3$s'), $others, $ostart, $oend);
-            }
-        }
-
-        // Copy link
-        if ($userservice->isLoggedOn() && ($logged_on_userid != $row['uId']) && !$bookmarkservice->bookmarkExists($row['bAddress'], $logged_on_userid)) {
-            // Get the username of the current user
-            $currentUser = $userservice->getCurrentUser();
-            $currentUsername = $currentUser[$userservice->getFieldName('username')];
-            $copy .= ' - <a href="'. createURL('bookmarks', $currentUsername .'?action=add&amp;address='. urlencode($row['bAddress']) .'&amp;title='. urlencode($row['bTitle'])). '&amp;description='.urlencode($row['bDescription']). '&amp;tags='.$tagsForCopy  .'">'. T_('Copy') .'</a>';   
-        }
-
-        // Nofollow option
-        $rel = '';
-        if ($GLOBALS['nofollow']) {
-            $rel = ' rel="nofollow"';
-        }
-
-        $address = filter($row['bAddress']);
-        
-        // Redirection option
-        if ($GLOBALS['useredir']) {
-            $address = $GLOBALS['url_redir'] . $address;
-        }
-        
-        // Output
-        echo '<li class="xfolkentry'. $access .'">'."\n";
-       if ($GLOBALS['enableWebsiteThumbnails']) {
-               $thumbnailHash = md5($address.$GLOBALS['thumbnailsUserId'].$GLOBALS['thumbnailsKey']);      
-           echo '<a href="'. $address .'"'. $rel .' ><img class="thumbnail" src="http://www.artviper.net/screenshots/screener.php?url='.$address.'&w=120&sdx=1280&userID='.$GLOBALS['thumbnailsUserId'].'&hash='.$thumbnailHash.'" />  ';
+
+       $sortAmp = (($sortOrder) ? '&amp;'. $sortOrder : '');
+       $sortQue = (($sortOrder) ? '?'. $sortOrder : '');
+
+       // Previous
+       $perpage = getPerPageCount();
+       if (!$page || $page < 2) {
+               $page = 1;
+               $start = 0;
+               $bfirst = '<span class="disable">'. T_('First') .'</span>';
+               $bprev = '<span class="disable">'. T_('Previous') .'</span>';
+       } else {
+               $prev = $page - 1;
+               $prev = 'page='. $prev;
+               $start = ($page - 1) * $perpage;
+               $bfirst= '<a href="'. sprintf($nav_url, $user, $currenttag, '') . $sortQue .'">'. T_('First') .'</a>';
+               $bprev = '<a href="'. sprintf($nav_url, $user, $currenttag, '?') . $prev . $sortAmp .'">'. T_('Previous') .'</a>';
        }
-       echo '<div>';
-
-        echo '<div class="link"><a href="'. $address .'"'. $rel .' class="taggedlink">'. filter($row['bTitle']) ."</a></div>\n";
-        if ($row['bDescription'] == '') {
-            $row['bDescription'] = '-';
-        }
-        echo '<div class="description">'. filter($row['bDescription']) ."</div>\n";
-       if(!isset($hash)) {
-           echo '<div class="address">'.shortenString($address).'</div>';
+
+       // Next
+       $next = $page + 1;
+       $totalpages = ceil($total / $perpage);
+       if (count($bookmarks) < $perpage || $perpage * $page == $total) {
+               $bnext = '<span class="disable">'. T_('Next') .'</span>';
+               $blast = '<span class="disable">'. T_('Last') ."</span>\n";
+       } else {
+               $bnext = '<a href="'. sprintf($nav_url, $user, $currenttag, '?page=') . $next . $sortAmp .'">'. T_('Next') .'</a>';
+               $blast = '<a href="'. sprintf($nav_url, $user, $currenttag, '?page=') . $totalpages . $sortAmp .'">'. T_('Last') ."</a>\n";
        }
 
-        echo '<div class="meta">'. date($GLOBALS['shortdate'], strtotime($row['bDatetime'])) . $cats . $copy . $edit ."</div>\n";
+       // RSS
+       $brss = '';
+       $size = count($rsschannels);
+       for ($i = 0; $i < $size; $i++) {
+               $brss =  '<a style="background:#FFFFFF" href="'. $rsschannels[$i][1] .'" title="'. $rsschannels[$i][0] .'"><img src="'. ROOT .'images/rss.gif" width="16" height="16" alt="'. $rsschannels[$i][0] .'" /></a>';
+       }
 
-       echo '</div>';
+       echo '<p class="paging">'. $bfirst .'<span> / </span>'. $bprev .'<span> / </span>'. $bnext .'<span> / </span>'. $blast .'<span> / </span>'. sprintf(T_('Page %d of %d'), $page, $totalpages) ." ". $brss ." </p>\n";
 
-        echo "</li>\n";
-    }
-    ?>
 
-</ol>
 
-    <?php
-    // PAGINATION
-    
-    // Ordering
-    $sortOrder = '';
-    if (isset($_GET['sort'])) {
-        $sortOrder = 'sort='. $_GET['sort'];
-    }
-    
-    $sortAmp = (($sortOrder) ? '&amp;'. $sortOrder : '');
-    $sortQue = (($sortOrder) ? '?'. $sortOrder : '');
-    
-    // Previous
-    $perpage = getPerPageCount();
-    if (!$page || $page < 2) {
-        $page = 1;
-        $start = 0;
-        $bfirst = '<span class="disable">'. T_('First') .'</span>';
-        $bprev = '<span class="disable">'. T_('Previous') .'</span>';
-    } else {
-        $prev = $page - 1;
-        $prev = 'page='. $prev;
-        $start = ($page - 1) * $perpage;
-        $bfirst= '<a href="'. sprintf($nav_url, $user, $currenttag, '') . $sortQue .'">'. T_('First') .'</a>';
-        $bprev = '<a href="'. sprintf($nav_url, $user, $currenttag, '?') . $prev . $sortAmp .'">'. T_('Previous') .'</a>';
-    }
-    
-    // Next
-    $next = $page + 1;
-    $totalpages = ceil($total / $perpage);
-    if (count($bookmarks) < $perpage || $perpage * $page == $total) {
-        $bnext = '<span class="disable">'. T_('Next') .'</span>';
-        $blast = '<span class="disable">'. T_('Last') ."</span>\n";
-    } else {
-        $bnext = '<a href="'. sprintf($nav_url, $user, $currenttag, '?page=') . $next . $sortAmp .'">'. T_('Next') .'</a>';
-        $blast = '<a href="'. sprintf($nav_url, $user, $currenttag, '?page=') . $totalpages . $sortAmp .'">'. T_('Last') ."</a>\n";
-    }
-
-    // RSS
-    $brss = '';
-    $size = count($rsschannels);
-    for ($i = 0; $i < $size; $i++) {
-        $brss =  '<a style="background:#FFFFFF" href="'. $rsschannels[$i][1] .'" title="'. $rsschannels[$i][0] .'"><img src="'. ROOT .'images/rss.gif" width="16" height="16" alt="'. $rsschannels[$i][0] .'" /></a>'; 
-    }
-
-    echo '<p class="paging">'. $bfirst .'<span> / </span>'. $bprev .'<span> / </span>'. $bnext .'<span> / </span>'. $blast .'<span> / </span>'. sprintf(T_('Page %d of %d'), $page, $totalpages) ." ". $brss ." </p>\n";
-
-
-    
 
 } else {
-    echo '<p class="error">'.T_('No bookmarks available').'</p>';
+       echo '<p class="error">'.T_('No bookmarks available').'</p>';
 }
 $this->includeTemplate('sidebar.tpl');
 $this->includeTemplate($GLOBALS['bottom_include']);