aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--header.inc.php1
-rw-r--r--services/userservice.php858
-rw-r--r--templates/bookmarks.tpl.php428
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&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']);