diff options
author | mensonge <mensonge@b3834d28-1941-0410-a4f8-b48e95affb8f> | 2008-11-21 18:45:18 +0000 |
---|---|---|
committer | mensonge <mensonge@b3834d28-1941-0410-a4f8-b48e95affb8f> | 2008-11-21 18:45:18 +0000 |
commit | 9aafe7551eb5a73739709e72465031db7a1531b4 (patch) | |
tree | 27b4251547da17be9a2f20edf210a4db5db82ae4 | |
parent | 49dec692306e307bb6d39321e34044b0bc115284 (diff) | |
download | semanticscuttle-9aafe7551eb5a73739709e72465031db7a1531b4.tar.gz semanticscuttle-9aafe7551eb5a73739709e72465031db7a1531b4.tar.bz2 |
Minor refactoring: introduce user as an object.
git-svn-id: https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/trunk@172 b3834d28-1941-0410-a4f8-b48e95affb8f
-rw-r--r-- | header.inc.php | 1 | ||||
-rw-r--r-- | services/userservice.php | 858 | ||||
-rw-r--r-- | templates/bookmarks.tpl.php | 428 |
3 files changed, 662 insertions, 625 deletions
diff --git a/header.inc.php b/header.inc.php index f26cb68..ccf198b 100644 --- a/header.inc.php +++ b/header.inc.php @@ -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'); diff --git a/services/userservice.php b/services/userservice.php index e611cb8..19e81c6 100644 --- a/services/userservice.php +++ b/services/userservice.php @@ -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 ( ) {
- $query = 'SELECT * FROM '. $this->getTableName();
+ ); + $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 ( ) {
+ $query = 'SELECT * FROM '. $this->getTableName();
- if (! ($dbresult =& $this->db->sql_query($query)) ) {
- message_die(GENERAL_ERROR, 'Could not get users', '', __LINE__, __FILE__, $query, $this->db);
- return false;
- }
+ if (! ($dbresult =& $this->db->sql_query($query)) ) {
+ message_die(GENERAL_ERROR, 'Could not get users', '', __LINE__, __FILE__, $query, $this->db);
+ return false;
+ }
- $rows = array();
+ $rows = array();
- while ( $row = $this->db->sql_fetchrow($dbresult) ) {
- $rows[] = $row;
- }
+ while ( $row = $this->db->sql_fetchrow($dbresult) ) {
+ $rows[] = $row;
+ }
- return $rows;
- }
+ return $rows;
+ }
- function deleteUser($uId) {
- $query = 'DELETE FROM '. $this->getTableName() .' WHERE uId = '. intval($uId);
+ function deleteUser($uId) {
+ $query = 'DELETE FROM '. $this->getTableName() .' WHERE uId = '. intval($uId);
- if (!($dbresult = & $this->db->sql_query($query))) {
- message_die(GENERAL_ERROR, 'Could not delete user', '', __LINE__, __FILE__, $query, $this->db);
- return false;
- }
+ if (!($dbresult = & $this->db->sql_query($query))) {
+ message_die(GENERAL_ERROR, 'Could not delete user', '', __LINE__, __FILE__, $query, $this->db);
+ return false;
+ }
- return true;
- }
- - - 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;
+ }
+ + + 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; + } } ?> diff --git a/templates/bookmarks.tpl.php b/templates/bookmarks.tpl.php index e95f787..475436b 100644 --- a/templates/bookmarks.tpl.php +++ b/templates/bookmarks.tpl.php @@ -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&address='. urlencode($row['bAddress']) .'&title='. urlencode($row['bTitle'])). '&description='.urlencode($row['bDescription']). '&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&address='. urlencode($row['bAddress']) .'&title='. urlencode($row['bTitle'])). '&description='.urlencode($row['bDescription']). '&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) ? '&'. $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) ? '&'. $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']); |