summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormensonge <mensonge@b3834d28-1941-0410-a4f8-b48e95affb8f>2008-11-25 15:57:29 +0000
committermensonge <mensonge@b3834d28-1941-0410-a4f8-b48e95affb8f>2008-11-25 15:57:29 +0000
commit15b91c7e661d928d8b125ec9cfbda1702319c8b4 (patch)
tree092d474c05e414bb04a8c428b8ff6cb9ccab765d
parent9aafe7551eb5a73739709e72465031db7a1531b4 (diff)
downloadsemanticscuttle-15b91c7e661d928d8b125ec9cfbda1702319c8b4.tar.gz
semanticscuttle-15b91c7e661d928d8b125ec9cfbda1702319c8b4.tar.bz2
Major refactoring: transform user into object, define parameters used into each file, ...
git-svn-id: https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/trunk@173 b3834d28-1941-0410-a4f8-b48e95affb8f
-rw-r--r--about.php2
-rw-r--r--admin.php19
-rw-r--r--ajaxDelete.php9
-rw-r--r--ajaxGetTitle.php5
-rw-r--r--ajaxIsAvailable.php11
-rw-r--r--alltags.php8
-rw-r--r--bookmarkcommondescriptionedit.php92
-rw-r--r--bookmarks.php397
-rw-r--r--constants.inc.php2
-rw-r--r--edit.php59
-rw-r--r--history.php23
-rw-r--r--import.php188
-rw-r--r--importNetscape.php18
-rw-r--r--index.php5
-rw-r--r--login.php29
-rw-r--r--password.php98
-rw-r--r--populartags.php19
-rw-r--r--profile.php63
-rw-r--r--register.php24
-rw-r--r--rss.php136
-rw-r--r--search.inc.php14
-rw-r--r--search.php227
-rw-r--r--services/bookmark2tagservice.php832
-rw-r--r--services/bookmarkservice.php5
-rw-r--r--services/commondescriptionservice.php280
-rw-r--r--services/tag2tagservice.php522
-rw-r--r--services/tagservice.php141
-rw-r--r--services/userservice.php104
-rw-r--r--tag2tagadd.php35
-rw-r--r--tag2tagdelete.php103
-rw-r--r--tag2tagedit.php38
-rw-r--r--tagcommondescriptionedit.php93
-rw-r--r--tagdelete.php23
-rw-r--r--tagedit.php89
-rw-r--r--tagrename.php102
-rw-r--r--tags.php83
-rw-r--r--templates/about.tpl.php13
-rw-r--r--templates/bookmarkcommondescriptionedit.tpl.php7
-rw-r--r--templates/bookmarks.tpl.php20
-rw-r--r--templates/editbookmark.tpl.php8
-rw-r--r--templates/editprofile.tpl.php8
-rw-r--r--templates/profile.tpl.php14
-rw-r--r--templates/sidebar.block.common.php26
-rw-r--r--templates/sidebar.block.popular.php7
-rw-r--r--templates/sidebar.block.recent.php2
-rw-r--r--templates/sidebar.block.related.php7
-rw-r--r--templates/top.inc.php3
-rw-r--r--templates/userlist.tpl.php19
-rw-r--r--users.php9
-rw-r--r--watch.php92
-rw-r--r--watchlist.php34
51 files changed, 2297 insertions, 1870 deletions
diff --git a/about.php b/about.php
index 795d0a6..b8d2fd9 100644
--- a/about.php
+++ b/about.php
@@ -19,6 +19,8 @@
***************************************************************************/
require_once('header.inc.php');
+
+/* Service creation: only useful services are created */
$templateservice =& ServiceFactory::getServiceInstance('TemplateService');
$tplVars = array();
diff --git a/admin.php b/admin.php
index c5563f6..d72d4a0 100644
--- a/admin.php
+++ b/admin.php
@@ -18,7 +18,8 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
***************************************************************************/
require_once('header.inc.php');
-
+
+/* Service creation: only useful services are created */
$userservice = & ServiceFactory :: getServiceInstance('UserService');
$bookmark2tagservice = & ServiceFactory :: getServiceInstance('Bookmark2Tagservice');
$bookmarkservice = & ServiceFactory :: getServiceInstance('BookmarkService');
@@ -27,19 +28,21 @@ $templateservice = & ServiceFactory :: getServiceInstance('TemplateService');
// Header variables
$tplVars['subtitle'] = T_('Manage users');
-$tplVars['loadjs'] = true;
+$tplVars['loadjs'] = true;
+$tplVars['sidebar_blocks'] = array('users' );
if ( !$userservice->isLoggedOn() ) {
header('Location: '. createURL('login', ''));
exit();
}
-$currentUser = $userservice->getCurrentUser();
-$currentUserID = $userservice->getCurrentUserId();
-$currentUsername = $currentUser[$userservice->getFieldName('username')];
+//$currentUser = $userservice->getCurrentUser();
+//$currentUserID = $userservice->getCurrentUserId();
+//$currentUsername = $currentUser[$userservice->getFieldName('username')];
+$currentObjectUser = $userservice->getCurrentObjectUser();
-if ( !$userservice->isAdmin($currentUserID) ) {
- header('Location: '. createURL('bookmarks', $currentUsername));
+if ( !$currentObjectUser->isAdmin() ) {
+ header('Location: '. createURL('bookmarks', $currentObjectUser->getUsername()));
exit();
}
@@ -66,7 +69,7 @@ if ( $action ) {
}
$templatename = 'userlist.tpl';
-$users =& $userservice->getAllUsers();
+$users =& $userservice->getObjectUsers();
if ( !is_array($users) ) {
$users = array();
diff --git a/ajaxDelete.php b/ajaxDelete.php
index ad3efc8..e40dc1a 100644
--- a/ajaxDelete.php
+++ b/ajaxDelete.php
@@ -24,8 +24,15 @@ header('Last-Modified: '. gmdate("D, d M Y H:i:s") .' GMT');
header('Cache-Control: no-cache, must-revalidate');
require_once('header.inc.php');
+/* Service creation: only useful services are created */
$bookmarkservice = & ServiceFactory :: getServiceInstance('BookmarkService');
-$bookmark = intval($_GET['id']);
+
+/* Managing all possible inputs */
+isset($_GET['id']) ? define('GET_ID', $_GET['id']): define('GET_ID', '');
+
+
+
+$bookmark = intval(GET_ID);
if (!$bookmarkservice->editAllowed($bookmark)) {
$result = T_('You are not allowed to delete this bookmark');
} elseif ($bookmarkservice->deleteBookmark($bookmark)) {
diff --git a/ajaxGetTitle.php b/ajaxGetTitle.php
index d440802..2bec47c 100644
--- a/ajaxGetTitle.php
+++ b/ajaxGetTitle.php
@@ -25,6 +25,9 @@ header("Cache-Control: no-cache, must-revalidate");
require_once('header.inc.php');
+/* Managing all possible inputs */
+isset($_GET['url']) ? define('GET_URL', $_GET['url']): define('GET_URL', '');
+
function getTitle($url) {
$fd = @fopen($url, 'r');
if ($fd) {
@@ -65,6 +68,6 @@ echo '<?xml version="1.0" encoding="utf-8"?>';
getTitle
</method>
<result>
-<?php echo getTitle($_GET['url']); ?>
+<?php echo getTitle(GET_URL); ?>
</result>
</response>
diff --git a/ajaxIsAvailable.php b/ajaxIsAvailable.php
index 80883c6..e9d82e7 100644
--- a/ajaxIsAvailable.php
+++ b/ajaxIsAvailable.php
@@ -24,11 +24,18 @@ header("Last-Modified: ". gmdate("D, d M Y H:i:s") ." GMT");
header("Cache-Control: no-cache, must-revalidate");
require_once('header.inc.php');
+
+/* Service creation: only useful services are created */
$userservice = & ServiceFactory :: getServiceInstance('UserService');
-if ($userservice->isReserved($_GET['username'])) {
+
+/* Managing all possible inputs */
+isset($_GET['username']) ? define('GET_USERNAME', $_GET['username']): define('GET_USERNAME', '');
+
+
+if ($userservice->isReserved(GET_USERNAME)) {
$result = 'false';
} else {
- $result = $userservice->getUserByUsername($_GET['username']) ? 'false' : 'true';
+ $result = $userservice->getUserByUsername(GET_USERNAME) ? 'false' : 'true';
}
?>
<response>
diff --git a/alltags.php b/alltags.php
index f2520a0..61ad345 100644
--- a/alltags.php
+++ b/alltags.php
@@ -20,11 +20,15 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
***************************************************************************/
require_once('header.inc.php');
+
+/* Service creation: only useful services are created */
$templateservice =& ServiceFactory::getServiceInstance('TemplateService');
$b2tservice =& ServiceFactory::getServiceInstance('Bookmark2TagService');
$userservice =& ServiceFactory::getServiceInstance('UserService');
$cacheservice =& ServiceFactory::getServiceInstance('CacheService');
+
+
list($url, $user) = explode('/', $_SERVER['PATH_INFO']);
if (!$user) {
header('Location: '. createURL('populartags'));
@@ -51,8 +55,8 @@ if (isset($user) && $user != '') {
if (is_int($user)) {
$userid = intval($user);
} else {
- if ($userinfo = $userservice->getUserByUsername($user)) {
- $userid =& $userinfo[$userservice->getFieldName('primary')];
+ if ($userinfo = $userservice->getObjectUserByUsername($user)) {
+ $userid = $userinfo->getId();
} else {
$tplVars['error'] = sprintf(T_('User with username %s was not found'), $user);
$templateservice->loadTemplate('error.404.tpl', $tplVars);
diff --git a/bookmarkcommondescriptionedit.php b/bookmarkcommondescriptionedit.php
index c70dac0..1ac316e 100644
--- a/bookmarkcommondescriptionedit.php
+++ b/bookmarkcommondescriptionedit.php
@@ -1,64 +1,76 @@
<?php
/***************************************************************************
-Copyright (C) 2006 - 2007 Scuttle project
-http://sourceforge.net/projects/scuttle/
-http://scuttle.org/
+ Copyright (C) 2006 - 2007 Scuttle project
+ http://sourceforge.net/projects/scuttle/
+ http://scuttle.org/
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-***************************************************************************/
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ ***************************************************************************/
require_once('header.inc.php');
+
+/* Service creation: only useful services are created */
$bookmarkservice = & ServiceFactory :: getServiceInstance('BookmarkService');
$templateservice = & ServiceFactory :: getServiceInstance('TemplateService');
$userservice = & ServiceFactory :: getServiceInstance('UserService');
$cdservice = & ServiceFactory :: getServiceInstance('CommonDescriptionService');
+/* Managing all possible inputs */
+isset($_POST['confirm']) ? define('POST_CONFIRM', $_POST['confirm']): define('POST_CONFIRM', '');
+isset($_POST['cancel']) ? define('POST_CANCEL', $_POST['cancel']): define('POST_CANCEL', '');
+isset($_POST['hash']) ? define('POST_HASH', $_POST['hash']): define('POST_HASH', '');
+isset($_POST['title']) ? define('POST_TITLE', $_POST['title']): define('POST_TITLE', '');
+isset($_POST['description']) ? define('POST_DESCRIPTION', $_POST['description']): define('POST_DESCRIPTION', '');
+isset($_POST['referrer']) ? define('POST_REFERRER', $_POST['referrer']): define('POST_REFERRER', '');
+
+
+
list ($url, $hash) = explode('/', $_SERVER['PATH_INFO']);
$template = 'bookmarkcommondescriptionedit.tpl';
-$logged_on_user = $userservice->getCurrentUser();
+//$logged_on_user = $userservice->getCurrentUser();
+$currentObjectUser = $userservice->getCurrentObjectUser();
//permissions
-if($logged_on_user == null) {
- $tplVars['error'] = T_('Permission denied.');
- $templateservice->loadTemplate('error.500.tpl', $tplVars);
- exit();
+if(is_null($currentObjectUser)) {
+ $tplVars['error'] = T_('Permission denied.');
+ $templateservice->loadTemplate('error.500.tpl', $tplVars);
+ exit();
}
-if ($_POST['confirm']) {
-
- if (strlen($hash)>0 &&
- $cdservice->addBookmarkDescription($_POST['hash'], stripslashes($_POST['title']), stripslashes($_POST['description']), $logged_on_user['uId'], time())
- ) {
- $tplVars['msg'] = T_('Bookmark common description updated');
- header('Location: '. $_POST['referrer']);
- } else {
- $tplVars['error'] = T_('Failed to update the bookmark common description');
- $template = 'error.500.tpl';
- }
-} elseif ($_POST['cancel']) {
- $logged_on_user = $userservice->getCurrentUser();
- header('Location: '. $_POST['referrer']);
+if (POST_CONFIRM) {
+ if (strlen($hash)>0 &&
+ $cdservice->addBookmarkDescription(POST_HASH, stripslashes(POST_TITLE), stripslashes(POST_DESCRIPTION), $currentObjectUser->getId(), time())
+ ) {
+ $tplVars['msg'] = T_('Bookmark common description updated');
+ header('Location: '. POST_REFERRER);
+ } else {
+ $tplVars['error'] = T_('Failed to update the bookmark common description');
+ $template = 'error.500.tpl';
+ }
+} elseif (POST_CANCEL) {
+ $logged_on_user = $userservice->getCurrentUser();
+ header('Location: '. POST_REFERRER);
} else {
- $bkm = $bookmarkservice->getBookmarkByHash($hash);
+ $bkm = $bookmarkservice->getBookmarkByHash($hash);
- $tplVars['subtitle'] = T_('Edit Bookmark Common Description') .': '. $bkm['bAddress'];
- $tplVars['formaction'] = $_SERVER['SCRIPT_NAME'] .'/'. $hash;
- $tplVars['referrer'] = $_SERVER['HTTP_REFERER'];
- $tplVars['hash'] = $hash;
- $tplVars['description'] = $cdservice->getLastBookmarkDescription($hash);
+ $tplVars['subtitle'] = T_('Edit Bookmark Common Description') .': '. $bkm['bAddress'];
+ $tplVars['formaction'] = $_SERVER['SCRIPT_NAME'] .'/'. $hash;
+ $tplVars['referrer'] = $_SERVER['HTTP_REFERER'];
+ $tplVars['hash'] = $hash;
+ $tplVars['description'] = $cdservice->getLastBookmarkDescription($hash);
}
$templateservice->loadTemplate($template, $tplVars);
?>
diff --git a/bookmarks.php b/bookmarks.php
index 232249f..f222202 100644
--- a/bookmarks.php
+++ b/bookmarks.php
@@ -1,26 +1,27 @@
<?php
/***************************************************************************
-Copyright (C) 2004 - 2006 Scuttle project
-http://sourceforge.net/projects/scuttle/
-http://scuttle.org/
+ Copyright (C) 2004 - 2006 Scuttle project
+ http://sourceforge.net/projects/scuttle/
+ http://scuttle.org/
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-***************************************************************************/
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ ***************************************************************************/
require_once('header.inc.php');
+/* Service creation: only useful services are created */
$bookmarkservice =& ServiceFactory::getServiceInstance('BookmarkService');
$templateservice =& ServiceFactory::getServiceInstance('TemplateService');
$userservice =& ServiceFactory::getServiceInstance('UserService');
@@ -28,59 +29,85 @@ $cacheservice =& ServiceFactory::getServiceInstance('CacheService');
$tplVars = array();
-if (isset($_GET['action']) && ($_GET['action'] == "add") && !$userservice->isLoggedOn()) {
- $loginqry = str_replace("'", '%27', stripslashes($_SERVER['QUERY_STRING']));
- header('Location: '. createURL('login', '?'. $loginqry));
- exit();
-}
+/* Managing all possible inputs */
+isset($_GET['action']) ? define('GET_ACTION', $_GET['action']): define('GET_ACTION', '');
+isset($_POST['submitted']) ? define('POST_SUBMITTED', $_POST['submitted']): define('POST_SUBMITTED', '');
+
+isset($_GET['title']) ? define('GET_TITLE', $_GET['title']): define('GET_TITLE', '');
+isset($_GET['address']) ? define('GET_ADDRESS', $_GET['address']): define('GET_ADDRESS', '');
+isset($_GET['description']) ? define('GET_DESCRIPTION', $_GET['description']): define('GET_DESCRIPTION', '');
+isset($_GET['tags']) ? define('GET_TAGS', $_GET['tags']): define('GET_TAGS', '');
+
+isset($_POST['title']) ? define('POST_TITLE', $_POST['title']): define('POST_TITLE', '');
+isset($_POST['address']) ? define('POST_ADDRESS', $_POST['address']): define('POST_ADDRESS', '');
+isset($_POST['description']) ? define('POST_DESCRIPTION', $_POST['description']): define('POST_DESCRIPTION', '');
+isset($_POST['status']) ? define('POST_STATUS', $_POST['status']): define('POST_STATUS', '');
+isset($_POST['tags']) ? define('POST_TAGS', $_POST['tags']): define('POST_TAGS', '');
+
+isset($_GET['popup']) ? define('GET_POPUP', $_GET['popup']): define('GET_POPUP', '');
+isset($_POST['popup']) ? define('POST_POPUP', $_POST['popup']): define('POST_POPUP', '');
+
+isset($_GET['page']) ? define('GET_PAGE', $_GET['page']): define('GET_PAGE', 0);
+isset($_GET['sort']) ? define('GET_SORT', $_GET['sort']): define('GET_SORT', '');
-@list($url, $user, $cat) = isset($_SERVER['PATH_INFO']) ? explode('/', $_SERVER['PATH_INFO']) : NULL;
-$loggedon = false;
+
+if ((GET_ACTION == "add") && !$userservice->isLoggedOn()) {
+ $loginqry = str_replace("'", '%27', stripslashes($_SERVER['QUERY_STRING']));
+ header('Location: '. createURL('login', '?'. $loginqry));
+ exit();
+}
+
if ($userservice->isLoggedOn()) {
- $loggedon = true;
- $currentUser = $userservice->getCurrentUser();
- $currentUserID = $userservice->getCurrentUserId();
- $currentUsername = $currentUser[$userservice->getFieldName('username')];
+ //$currentUser = $userservice->getCurrentUser();
+ //$currentUserID = $userservice->getCurrentUserId();
+ //$currentUsername = $currentUser[$userservice->getFieldName('username')];
+ $currentObjectUser = $userservice->getCurrentObjectUser();
+ $currentUserID = $currentObjectUser->getId();
+ $currentUsername = $currentObjectUser->getUsername();
}
+
+@list($url, $user, $cat) = isset($_SERVER['PATH_INFO']) ? explode('/', $_SERVER['PATH_INFO']) : NULL;
+
+
$endcache = false;
if ($usecache) {
- // Generate hash for caching on
- $hash = md5($_SERVER['REQUEST_URI'] . $user);
-
- // Don't cache if its users' own bookmarks
- if ($loggedon) {
- if ($currentUsername != $user) {
- // Cache for 5 minutes
- $cacheservice->Start($hash);
- $endcache = true;
- }
- } else {
- // Cache for 30 minutes
- $cacheservice->Start($hash, 1800);
- $endcache = true;
- }
+ // Generate hash for caching on
+ $hash = md5($_SERVER['REQUEST_URI'] . $user);
+
+ // Don't cache if its users' own bookmarks
+ if ($userservice->isLoggedOn()) {
+ if ($currentUsername != $user) {
+ // Cache for 5 minutes
+ $cacheservice->Start($hash);
+ $endcache = true;
+ }
+ } else {
+ // Cache for 30 minutes
+ $cacheservice->Start($hash, 1800);
+ $endcache = true;
+ }
}
$pagetitle = $rssCat = $catTitle = '';
if ($user) {
- if (is_int($user)) {
- $userid = intval($user);
- } else {
- if (!($userinfo = $userservice->getUserByUsername($user))) {
- $tplVars['error'] = sprintf(T_('User with username %s was not found'), $user);
- $templateservice->loadTemplate('error.404.tpl', $tplVars);
- exit();
- } else {
- $userid =& $userinfo['uId'];
- }
- }
- $pagetitle .= ': '. $user;
+ if (is_int($user)) {
+ $userid = intval($user);
+ } else {
+ if (!($userinfo = $userservice->getUserByUsername($user))) {
+ $tplVars['error'] = sprintf(T_('User with username %s was not found'), $user);
+ $templateservice->loadTemplate('error.404.tpl', $tplVars);
+ exit();
+ } else {
+ $userid =& $userinfo['uId'];
+ }
+ }
+ $pagetitle .= ': '. $user;
}
if ($cat) {
- $catTitle = ': '. str_replace('+', ' + ', $cat);
- $pagetitle .= $catTitle;
+ $catTitle = ': '. str_replace('+', ' + ', $cat);
+ $pagetitle .= $catTitle;
}
$pagetitle = substr($pagetitle, 2);
@@ -90,137 +117,139 @@ $tplVars['loadjs'] = true;
// ADD A BOOKMARK
$saved = false;
$templatename = 'bookmarks.tpl';
-if ($loggedon && isset($_POST['submitted'])) {
- if (!$_POST['title'] || !$_POST['address']) {
- $tplVars['error'] = T_('Your bookmark must have a title and an address');
- $templatename = 'editbookmark.tpl';
- } else {
- $address = trim($_POST['address']);
- // If the bookmark exists already, edit the original
- if ($bookmarkservice->bookmarkExists($address, $currentUserID)) {
- $bookmark =& $bookmarkservice->getBookmarkByAddress($address);
- header('Location: '. createURL('edit', $bookmark['bId']));
- exit();
- // If it's new, save it
- } else {
- $title = trim($_POST['title']);
- $description = trim($_POST['description']);
- $status = intval($_POST['status']);
- $categories = trim($_POST['tags']);
- $saved = true;
- if ($bookmarkservice->addBookmark($address, $title, $description, $status, $categories)) {
- if (isset($_POST['popup'])) {
- $tplVars['msg'] = '<script type="text/javascript">window.close();</script>';
- } else {
- $tplVars['msg'] = T_('Bookmark saved');
- // Redirection option
- if ($GLOBALS['useredir']) {
- $address = $GLOBALS['url_redir'] . $address;
- }
- //header('Location: '. $address); // not useful
- }
- } else {
- $tplVars['error'] = T_('There was an error saving your bookmark. Please try again or contact the administrator.');
- $templatename = 'editbookmark.tpl';
- $saved = false;
- }
- }
- }
+if ($userservice->isLoggedOn() && POST_SUBMITTED != '') {
+ if (!POST_TITLE || !POST_ADDRESS) {
+ $tplVars['error'] = T_('Your bookmark must have a title and an address');
+ $templatename = 'editbookmark.tpl';
+ } else {
+ $address = trim(POST_ADDRESS);
+ // If the bookmark exists already, edit the original
+ if ($bookmarkservice->bookmarkExists($address, $currentUserID)) {
+ $bookmark =& $bookmarkservice->getBookmarkByAddress($address);
+ header('Location: '. createURL('edit', $bookmark['bId']));
+ exit();
+ // If it's new, save it
+ } else {
+ $title = trim(POST_TITLE);
+ $description = trim(POST_DESCRIPTION);
+ $status = intval(POST_STATUS);
+ $categories = trim(POST_TAGS);
+ $saved = true;
+ if ($bookmarkservice->addBookmark($address, $title, $description, $status, $categories)) {
+ if (POST_POPUP != '') {
+ $tplVars['msg'] = '<script type="text/javascript">window.close();</script>';
+ } else {
+ $tplVars['msg'] = T_('Bookmark saved');
+ // Redirection option
+ if ($GLOBALS['useredir']) {
+ $address = $GLOBALS['url_redir'] . $address;
+ }
+ //header('Location: '. $address); // not useful
+ }
+ } else {
+ $tplVars['error'] = T_('There was an error saving your bookmark. Please try again or contact the administrator.');
+ $templatename = 'editbookmark.tpl';
+ $saved = false;
+ }
+ }
+ }
}
-if (isset($_GET['action']) && ($_GET['action'] == "add")) {
- // If the bookmark exists already, edit the original
- if ($bookmarkservice->bookmarkExists(stripslashes($_GET['address']), $currentUserID)) {
- $bookmark =& $bookmarkservice->getBookmarks(0, NULL, $currentUserID, NULL, NULL, NULL, NULL, NULL, NULL, md5(stripslashes($_GET['address'])));
- $popup = (isset($_GET['popup'])) ? '?popup=1' : '';
- header('Location: '. createURL('edit', $bookmark['bookmarks'][0]['bId'] . $popup));
- exit();
- }
- $templatename = 'editbookmark.tpl';
+if (GET_ACTION == "add") {
+ // If the bookmark exists already, edit the original
+ if ($bookmarkservice->bookmarkExists(stripslashes(GET_ADDRESS), $currentUserID)) {
+ $bookmark =& $bookmarkservice->getBookmarks(0, NULL, $currentUserID, NULL, NULL, NULL, NULL, NULL, NULL, md5(stripslashes(GET_ADDRESS)));
+ $popup = (GET_POPUP!='') ? '?popup=1' : '';
+ header('Location: '. createURL('edit', $bookmark['bookmarks'][0]['bId'] . $popup));
+ exit();
+ }
+ $templatename = 'editbookmark.tpl';
}
-
+
if ($templatename == 'editbookmark.tpl') {
- if ($loggedon) {
- $tplVars['formaction'] = createURL('bookmarks', $currentUsername);
- if (isset($_POST['submitted'])) {
- $tplVars['row'] = array(
- 'bTitle' => stripslashes($_POST['title']),
- 'bAddress' => stripslashes($_POST['address']),
- 'bDescription' => stripslashes($_POST['description']),
- 'tags' => ($_POST['tags'] ? explode(',', stripslashes($_POST['tags'])) : array())
- );
- $tplVars['tags'] = $_POST['tags'];
- } else {
- $tplVars['row'] = array(
- 'bTitle' => stripslashes($_GET['title']),
- 'bAddress' => stripslashes($_GET['address']),
- 'bDescription' => stripslashes($_GET['description']),
- 'tags' => ($_GET['tags'] ? explode(',', stripslashes($_GET['tags'])) : array())
- );
- }
- $title = T_('Add a Bookmark');
- $tplVars['pagetitle'] = $title;
- $tplVars['subtitle'] = $title;
- $tplVars['btnsubmit'] = T_('Add Bookmark');
- $tplVars['popup'] = (isset($_GET['popup'])) ? $_GET['popup'] : null;
- } else {
- $tplVars['error'] = T_('You must be logged in before you can add bookmarks.');
- }
-} else if ($user && !isset($_GET['popup'])) {
-
- $tplVars['sidebar_blocks'] = array('profile', 'watchstatus');
-
- if (!$cat) {
- $cat = NULL;
- $tplVars['currenttag'] = NULL;
- $tplVars['sidebar_blocks'][] = 'menu';
- } else {
- $rssCat = '/'. filter($cat, 'url');
- $tplVars['currenttag'] = $cat;
- $tplVars['sidebar_blocks'][] = 'tagactions';
- $tplVars['sidebar_blocks'][] = 'linked';
- $tplVars['sidebar_blocks'][] = 'related';
- $tplVars['sidebar_blocks'][] = 'menu';
- }
- $tplVars['popCount'] = 30;
- $tplVars['sidebar_blocks'][] = 'popular';
-
- $tplVars['userid'] = $userid;
- $tplVars['userinfo'] =& $userinfo;
- $tplVars['user'] = $user;
- $tplVars['range'] = 'user';
-
- // Pagination
- $perpage = getPerPageCount();
- if (isset($_GET['page']) && intval($_GET['page']) > 1) {
- $page = $_GET['page'];
- $start = ($page - 1) * $perpage;
- } else {
- $page = 0;
- $start = 0;
- }
-
- // Set template vars
- $tplVars['rsschannels'] = array(
- array(filter($sitename .': '. $pagetitle), createURL('rss', filter($user, 'url') . $rssCat.'?sort='.getSortOrder()))
- );
-
- $tplVars['page'] = $page;
- $tplVars['start'] = $start;
- $tplVars['bookmarkCount'] = $start + 1;
-
- $bookmarks =& $bookmarkservice->getBookmarks($start, $perpage, $userid, $cat, null, getSortOrder());
- $tplVars['total'] = $bookmarks['total'];
- $tplVars['bookmarks'] =& $bookmarks['bookmarks'];
- $tplVars['cat_url'] = createURL('bookmarks', '%s/%s');
- $tplVars['nav_url'] = createURL('bookmarks', '%s/%s%s');
- if ($userservice->isLoggedOn() && $user == $currentUsername) {
- $title = T_('My Bookmarks') . filter($catTitle);
- } else {
- $title = filter($pagetitle);
- }
- $tplVars['pagetitle'] = $title;
- $tplVars['subtitle'] = $title;
+ if ($userservice->isLoggedOn()) {
+ $tplVars['formaction'] = createURL('bookmarks', $currentUsername);
+ if (POST_SUBMITTED != '') {
+ $tplVars['row'] = array(
+ 'bTitle' => stripslashes(POST_TITLE),
+ 'bAddress' => stripslashes(POST_ADDRESS),
+ 'bDescription' => stripslashes(POST_DESCRIPTION),
+ 'tags' => (POST_TAGS ? explode(',', stripslashes(POST_TAGS)) : array()),
+ 'bStatus' => 0,
+ );
+ $tplVars['tags'] = POST_TAGS;
+ } else {
+ $tplVars['row'] = array(
+ 'bTitle' => stripslashes(GET_TITLE),
+ 'bAddress' => stripslashes(GET_ADDRESS),
+ 'bDescription' => stripslashes(GET_DESCRIPTION),
+ 'tags' => (GET_TAGS ? explode(',', stripslashes(GET_TAGS)) : array()),
+ 'bStatus' => 0
+ );
+ }
+ $title = T_('Add a Bookmark');
+ $tplVars['pagetitle'] = $title;
+ $tplVars['subtitle'] = $title;
+ $tplVars['btnsubmit'] = T_('Add Bookmark');
+ $tplVars['popup'] = (GET_POPUP!='') ? GET_POPUP : null;
+ } else {
+ $tplVars['error'] = T_('You must be logged in before you can add bookmarks.');
+ }
+} else if ($user && GET_POPUP == '') {
+
+ $tplVars['sidebar_blocks'] = array('profile', 'watchstatus');
+
+ if (!$cat) {
+ $cat = NULL;
+ $tplVars['currenttag'] = NULL;
+ $tplVars['sidebar_blocks'][] = 'menu';
+ } else {
+ $rssCat = '/'. filter($cat, 'url');
+ $tplVars['currenttag'] = $cat;
+ $tplVars['sidebar_blocks'][] = 'tagactions';
+ $tplVars['sidebar_blocks'][] = 'linked';
+ $tplVars['sidebar_blocks'][] = 'related';
+ $tplVars['sidebar_blocks'][] = 'menu';
+ }
+ $tplVars['popCount'] = 30;
+ $tplVars['sidebar_blocks'][] = 'popular';
+
+ $tplVars['userid'] = $userid;
+ $tplVars['userinfo'] =& $userinfo;
+ $tplVars['user'] = $user;
+ $tplVars['range'] = 'user';
+
+ // Pagination
+ $perpage = getPerPageCount();
+ if (intval(GET_PAGE) > 1) {
+ $page = GET_PAGE;
+ $start = ($page - 1) * $perpage;
+ } else {
+ $page = 0;
+ $start = 0;
+ }
+
+ // Set template vars
+ $tplVars['rsschannels'] = array(
+ array(filter($sitename .': '. $pagetitle), createURL('rss', filter($user, 'url') . $rssCat.'?sort='.getSortOrder()))
+ );
+
+ $tplVars['page'] = $page;
+ $tplVars['start'] = $start;
+ $tplVars['bookmarkCount'] = $start + 1;
+
+ $bookmarks =& $bookmarkservice->getBookmarks($start, $perpage, $userid, $cat, null, getSortOrder());
+ $tplVars['total'] = $bookmarks['total'];
+ $tplVars['bookmarks'] =& $bookmarks['bookmarks'];
+ $tplVars['cat_url'] = createURL('bookmarks', '%s/%s');
+ $tplVars['nav_url'] = createURL('bookmarks', '%s/%s%s');
+ if ($userservice->isLoggedOn() && $user == $currentUsername) {
+ $title = T_('My Bookmarks') . filter($catTitle);
+ } else {
+ $title = filter($pagetitle);
+ }
+ $tplVars['pagetitle'] = $title;
+ $tplVars['subtitle'] = $title;
}
$tplVars['summarizeLinkedTags'] = true;
@@ -229,7 +258,7 @@ $tplVars['pageName'] = PAGE_BOOKMARKS;
$templateservice->loadTemplate($templatename, $tplVars);
if ($usecache && $endcache) {
- // Cache output if existing copy has expired
- $cacheservice->End($hash);
+ // Cache output if existing copy has expired
+ $cacheservice->End($hash);
}
?>
diff --git a/constants.inc.php b/constants.inc.php
index e779852..23dcc4a 100644
--- a/constants.inc.php
+++ b/constants.inc.php
@@ -1,6 +1,6 @@
<?php
/*
- * Define constants use in all the application.
+ * Define constants used in all the application.
* Some constants are based on variables from configuration file.
*/
diff --git a/edit.php b/edit.php
index 94af87c..3984c7d 100644
--- a/edit.php
+++ b/edit.php
@@ -21,10 +21,29 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
require_once('header.inc.php');
+/* Service creation: only useful services are created */
$bookmarkservice = & ServiceFactory :: getServiceInstance('BookmarkService');
$templateservice = & ServiceFactory :: getServiceInstance('TemplateService');
$userservice = & ServiceFactory :: getServiceInstance('UserService');
+/* Managing all possible inputs */
+isset($_POST['submitted']) ? define('POST_SUBMITTED', $_POST['submitted']): define('POST_SUBMITTED', '');
+isset($_POST['delete']) ? define('POST_DELETE', $_POST['delete']): define('POST_DELETE', '');
+
+isset($_POST['title']) ? define('POST_TITLE', $_POST['title']): define('POST_TITLE', '');
+isset($_POST['address']) ? define('POST_ADDRESS', $_POST['address']): define('POST_ADDRESS', '');
+isset($_POST['description']) ? define('POST_DESCRIPTION', $_POST['description']): define('POST_DESCRIPTION', '');
+isset($_POST['status']) ? define('POST_STATUS', $_POST['status']): define('POST_STATUS', '');
+isset($_POST['tags']) ? define('POST_TAGS', $_POST['tags']): define('POST_TAGS', '');
+
+isset($_GET['popup']) ? define('GET_POPUP', $_GET['popup']): define('GET_POPUP', '');
+isset($_POST['popup']) ? define('POST_POPUP', $_POST['popup']): define('POST_POPUP', '');
+isset($_POST['referrer']) ? define('POST_REFERRER', $_POST['referrer']): define('POST_REFERRER', '');
+
+/* Managing current logged user */
+$currentObjectUser = $userservice->getCurrentObjectUser();
+
+
// Header variables
$tplVars['subtitle'] = T_('Edit Bookmark');
$tplVars['loadjs'] = true;
@@ -39,39 +58,41 @@ if (!($row = $bookmarkservice->getBookmark(intval($bookmark), true))) {
$tplVars['error'] = T_('You are not allowed to edit this bookmark');
$templateservice->loadTemplate('error.500.tpl', $tplVars);
exit();
- } else if ($_POST['submitted']) {
- if (!$_POST['title'] || !$_POST['address']) {
+ } else if (POST_SUBMITTED != '') {
+ if (!POST_TITLE || !POST_ADDRESS) {
$tplVars['error'] = T_('Your bookmark must have a title and an address');
} else {
// Update bookmark
$bId = intval($bookmark);
- $address = trim($_POST['address']);
- $title = trim($_POST['title']);
- $description = trim($_POST['description']);
- $status = intval($_POST['status']);
- $tags = trim($_POST['tags']);
- $logged_on_user = $userservice->getCurrentUser();
+ $address = trim(POST_ADDRESS);
+ $title = trim(POST_TITLE);
+ $description = trim(POST_DESCRIPTION);
+ $status = intval(POST_STATUS);
+ $tags = trim(POST_TAGS);
+
if (!$bookmarkservice->updateBookmark($bId, $address, $title, $description, $status, $tags)) {
$tplvars['error'] = T_('Error while saving your bookmark');
} else {
- if (isset($_POST['popup'])) {
- $tplVars['msg'] = (isset($_POST['popup'])) ? '<script type="text/javascript">window.close();</script>' : T_('Bookmark saved');
- } elseif (isset($_POST['referrer'])) {
- header('Location: '. $_POST['referrer']);
+ if (POST_POPUP != '') {
+ //$tplVars['msg'] = (POST_POPUP != '') ? '<script type="text/javascript">window.close();</script>' : T_('Bookmark saved');
+ $tplVars['msg'] = '<script type="text/javascript">window.close();</script>';
+ } elseif (POST_REFERRER != '') {
+ $tplVars['msg'] = T_('Bookmark saved');
+ header('Location: '. POST_REFERRER);
} else {
- header('Location: '. createURL('bookmarks', $logged_on_user[$userservice->getFieldName('username')]));
+ $tplVars['msg'] = T_('Bookmark saved');
+ header('Location: '. createURL('bookmarks', $currentObjectUser->getUsername()));
}
}
}
} else {
- if ($_POST['delete']) {
+ if (POST_DELETE != '') {
// Delete bookmark
if ($bookmarkservice->deleteBookmark($bookmark)) {
- $logged_on_user = $userservice->getCurrentUser();
- if (isset($_POST['referrer'])) {
- header('Location: '. $_POST['referrer']);
+ if (POST_REFERRER != '') {
+ header('Location: '. POST_REFERRER);
} else {
- header('Location: '. createURL('bookmarks', $logged_on_user[$userservice->getFieldName('username')]));
+ header('Location: '. createURL('bookmarks', $currentObjectUser->getUsername()));
}
exit();
} else {
@@ -82,7 +103,7 @@ if (!($row = $bookmarkservice->getBookmark(intval($bookmark), true))) {
}
}
- $tplVars['popup'] = (isset($_GET['popup'])) ? $_GET['popup'] : null;
+ $tplVars['popup'] = (GET_POPUP) ? GET_POPUP : null;
$tplVars['row'] =& $row;
$tplVars['formaction'] = createURL('edit', $bookmark);
$tplVars['btnsubmit'] = T_('Save Changes');
diff --git a/history.php b/history.php
index f7ae927..e66973c 100644
--- a/history.php
+++ b/history.php
@@ -21,27 +21,34 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
require_once('header.inc.php');
+/* Service creation: only useful services are created */
$bookmarkservice =& ServiceFactory::getServiceInstance('BookmarkService');
$templateservice =& ServiceFactory::getServiceInstance('TemplateService');
$userservice =& ServiceFactory::getServiceInstance('UserService');
$cacheservice =& ServiceFactory::getServiceInstance('CacheService');
+/* Managing all possible inputs */
+isset($_GET['page']) ? define('GET_PAGE', $_GET['page']): define('GET_PAGE', 0);
+isset($_GET['sort']) ? define('GET_SORT', $_GET['sort']): define('GET_SORT', '');
+
$tplVars = array();
@list($url, $hash) = isset($_SERVER['PATH_INFO']) ? explode('/', $_SERVER['PATH_INFO']) : NULL;
-$loggedon = false;
+$currentObjectUser = $userservice->getCurrentObjectUser();
+
+/*$loggedon = false;
if ($userservice->isLoggedOn()) {
$loggedon = true;
$currentUser = $userservice->getCurrentUser();
$currentUsername = $currentUser[$userservice->getFieldName('username')];
-}
+}*/
if ($usecache) {
// Generate hash for caching on
$hashtext = $_SERVER['REQUEST_URI'];
if ($userservice->isLoggedOn()) {
- $hashtext .= $currentUsername;
+ $hashtext .= $currentObjectUser->getUsername();
}
$cachehash = md5($hashtext);
@@ -51,8 +58,8 @@ if ($usecache) {
// Pagination
$perpage = getPerPageCount();
-if (isset($_GET['page']) && intval($_GET['page']) > 1) {
- $page = $_GET['page'];
+if (intval(GET_PAGE) > 1) {
+ $page = GET_PAGE;
$start = ($page - 1) * $perpage;
} else {
$page = 0;
@@ -76,6 +83,12 @@ if ($bookmark =& $bookmarkservice->getBookmarkByHash($hash)) {
//$tplVars['cat_url'] = createURL('tags', '%2$s');
$tplVars['cat_url'] = createURL('bookmarks', '%1$s/%2$s');
$tplVars['nav_url'] = createURL('history', $hash .'/%3$s');
+ $tplVars['rsschannels'] = array();
+ if($userservice->isLoggedOn()) {
+ $tplVars['user'] = $currentObjectUser->getUsername();
+ } else {
+ $tplVars['user'] = '';
+ }
$templateservice->loadTemplate('bookmarks.tpl', $tplVars);
} else {
// Throw a 404 error
diff --git a/import.php b/import.php
index f25b439..8d051c8 100644
--- a/import.php
+++ b/import.php
@@ -1,109 +1,121 @@
<?
/***************************************************************************
-Copyright (C) 2004 - 2006 Scuttle project
-http://sourceforge.net/projects/scuttle/
-http://scuttle.org/
+ Copyright (C) 2004 - 2006 Scuttle project
+ http://sourceforge.net/projects/scuttle/
+ http://scuttle.org/
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-***************************************************************************/
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ ***************************************************************************/
require_once('header.inc.php');
+
+/* Service creation: only useful services are created */
$userservice =& ServiceFactory::getServiceInstance('UserService');
$templateservice =& ServiceFactory::getServiceInstance('TemplateService');
+
+
+/* Managing all possible inputs */
+// First input is $_FILES
+// Other inputs
+isset($_POST['status']) ? define('POST_STATUS', $_POST['status']): define('POST_STATUS', '');
+
+
$tplVars = array();
if ($userservice->isLoggedOn() && sizeof($_FILES) > 0 && $_FILES['userfile']['size'] > 0) {
- $userinfo = $userservice->getCurrentUser();
-
- if (isset($_POST['status']) && is_numeric($_POST['status'])) {
- $status = intval($_POST['status']);
- } else {
- $status = 2;
- }
-
- $depth = array();
- $xml_parser = xml_parser_create();
- xml_set_element_handler($xml_parser, "startElement", "endElement");
-
- if (!($fp = fopen($_FILES['userfile']['tmp_name'], "r")))
- die(T_("Could not open XML input"));
-
- while ($data = fread($fp, 4096)) {
- if (!xml_parse($xml_parser, $data, feof($fp))) {
- die(sprintf(T_("XML error: %s at line %d"),
- xml_error_string(xml_get_error_code($xml_parser)),
- xml_get_current_line_number($xml_parser)));
- }
- }
- xml_parser_free($xml_parser);
- header('Location: '. createURL('bookmarks', $userinfo[$userservice->getFieldName('username')]));
+ $userinfo = $userservice->getCurrentObjectUser();
+
+ if (is_numeric(POST_STATUS)) {
+ $status = intval(POST_STATUS);
+ } else {
+ $status = 2;
+ }
+
+ $depth = array();
+ $xml_parser = xml_parser_create();
+ xml_set_element_handler($xml_parser, "startElement", "endElement");
+
+ if (!($fp = fopen($_FILES['userfile']['tmp_name'], "r")))
+ die(T_("Could not open XML input"));
+
+ while ($data = fread($fp, 4096)) {
+ if (!xml_parse($xml_parser, $data, feof($fp))) {
+ die(sprintf(T_("XML error: %s at line %d"),
+ xml_error_string(xml_get_error_code($xml_parser)),
+ xml_get_current_line_number($xml_parser)));
+ }
+ }
+ xml_parser_free($xml_parser);
+ header('Location: '. createURL('bookmarks', $userinfo->getUsername()));
} else {
- $templatename = 'importDelicious.tpl';
- $tplVars['subtitle'] = T_('Import Bookmarks from del.icio.us');
- $tplVars['formaction'] = createURL('import');
- $templateservice->loadTemplate($templatename, $tplVars);
+ $templatename = 'importDelicious.tpl';
+ $tplVars['subtitle'] = T_('Import Bookmarks from del.icio.us');
+ $tplVars['formaction'] = createURL('import');
+ $templateservice->loadTemplate($templatename, $tplVars);
}
+
+
function startElement($parser, $name, $attrs) {
- global $depth, $status, $tplVars, $userservice;
-
- $bookmarkservice =& ServiceFactory::getServiceInstance('BookmarkService');
- $userservice =& ServiceFactory::getServiceInstance('UserService');
-
- if ($name == 'POST') {
- while(list($attrTitle, $attrVal) = each($attrs)) {
- switch ($attrTitle) {
- case 'HREF':
- $bAddress = $attrVal;
- break;
- case 'DESCRIPTION':
- $bTitle = $attrVal;
- break;
- case 'EXTENDED':
- $bDescription = $attrVal;
- break;
- case 'TIME':
- $bDatetime = $attrVal;
- break;
- case 'TAG':
- $tags = strtolower($attrVal);
- break;
- }
- }
- if ($bookmarkservice->bookmarkExists($bAddress, $userservice->getCurrentUserId())) {
- $tplVars['error'] = T_('You have already submitted this bookmark.');
- } else {
- // Strangely, PHP can't work out full ISO 8601 dates, so we have to chop off the Z.
- $bDatetime = substr($bDatetime, 0, -1);
-
- // If bookmark claims to be from the future, set it to be now instead
- if (strtotime($bDatetime) > time()) {
- $bDatetime = gmdate('Y-m-d H:i:s');
- }
-
- if ($bookmarkservice->addBookmark($bAddress, $bTitle, $bDescription, $status, $tags, $bDatetime, true, true))
- $tplVars['msg'] = T_('Bookmark imported.');
- else
- $tplVars['error'] = T_('There was an error saving your bookmark. Please try again or contact the administrator.');
- }
- }
- $depth[$parser]++;
+ global $depth, $status, $tplVars, $userservice;
+
+ $bookmarkservice =& ServiceFactory::getServiceInstance('BookmarkService');
+ $userservice =& ServiceFactory::getServiceInstance('UserService');
+
+ if ($name == 'POST') {
+ while(list($attrTitle, $attrVal) = each($attrs)) {
+ switch ($attrTitle) {
+ case 'HREF':
+ $bAddress = $attrVal;
+ break;
+ case 'DESCRIPTION':
+ $bTitle = $attrVal;
+ break;
+ case 'EXTENDED':
+ $bDescription = $attrVal;
+ break;
+ case 'TIME':
+ $bDatetime = $attrVal;
+ break;
+ case 'TAG':
+ $tags = strtolower($attrVal);
+ break;
+ }
+ }
+ if ($bookmarkservice->bookmarkExists($bAddress, $userservice->getCurrentUserId())) {
+ $tplVars['error'] = T_('You have already submitted this bookmark.');
+ } else {
+ // Strangely, PHP can't work out full ISO 8601 dates, so we have to chop off the Z.
+ $bDatetime = substr($bDatetime, 0, -1);
+
+ // If bookmark claims to be from the future, set it to be now instead
+ if (strtotime($bDatetime) > time()) {
+ $bDatetime = gmdate('Y-m-d H:i:s');
+ }
+
+ if ($bookmarkservice->addBookmark($bAddress, $bTitle, $bDescription, $status, $tags, $bDatetime, true, true))
+ $tplVars['msg'] = T_('Bookmark imported.');
+ else
+ $tplVars['error'] = T_('There was an error saving your bookmark. Please try again or contact the administrator.');
+ }
+ }
+ $depth[$parser]++;
}
function endElement($parser, $name) {
- global $depth;
- $depth[$parser]--;
+ global $depth;
+ $depth[$parser]--;
}
?>
diff --git a/importNetscape.php b/importNetscape.php
index 97f458f..f4cf653 100644
--- a/importNetscape.php
+++ b/importNetscape.php
@@ -20,16 +20,26 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
***************************************************************************/
require_once('header.inc.php');
+
+/* Service creation: only useful services are created */
$bookmarkservice =& ServiceFactory::getServiceInstance('BookmarkService');
$userservice =& ServiceFactory::getServiceInstance('UserService');
$templateservice =& ServiceFactory::getServiceInstance('TemplateService');
+
+
+/* Managing all possible inputs */
+// First input is $_FILES
+// Other inputs
+isset($_POST['status']) ? define('POST_STATUS', $_POST['status']): define('POST_STATUS', '');
+
+
$tplVars = array();
if ($userservice->isLoggedOn() && sizeof($_FILES) > 0 && $_FILES['userfile']['size'] > 0) {
- $userinfo = $userservice->getCurrentUser();
+ $userinfo = $userservice->getCurrentObjectUser();
- if (isset($_POST['status']) && is_numeric($_POST['status'])) {
- $status = intval($_POST['status']);
+ if (is_numeric(POST_STATUS)) {
+ $status = intval(POST_STATUS);
} else {
$status = 2;
}
@@ -79,7 +89,7 @@ if ($userservice->isLoggedOn() && sizeof($_FILES) > 0 && $_FILES['userfile']['si
}
}
}
- header('Location: '. createURL('bookmarks', $userinfo[$userservice->getFieldName('username')]));
+ header('Location: '. createURL('bookmarks', $userinfo->getUsername()));
} else {
$templatename = 'importNetscape.tpl';
$tplVars['subtitle'] = T_('Import Bookmarks from Browser File');
diff --git a/index.php b/index.php
index a72f1f9..030f06e 100644
--- a/index.php
+++ b/index.php
@@ -28,11 +28,10 @@ $templateservice =& ServiceFactory::getServiceInstance('TemplateService');
$userservice =& ServiceFactory::getServiceInstance('UserService');
$cacheservice =& ServiceFactory::getServiceInstance('CacheService');
-/* Managing possible inputs */
+/* Managing all possible inputs */
isset($_GET['action']) ? define('GET_ACTION', $_GET['action']): define('GET_ACTION', '');
isset($_GET['page']) ? define('GET_PAGE', $_GET['page']): define('GET_PAGE', 0);
isset($_GET['sort']) ? define('GET_SORT', $_GET['sort']): define('GET_SORT', '');
-//isset($_GET['popup']) ? define('GET_POPUP', $_GET['popup']): define('GET_SORT', '');
// Logout action
@@ -91,6 +90,8 @@ $tplVars['cat_url'] = createURL('bookmarks', '%1$s/%2$s');
$tplVars['nav_url'] = createURL('index', '%3$s');
$tplVars['summarizeLinkedTags'] = true;
$tplVars['pageName'] = PAGE_INDEX;
+$tplVars['user'] = '';
+$tplVars['currenttag'] = '';
$templateservice->loadTemplate('bookmarks.tpl', $tplVars);
diff --git a/login.php b/login.php
index f09996e..b1b9fcb 100644
--- a/login.php
+++ b/login.php
@@ -20,20 +20,32 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
***************************************************************************/
require_once('header.inc.php');
+
+
+/* Service creation: only useful services are created */
$userservice =& ServiceFactory::getServiceInstance('UserService');
$templateservice =& ServiceFactory::getServiceInstance('TemplateService');
+
+/* Managing all possible inputs */
+isset($_POST['keeppass']) ? define('POST_KEEPPASS', $_POST['keeppass']): define('POST_KEEPPASS', '');
+isset($_POST['submitted']) ? define('POST_SUBMITTED', $_POST['submitted']): define('POST_SUBMITTED', '');
+isset($_POST['username']) ? define('POST_USERNAME', $_POST['username']): define('POST_USERNAME', '');
+isset($_POST['password']) ? define('POST_PASSWORD', $_POST['password']): define('POST_PASSWORD', '');
+isset($_POST['query']) ? define('POST_QUERY', $_POST['query']): define('POST_QUERY', '');
+
+
$tplVars = array();
-$keeppass = isset($_POST['keeppass'])&&($_POST['keeppass']=='yes')?true:false;
+$keeppass = (POST_KEEPPASS=='yes')?true:false;
$login = false;
-if (isset($_POST['submitted']) && isset($_POST['username']) && isset($_POST['password'])) {
- $posteduser = trim(utf8_strtolower($_POST['username']));
- $login = $userservice->login($posteduser, $_POST['password'], $keeppass);
+if (POST_SUBMITTED!='' && POST_USERNAME!='' && POST_PASSWORD!='') {
+ $posteduser = trim(utf8_strtolower(POST_USERNAME));
+ $login = $userservice->login($posteduser, POST_PASSWORD, $keeppass);
if ($login) {
- if ($_POST['query'])
- header('Location: '. createURL('bookmarks', $posteduser .'?'. $_POST['query']));
+ if (POST_QUERY)
+ header('Location: '. createURL('bookmarks', $posteduser .'?'. POST_QUERY));
else
header('Location: '. createURL('bookmarks', $posteduser));
} else {
@@ -42,9 +54,8 @@ if (isset($_POST['submitted']) && isset($_POST['username']) && isset($_POST['pas
}
if (!$login) {
if ($userservice->isLoggedOn()) {
- $cUser = $userservice->getCurrentUser();
- $cUsername = strtolower($cUser[$userservice->getFieldName('username')]);
- header('Location: '. createURL('bookmarks', $cUsername));
+ $cUser = $userservice->getCurrentObjectUser();
+ header('Location: '. createURL('bookmarks', strtolower($cUser->getUsername())));
}
$tplVars['subtitle'] = T_('Log In');
diff --git a/password.php b/password.php
index 1763fd2..e3a8721 100644
--- a/password.php
+++ b/password.php
@@ -1,68 +1,78 @@
<?
/***************************************************************************
-Copyright (C) 2005 Scuttle project
-https://sourceforge.net/projects/scuttle/
+ Copyright (C) 2005 Scuttle project
+ https://sourceforge.net/projects/scuttle/
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-***************************************************************************/
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ ***************************************************************************/
require_once('header.inc.php');
+
+/* Service creation: only useful services are created */
$userservice =& ServiceFactory::getServiceInstance('UserService');
$templateservice =& ServiceFactory::getServiceInstance('TemplateService');
+
+/* Managing all possible inputs */
+isset($_POST['submitted']) ? define('POST_SUBMITTED', $_POST['submitted']): define('POST_SUBMITTED', '');
+isset($_POST['username']) ? define('POST_USERNAME', $_POST['username']): define('POST_USERNAME', '');
+isset($_POST['email']) ? define('POST_EMAIL', $_POST['email']): define('POST_EMAIL', '');
+
+
$tplVars = array();
// IF SUBMITTED
-if (isset($_POST['submitted'])) {
+if (POST_SUBMITTED != '') {
- // NO USERNAME
- if (!$_POST['username']) {
- $tplVars['error'] = T_('You must enter your username.');
+ // NO USERNAME
+ if (!POST_USERNAME) {
+ $tplVars['error'] = T_('You must enter your username.');
- // NO E-MAIL
- } elseif (!$_POST['email']) {
- $tplVars['error'] = T_('You must enter your <abbr title="electronic mail">e-mail</abbr> address.');
+ // NO E-MAIL
+ } elseif (!POST_EMAIL) {
+ $tplVars['error'] = T_('You must enter your <abbr title="electronic mail">e-mail</abbr> address.');
- // USERNAME AND E-MAIL
- } else {
+ // USERNAME AND E-MAIL
+ } else {
- // NO MATCH
- if (!($userinfo = $userservice->getUserByUsername($_POST['username']))) {
- $tplVars['error'] = T_('No matches found for that username.');
+ // NO MATCH
+ $userinfo = $userservice->getObjectUserByUsername(POST_USERNAME);
+ if ($userinfo == '') {
+ $tplVars['error'] = T_('No matches found for that username.');
- } elseif ($_POST['email'] != $userinfo['email']) {
- $tplVars['error'] = T_('No matches found for that combination of username and <abbr title="electronic mail">e-mail</abbr> address.');
+ } elseif (POST_EMAIL != $userinfo->getEmail()) {
+ $tplVars['error'] = T_('No matches found for that combination of username and <abbr title="electronic mail">e-mail</abbr> address.');
- // MATCH
- } else {
+ // MATCH
+ } else {
- // GENERATE AND STORE PASSWORD
- $password = $userservice->generatePassword($userinfo['uId']);
- if (!($password = $userservice->generatePassword($userinfo['uId']))) {
- $tplVars['error'] = T_('There was an error while generating your new password. Please try again.');
+ // GENERATE AND STORE PASSWORD
+ $password = $userservice->generatePassword($userinfo->getId());
+ if (!($password = $userservice->generatePassword($userinfo->getId()))) {
+ $tplVars['error'] = T_('There was an error while generating your new password. Please try again.');
- } else {
- // SEND E-MAIL
- $message = T_('Your new password is:') ."\n". $password ."\n\n". T_('To keep your bookmarks secure, you should change this password in your profile the next time you log in.');
- $message = wordwrap($message, 70);
- $headers = 'From: '. $adminemail;
- $mail = mail($_POST['email'], sprintf(T_('%s Account Information'), $sitename), $message);
+ } else {
+ // SEND E-MAIL
+ $message = T_('Your new password is:') ."\n". $password ."\n\n". T_('To keep your bookmarks secure, you should change this password in your profile the next time you log in.');
+ $message = wordwrap($message, 70);
+ $headers = 'From: '. $adminemail;
+ $mail = mail(POST_EMAIL, sprintf(T_('%s Account Information'), $sitename), $message);
- $tplVars['msg'] = sprintf(T_('New password generated and sent to %s'), $_POST['email']);
- }
- }
- }
+ $tplVars['msg'] = sprintf(T_('New password generated and sent to %s'), POST_EMAIL);
+ }
+ }
+ }
}
$templatename = 'password.tpl';
diff --git a/populartags.php b/populartags.php
index 1b99ca2..80ed0ed 100644
--- a/populartags.php
+++ b/populartags.php
@@ -20,21 +20,25 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
***************************************************************************/
require_once('header.inc.php');
+
+/* Service creation: only useful services are created */
$templateservice =& ServiceFactory::getServiceInstance('TemplateService');
$b2tservice =& ServiceFactory::getServiceInstance('Bookmark2TagService');
$userservice =& ServiceFactory::getServiceInstance('UserService');
$cacheservice =& ServiceFactory::getServiceInstance('CacheService');
+/* Managing current logged user */
+$currentObjectUser = $userservice->getCurrentObjectUser();
+
+
list($url, $user) = explode('/', $_SERVER['PATH_INFO']);
if ($usecache) {
// Generate hash for caching on
$hashtext = $_SERVER['REQUEST_URI'];
if ($userservice->isLoggedOn()) {
- $hashtext .= $userservice->getCurrentUserID();
- $currentUser = $userservice->getCurrentUser();
- $currentUsername = $currentUser[$userservice->getFieldName('username')];
- if ($currentUsername == $user) {
+ $hashtext .= $currentObjectUser->getId();
+ if ($currentObjectUser->getUsername() == $user) {
$hashtext .= $user;
}
}
@@ -52,8 +56,9 @@ if (isset($user) && $user != '') {
if (is_int($user)) {
$userid = intval($user);
} else {
- if ($userinfo = $userservice->getUserByUsername($user)) {
- $userid =& $userinfo[$userservice->getFieldName('primary')];
+ $userinfo = $userservice->getObjectUserByUsername($user);
+ if ($userinfo != '') {
+ $userid = $userinfo->getId();
} else {
$tplVars['error'] = sprintf(T_('User with username %s was not found'), $user);
$templateservice->loadTemplate('error.404.tpl', $tplVars);
@@ -77,8 +82,8 @@ if (isset($userid)) {
}
$tplVars['sidebar_blocks'] = array('linked');
-
$tplVars['subtitle'] = $pagetitle;
+
$templateservice->loadTemplate('tags.tpl', $tplVars);
if ($usecache) {
diff --git a/profile.php b/profile.php
index 1ad92ba..df5ae7e 100644
--- a/profile.php
+++ b/profile.php
@@ -20,32 +20,45 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
***************************************************************************/
require_once('header.inc.php');
+
+/* Service creation: only useful services are created */
$templateservice =& ServiceFactory::getServiceInstance('TemplateService');
$userservice =& ServiceFactory::getServiceInstance('UserService');
+/* Managing all possible inputs */
+isset($_POST['submitted']) ? define('POST_SUBMITTED', $_POST['submitted']): define('POST_SUBMITTED', '');
+isset($_POST['pPass']) ? define('POST_PASS', $_POST['pPass']): define('POST_PASS', '');
+isset($_POST['pPassConf']) ? define('POST_PASSCONF', $_POST['pPassConf']): define('POST_PASSCONF', '');
+isset($_POST['pName']) ? define('POST_NAME', $_POST['pName']): define('POST_NAME', '');
+isset($_POST['pMail']) ? define('POST_MAIL', $_POST['pMail']): define('POST_MAIL', '');
+isset($_POST['pPage']) ? define('POST_PAGE', $_POST['pPage']): define('POST_PAGE', '');
+isset($_POST['pDesc']) ? define('POST_DESC', $_POST['pDesc']): define('POST_DESC', '');
+
+isset($_POST['token']) ? define('POST_TOKEN', $_POST['token']): define('POST_TOKEN', '');
+isset($_SESSION['token']) ? define('SESSION_TOKEN', $_SESSION['token']): define('SESSION_TOKEN', '');
+isset($_SESSION['token_stamp']) ? define('SESSION_TOKENSTAMP', $_SESSION['token_stamp']): define('SESSION_TOKENSTAMP', '');
+
+
+/* Managing current logged user */
+$currentObjectUser = $userservice->getCurrentObjectUser();
+
+
$tplVars = array();
@list($url, $user) = isset($_SERVER['PATH_INFO']) ? explode('/', $_SERVER['PATH_INFO']) : NULL;
-$loggedon = false;
-if ($userservice->isLoggedOn()) {
- $loggedon = true;
- $currentUser = $userservice->getCurrentUser();
- $currentUserID = $userservice->getCurrentUserId();
- $currentUsername = $currentUser[$userservice->getFieldName('username')];
-}
-
if ($user) {
if (is_int($user)) {
$userid = intval($user);
} else {
$user = urldecode($user);
- if (!($userinfo = $userservice->getUserByUsername($user))) {
+ $userinfo = $userservice->getObjectUserByUsername($user);
+ if ($userinfo == '') {
$tplVars['error'] = sprintf(T_('User with username %s was not found'), $user);
$templateservice->loadTemplate('error.404.tpl', $tplVars);
exit();
} else {
- $userid =& $userinfo['uId'];
+ $userid =& $userinfo->getId();
}
}
} else {
@@ -54,7 +67,7 @@ if ($user) {
exit();
}
-if ($user == $currentUsername) {
+if ($userservice->isLoggedOn() && $user == $currentObjectUser->getUsername()) {
$title = T_('My Profile');
} else {
$title = T_('Profile') .': '. $user;
@@ -65,19 +78,19 @@ $tplVars['subtitle'] = $title;
$tplVars['user'] = $user;
$tplVars['userid'] = $userid;
-if (isset($_POST['submitted']) && $currentUserID == $userid) {
+if (POST_SUBMITTED!='' && $currentObjectUser->getId() == $userid) {
$error = false;
- $detPass = trim($_POST['pPass']);
- $detPassConf = trim($_POST['pPassConf']);
- $detName = trim($_POST['pName']);
- $detMail = trim($_POST['pMail']);
- $detPage = trim($_POST['pPage']);
- $detDesc = filter($_POST['pDesc']);
+ $detPass = trim(POST_PASS);
+ $detPassConf = trim(POST_PASSCONF);
+ $detName = trim(POST_NAME);
+ $detMail = trim(POST_MAIL);
+ $detPage = trim(POST_PAGE);
+ $detDesc = filter(POST_DESC);
- // manage token preventing from CSRF vulnaribilities
- if ( !isset($_SESSION['token'], $_SESSION['token_stamp'])
- || time() - $_SESSION['token_stamp'] > 600 //limit token lifetime, optionnal
- || $_SESSION['token'] != $_POST['token']) {
+ // manage token preventing from CSRF vulnaribilities
+ if ( SESSION_TOKEN == ''
+ || time() - SESSION_TOKENSTAMP > 600 //limit token lifetime, optionnal
+ || SESSION_TOKEN != POST_TOKEN) {
$error = true;
$tplVars['error'] = T_('Invalid Token');
}
@@ -101,10 +114,10 @@ if (isset($_POST['submitted']) && $currentUserID == $userid) {
$tplVars['msg'] = T_('Changes saved.');
}
}
- $userinfo = $userservice->getUserByUsername($user);
+ $userinfo = $userservice->getObjectUserByUsername($user);
}
-if ($currentUserID != $userid) {
+if (!$userservice->isLoggedOn() || $currentObjectUser->getId() != $userid) {
$templatename = 'profile.tpl.php';
} else {
//Token Init
@@ -117,6 +130,6 @@ if ($currentUserID != $userid) {
}
-$tplVars['row'] = $userinfo;
+$tplVars['objectUser'] = $userinfo;
$templateservice->loadTemplate($templatename, $tplVars);
?>
diff --git a/register.php b/register.php
index b70d724..aeaa18f 100644
--- a/register.php
+++ b/register.php
@@ -20,16 +20,26 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
***************************************************************************/
require_once('header.inc.php');
+
+/* Service creation: only useful services are created */
$userservice =& ServiceFactory::getServiceInstance('UserService');
$templateservice =& ServiceFactory::getServiceInstance('TemplateService');
+/* Managing all possible inputs */
+isset($_POST['submitted']) ? define('POST_SUBMITTED', $_POST['submitted']): define('POST_SUBMITTED', '');
+isset($_POST['username']) ? define('POST_USERNAME', $_POST['username']): define('POST_USERNAME', '');
+isset($_POST['password']) ? define('POST_PASS', $_POST['password']): define('POST_PASS', '');
+isset($_POST['email']) ? define('POST_MAIL', $_POST['email']): define('POST_MAIL', '');
+isset($_POST['antispamAnswer']) ? define('POST_ANTISPAMANSWER', $_POST['antispamAnswer']): define('POST_ANTISPAMANSWER', '');
+
+
$tplVars = array();
-if (isset($_POST['submitted'])) {
- $posteduser = trim(utf8_strtolower($_POST['username']));
+if (POST_SUBMITTED != '') {
+ $posteduser = trim(utf8_strtolower(POST_USERNAME));
// Check if form is incomplete
- if (!($posteduser) || !($_POST['password']) || !($_POST['email'])) {
+ if (!($posteduser) || POST_PASS == '' || POST_MAIL == '') {
$tplVars['error'] = T_('You <em>must</em> enter a username, password and e-mail address.');
// Check if username is reserved
@@ -45,17 +55,17 @@ if (isset($_POST['submitted'])) {
$tplVars['error'] = T_('This username is not valid (too long, forbidden characters...), please make another choice.');
// Check if e-mail address is valid
- } elseif (!$userservice->isValidEmail($_POST['email'])) {
+ } elseif (!$userservice->isValidEmail(POST_MAIL)) {
$tplVars['error'] = T_('E-mail address is not valid. Please try again.');
// Check if antispam answer is valid
- } elseif (strcmp($_POST['antispamAnswer'], $GLOBALS['antispamAnswer']) != 0) {
+ } elseif (strcmp(POST_ANTISPAMANSWER, $GLOBALS['antispamAnswer']) != 0) {
$tplVars['error'] = T_('Antispam answer is not valid. Please try again.');
// Register details
- } elseif ($userservice->addUser($posteduser, $_POST['password'], $_POST['email'])) {
+ } elseif ($userservice->addUser($posteduser, POST_PASS, POST_MAIL)) {
// Log in with new username
- $login = $userservice->login($posteduser, $_POST['password']);
+ $login = $userservice->login($posteduser, POST_PASS);
if ($login) {
header('Location: '. createURL('bookmarks', $posteduser));
}
diff --git a/rss.php b/rss.php
index 476a28d..08b4567 100644
--- a/rss.php
+++ b/rss.php
@@ -1,77 +1,88 @@
<?php
/***************************************************************************
-Copyright (C) 2004 - 2006 Scuttle project
-http://sourceforge.net/projects/scuttle/
-http://scuttle.org/
+ Copyright (C) 2004 - 2006 Scuttle project
+ http://sourceforge.net/projects/scuttle/
+ http://scuttle.org/
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-***************************************************************************/
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ ***************************************************************************/
require_once('header.inc.php');
+
+/* Service creation: only useful services are created */
$bookmarkservice =& ServiceFactory::getServiceInstance('BookmarkService');
$cacheservice =& ServiceFactory::getServiceInstance('CacheService');
$templateservice =& ServiceFactory::getServiceInstance('TemplateService');
$userservice =& ServiceFactory::getServiceInstance('UserService');
+
+
$tplVars = array();
header('Content-Type: application/xml');
-list($url, $user, $cat) = explode('/', $_SERVER['PATH_INFO']);
+if(isset($_SERVER['PATH_INFO']) && strlen($_SERVER['PATH_INFO']) >1) {
+ list($url, $user, $cat) = explode('/', $_SERVER['PATH_INFO']);
+} else {
+ $url = '';
+ $user = '';
+ $cat = NULL;
+}
if ($usecache) {
- // Generate hash for caching on
- $hashtext = $_SERVER['REQUEST_URI'];
- if ($userservice->isLoggedOn()) {
- $hashtext .= $userservice->getCurrentUserID();
- $currentUser = $userservice->getCurrentUser();
- $currentUsername = $currentUser[$userservice->getFieldName('username')];
- if ($currentUsername == $user) {
- $hashtext .= $user;
- }
- }
- $hash = md5($hashtext);
-
- // Cache for an hour
- $cacheservice->Start($hash, 3600);
+ // Generate hash for caching on
+ $hashtext = $_SERVER['REQUEST_URI'];
+ if ($userservice->isLoggedOn()) {
+ $hashtext .= $userservice->getCurrentUserID();
+ $currentUser = $userservice->getCurrentUser();
+ $currentUsername = $currentUser[$userservice->getFieldName('username')];
+ if ($currentUsername == $user) {
+ $hashtext .= $user;
+ }
+ }
+ $hash = md5($hashtext);
+
+ // Cache for an hour
+ $cacheservice->Start($hash, 3600);
}
$watchlist = null;
+$pagetitle = '';
if ($user && $user != 'all') {
- if ($user == 'watchlist') {
- $user = $cat;
- $cat = null;
- $watchlist = true;
- }
- if (is_int($user)) {
- $userid = intval($user);
- } else {
- if ($userinfo = $userservice->getUserByUsername($user)) {
- $userid =& $userinfo[$userservice->getFieldName('primary')];
- } else {
- $tplVars['error'] = sprintf(T_('User with username %s was not found'), $user);
- $templateservice->loadTemplate('error.404.tpl', $tplVars);
- //throw a 404 error
- exit();
- }
- }
- $pagetitle .= ": ". $user;
+ if ($user == 'watchlist') {
+ $user = $cat;
+ $cat = null;
+ $watchlist = true;
+ }
+ if (is_int($user)) {
+ $userid = intval($user);
+ } else {
+ if ($userinfo = $userservice->getUserByUsername($user)) {
+ $userid =& $userinfo[$userservice->getFieldName('primary')];
+ } else {
+ $tplVars['error'] = sprintf(T_('User with username %s was not found'), $user);
+ $templateservice->loadTemplate('error.404.tpl', $tplVars);
+ //throw a 404 error
+ exit();
+ }
+ }
+ $pagetitle .= ": ". $user;
} else {
- $userid = NULL;
+ $userid = NULL;
}
if ($cat) {
- $pagetitle .= ": ". str_replace('+', ' + ', $cat);
+ $pagetitle .= ": ". str_replace('+', ' + ', $cat);
}
$tplVars['feedtitle'] = filter($GLOBALS['sitename'] . (isset($pagetitle) ? $pagetitle : ''));
@@ -79,28 +90,29 @@ $tplVars['feedlink'] = ROOT;
$tplVars['feeddescription'] = sprintf(T_('Recent bookmarks posted to %s'), $GLOBALS['sitename']);
$bookmarks =& $bookmarkservice->getBookmarks(0, 15, $userid, $cat, NULL, getSortOrder(), $watchlist);
+
$bookmarks_tmp =& filter($bookmarks['bookmarks']);
$bookmarks_tpl = array();
foreach(array_keys($bookmarks_tmp) as $key) {
- $row =& $bookmarks_tmp[$key];
+ $row =& $bookmarks_tmp[$key];
- $_link = $row['bAddress'];
- // Redirection option
- if ($GLOBALS['useredir']) {
- $_link = $GLOBALS['url_redir'] . $_link;
- }
- $_pubdate = gmdate("r", strtotime($row['bDatetime']));
- // array_walk($row['tags'], 'filter');
+ $_link = $row['bAddress'];
+ // Redirection option
+ if ($GLOBALS['useredir']) {
+ $_link = $GLOBALS['url_redir'] . $_link;
+ }
+ $_pubdate = gmdate("r", strtotime($row['bDatetime']));
+ // array_walk($row['tags'], 'filter');
- $bookmarks_tpl[] = array(
+ $bookmarks_tpl[] = array(
'title' => $row['bTitle'],
'link' => $_link,
'description' => $row['bDescription'],
'creator' => $row['username'],
'pubdate' => $_pubdate,
'tags' => $row['tags']
- );
+ );
}
unset($bookmarks_tmp);
unset($bookmarks);
@@ -109,7 +121,7 @@ $tplVars['bookmarks'] =& $bookmarks_tpl;
$templateservice->loadTemplate('rss.tpl', $tplVars);
if ($usecache) {
- // Cache output if existing copy has expired
- $cacheservice->End($hash);
+ // Cache output if existing copy has expired
+ $cacheservice->End($hash);
}
?>
diff --git a/search.inc.php b/search.inc.php
index 832a70c..d3ebe4c 100644
--- a/search.inc.php
+++ b/search.inc.php
@@ -1,5 +1,7 @@
<?php
-/* Manage input */
+
+
+/* Managing all possible inputs */
$select_watchlist = isset($select_watchlist)?$select_watchlist:'';
$select_all = isset($select_all)?$select_all:'';
?>
@@ -9,13 +11,11 @@ $select_all = isset($select_all)?$select_all:'';
<table>
<tr>
<?php
- $logged_on = false;
if ($userservice->isLoggedOn()) {
- $currentUser = $userservice->getCurrentUser();
- $currentUsername = $currentUser[$userservice->getFieldName('username')];
- $logged_on = true;
+ $currentUser = $userservice->getCurrentObjectUser();
+ $currentUsername = $currentUser->getUsername();
}
- if ($logged_on || isset($user)) {
+ if ($userservice->isLoggedOn() || isset($user)) {
?>
<td><?php echo T_('Search' /* Search ... for */); ?></td>
<td>
@@ -26,7 +26,7 @@ $select_all = isset($select_all)?$select_all:'';
<option value="<?php echo $user ?>"<?php //echo $selectUser; ?>><?php echo T_("this user's bookmarks"); ?></option>
<?php
}
- if ($logged_on) {
+ if ($userservice->isLoggedOn()) {
?>
<option value="<?php echo $currentUsername; ?>"<?php //echo $selectMy; ?>><?php echo T_('my bookmarks'); ?></option>
<option value="watchlist"<?php echo $select_watchlist; ?>><?php echo T_('my watchlist'); ?></option>
diff --git a/search.php b/search.php
index 6e002bb..ff3729e 100644
--- a/search.php
+++ b/search.php
@@ -1,117 +1,136 @@
<?php
/***************************************************************************
-Copyright (C) 2005 - 2006 Scuttle project
-http://sourceforge.net/projects/scuttle/
-http://scuttle.org/
+ Copyright (C) 2005 - 2006 Scuttle project
+ http://sourceforge.net/projects/scuttle/
+ http://scuttle.org/
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-***************************************************************************/
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ ***************************************************************************/
require_once('header.inc.php');
+/* Managing all possible inputs */
+isset($_POST['terms']) ? define('POST_TERMS', $_POST['terms']): define('POST_TERMS', '');
+isset($_POST['range']) ? define('POST_RANGE', $_POST['range']): define('POST_RANGE', '');
+isset($_GET['page']) ? define('GET_PAGE', $_GET['page']): define('GET_PAGE', 0);
+isset($_GET['sort']) ? define('GET_SORT', $_GET['sort']): define('GET_SORT', '');
+
+
// POST
-if (isset($_POST['terms'])) {
- // Redirect to GET
- header('Location: '. createURL('search', $_POST['range'] .'/'. filter($_POST['terms'], 'url')));
+if (POST_TERMS != '') {
+ // Redirect to GET
+ header('Location: '. createURL('search', POST_RANGE .'/'. filter(POST_TERMS, 'url')));
-// GET
+ // GET
} else {
- $bookmarkservice =& ServiceFactory::getServiceInstance('BookmarkService');
- $templateservice =& ServiceFactory::getServiceInstance('TemplateService');
- $userservice =& ServiceFactory::getServiceInstance('UserService');
- $searchhistoryservice =& ServiceFactory::getServiceInstance('SearchHistoryService');
-
- $logged_on_userid = $userservice->getCurrentUserId();
- list($url, $range, $terms, $page) = explode('/', $_SERVER['PATH_INFO']);
-
- $tplvars = array();
- $tplVars['loadjs'] = true;
-
- // Pagination
- $perpage = getPerPageCount();
- if (isset($_GET['page']) && intval($_GET['page']) > 1) {
- $page = $_GET['page'];
- $start = ($page - 1) * $perpage;
- } else {
- $page = 0;
- $start = 0;
- }
-
- $s_user = NULL;
- $s_start = NULL;
- $s_end = NULL;
- $s_watchlist = NULL;
-
- // No search terms
- if (is_null($terms)) {
- $tplVars['subtitle'] = T_('Search Bookmarks');
- $s_start = date('Y-m-d H:i:s', strtotime($dtend .' -'. $defaultRecentDays .' days'));
- $s_end = date('Y-m-d H:i:s', strtotime('tomorrow'));
-
- // Search terms
- } else {
- $tplVars['subtitle'] = T_('Search Results');
- $selected = ' selected="selected"';
-
- switch ($range) {
- case 'all':
- $tplVars['select_all'] = $selected;
- $s_user = NULL;
- break;
- case 'watchlist':
- $tplVars['select_watchlist'] = $selected;
- $s_user = $logged_on_userid;
- $s_watchlist = true;
- break;
- default:
- $s_user = $range;
- break;
- }
-
- if (isset($s_user)) {
- if (is_numeric($s_user)) {
- $s_user = intval($s_user);
- } else {
- if (!($userinfo = $userservice->getUserByUsername($s_user) ) ) {
- $tplVars['error'] = sprintf(T_('User with username %s was not found'), $s_user);
- $templateservice->loadTemplate('error.404.tpl', $tplVars);
- exit();
- } else {
- $s_user =& $userinfo[$userservice->getFieldName('primary')];
- }
- }
- }
- }
- $bookmarks =& $bookmarkservice->getBookmarks($start, $perpage, $s_user, NULL, $terms, getSortOrder(), $s_watchlist, $s_start, $s_end);
-
- // Save search
- $searchhistoryservice->addSearch($terms, $range, $bookmarks['total'], $logged_on_userid);
-
- $tplVars['page'] = $page;
- $tplVars['start'] = $start;
- $tplVars['popCount'] = 25;
- $tplVars['sidebar_blocks'] = array('search', 'recent');
- $tplVars['range'] = $range;
- $tplVars['terms'] = $terms;
- $tplVars['pagetitle'] = T_('Search Bookmarks');
- $tplVars['bookmarkCount'] = $start + 1;
- $tplVars['total'] = $bookmarks['total'];
- $tplVars['bookmarks'] =& $bookmarks['bookmarks'];
- $tplVars['cat_url'] = createURL('tags', '%2$s');
- $tplVars['nav_url'] = createURL('search', $range .'/'. $terms .'/%3$s');
-
- $templateservice->loadTemplate('bookmarks.tpl', $tplVars);
+ /* Service creation: only useful services are created */
+ $bookmarkservice =& ServiceFactory::getServiceInstance('BookmarkService');
+ $templateservice =& ServiceFactory::getServiceInstance('TemplateService');
+ $userservice =& ServiceFactory::getServiceInstance('UserService');
+ $searchhistoryservice =& ServiceFactory::getServiceInstance('SearchHistoryService');
+
+ /* Managing current logged user */
+ $currentUserId = $userservice->getCurrentUserId();
+
+
+ $exploded = explode('/', $_SERVER['PATH_INFO']);
+ if(count($exploded) == 4) {
+ list($url, $range, $terms, $page) = $exploded;
+ } else {
+ list($url, $range, $terms) = $exploded;
+ $page= NULL;
+ }
+
+ $tplvars = array();
+ $tplVars['loadjs'] = true;
+
+ // Pagination
+ $perpage = getPerPageCount();
+ if (intval(GET_PAGE) > 1) {
+ $page = GET_PAGE;
+ $start = ($page - 1) * $perpage;
+ } else {
+ $page = 0;
+ $start = 0;
+ }
+
+ $s_user = NULL;
+ $s_start = NULL;
+ $s_end = NULL;
+ $s_watchlist = NULL;
+
+ // No search terms
+ if (is_null($terms)) {
+ $tplVars['subtitle'] = T_('Search Bookmarks');
+ $s_start = date('Y-m-d H:i:s', strtotime($dtend .' -'. $defaultRecentDays .' days'));
+ $s_end = date('Y-m-d H:i:s', strtotime('tomorrow'));
+
+ // Search terms
+ } else {
+ $tplVars['subtitle'] = T_('Search Results');
+ $selected = ' selected="selected"';
+
+ switch ($range) {
+ case 'all':
+ $tplVars['select_all'] = $selected;
+ $s_user = NULL;
+ break;
+ case 'watchlist':
+ $tplVars['select_watchlist'] = $selected;
+ $s_user = $currentUserId;
+ $s_watchlist = true;
+ break;
+ default:
+ $s_user = $range;
+ break;
+ }
+
+ if (isset($s_user)) {
+ if (is_numeric($s_user)) {
+ $s_user = intval($s_user);
+ } else {
+ $userinfo = $userservice->getObjectUserByUsername($s_user);
+ if ($userinfo == '' ) {
+ $tplVars['error'] = sprintf(T_('User with username %s was not found'), $s_user);
+ $templateservice->loadTemplate('error.404.tpl', $tplVars);
+ exit();
+ } else {
+ $s_user =& $userinfo->getId();
+ }
+ }
+ }
+ }
+ $bookmarks =& $bookmarkservice->getBookmarks($start, $perpage, $s_user, NULL, $terms, getSortOrder(), $s_watchlist, $s_start, $s_end);
+
+ // Save search
+ $searchhistoryservice->addSearch($terms, $range, $bookmarks['total'], $currentUserId);
+
+ $tplVars['rsschannels'] = array();
+ $tplVars['page'] = $page;
+ $tplVars['start'] = $start;
+ $tplVars['popCount'] = 25;
+ $tplVars['sidebar_blocks'] = array('search', 'recent');
+ $tplVars['range'] = $range;
+ $tplVars['terms'] = $terms;
+ $tplVars['pagetitle'] = T_('Search Bookmarks');
+ $tplVars['bookmarkCount'] = $start + 1;
+ $tplVars['total'] = $bookmarks['total'];
+ $tplVars['bookmarks'] =& $bookmarks['bookmarks'];
+ $tplVars['cat_url'] = createURL('tags', '%2$s');
+ $tplVars['nav_url'] = createURL('search', $range .'/'. $terms .'/%3$s');
+
+ $templateservice->loadTemplate('bookmarks.tpl', $tplVars);
}
?>
diff --git a/services/bookmark2tagservice.php b/services/bookmark2tagservice.php
index 9cafec9..26a05c1 100644
--- a/services/bookmark2tagservice.php
+++ b/services/bookmark2tagservice.php
@@ -1,188 +1,189 @@
<?php
class Bookmark2TagService {
- var $db;
- var $tablename;
-
- function &getInstance(&$db) {
- static $instance;
- if (!isset($instance))
- $instance =& new Bookmark2TagService($db);
- return $instance;
- }
-
- function Bookmark2TagService(&$db) {
- $this->db =& $db;
- $this->tablename = $GLOBALS['tableprefix'] .'bookmarks2tags';
- }
-
- function isNotSystemTag($var) {
- if (utf8_substr($var, 0, 7) == 'system:')
- return false;
- else
- return true;
- }
-
- function attachTags($bookmarkid, $tags, $fromApi = false, $extension = NULL, $replace = true, $fromImport = false) {
- // Make sure that categories is an array of trimmed strings, and that if the categories are
- // coming in from an API call to add a bookmark, that underscores are converted into strings.
- if (!is_array($tags)) {
- $tags = trim($tags);
- if ($tags != '') {
- if (substr($tags, -1) == ',') {
- $tags = substr($tags, 0, -1);
- }
- if ($fromApi) {
- $tags = explode(' ', $tags);
- } else {
- $tags = explode(',', $tags);
- }
- } else {
- $tags = null;
- }
- }
-
- //clean tags from strange characters
- $tags = str_replace(array('"', '\''), "_", $tags);
-
-
- $tags_count = count($tags);
- for ($i = 0; $i < $tags_count; $i++) {
- $tags[$i] = trim(strtolower($tags[$i]));
- if ($fromApi) {
- include_once(dirname(__FILE__) .'/../functions.inc.php');
- $tags[$i] = convertTag($tags[$i], 'in');
- }
- }
-
- if ($tags_count > 0) {
- // Remove system tags
- $tags = array_filter($tags, array($this, "isNotSystemTag"));
-
- // Eliminate any duplicate categories
- $temp = array_unique($tags);
- $tags = array_values($temp);
- } else {
- // Unfiled
- $tags[] = 'system:unfiled';
- }
-
- // Media and file types
- if (!is_null($extension)) {
- include_once(dirname(__FILE__) .'/../functions.inc.php');
- if ($keys = multi_array_search($extension, $GLOBALS['filetypes'])) {
- $tags[] = 'system:filetype:'. $extension;
- $tags[] = 'system:media:'. array_shift($keys);
- }
- }
-
- // Imported
- if ($fromImport) {
- $tags[] = 'system:imported';
- }
-
- $this->db->sql_transaction('begin');
-
- if ($replace) {
- if (!$this->deleteTagsForBookmark($bookmarkid)){
- $this->db->sql_transaction('rollback');
- message_die(GENERAL_ERROR, 'Could not attach tags (deleting old ones failed)', '', __LINE__, __FILE__, $sql, $this->db);
- return false;
- }
- }
-
- $bs =& ServiceFactory::getServiceInstance('BookmarkService');
- $tts =& ServiceFactory::getServiceInstance('Tag2TagService');
-
- // Create links between tags
- foreach($tags as $key => $tag) {
- if(strpos($tag, '=')) {
- // case "="
- $pieces = explode('=', $tag);
- $nbPieces = count($pieces);
- if($nbPieces > 1) {
- for($i = 0; $i < $nbPieces-1; $i++) {
- $bookmark = $bs->getBookmark($bookmarkid);
- $uId = $bookmark['uId'];
- $tts->addLinkedTags($pieces[$i], $pieces[$i+1], '=', $uId);
+ var $db;
+ var $tablename;
+
+ function &getInstance(&$db) {
+ static $instance;
+ if (!isset($instance))
+ $instance =& new Bookmark2TagService($db);
+ return $instance;
+ }
+
+ function Bookmark2TagService(&$db) {
+ $this->db =& $db;
+ $this->tablename = $GLOBALS['tableprefix'] .'bookmarks2tags';
+ }
+
+ function isNotSystemTag($var) {
+ if (utf8_substr($var, 0, 7) == 'system:')
+ return false;
+ else
+ return true;
+ }
+
+ function attachTags($bookmarkid, $tags, $fromApi = false, $extension = NULL, $replace = true, $fromImport = false) {
+ // Make sure that categories is an array of trimmed strings, and that if the categories are
+ // coming in from an API call to add a bookmark, that underscores are converted into strings.
+ if (!is_array($tags)) {
+ $tags = trim($tags);
+ if ($tags != '') {
+ if (substr($tags, -1) == ',') {
+ $tags = substr($tags, 0, -1);
+ }
+ if ($fromApi) {
+ $tags = explode(' ', $tags);
+ } else {
+ $tags = explode(',', $tags);
+ }
+ } else {
+ $tags = null;
+ }
+ }
+
+ //clean tags from strange characters
+ $tags = str_replace(array('"', '\''), "_", $tags);
+
+
+ $tags_count = is_array($tags)?count($tags):0;
+
+ for ($i = 0; $i < $tags_count; $i++) {
+ $tags[$i] = trim(strtolower($tags[$i]));
+ if ($fromApi) {
+ include_once(dirname(__FILE__) .'/../functions.inc.php');
+ $tags[$i] = convertTag($tags[$i], 'in');
}
- $tags[$key] = $pieces[0]; // Attach just the last tag to the bookmark
- }
- } else {
- // case ">"
- $pieces = explode('>', $tag);
- $nbPieces = count($pieces);
- if($nbPieces > 1) {
- for($i = 0; $i < $nbPieces-1; $i++) {
- $bookmark = $bs->getBookmark($bookmarkid);
- $uId = $bookmark['uId'];
- $tts->addLinkedTags($pieces[$i], $pieces[$i+1], '>', $uId);
+ }
+
+ if ($tags_count > 0) {
+ // Remove system tags
+ $tags = array_filter($tags, array($this, "isNotSystemTag"));
+
+ // Eliminate any duplicate categories
+ $temp = array_unique($tags);
+ $tags = array_values($temp);
+ } else {
+ // Unfiled
+ $tags[] = 'system:unfiled';
+ }
+
+ // Media and file types
+ if (!is_null($extension)) {
+ include_once(dirname(__FILE__) .'/../functions.inc.php');
+ if ($keys = multi_array_search($extension, $GLOBALS['filetypes'])) {
+ $tags[] = 'system:filetype:'. $extension;
+ $tags[] = 'system:media:'. array_shift($keys);
}
- $tags[$key] = $pieces[$nbPieces-1]; // Attach just the last tag to the bookmark
- }
- }
+ }
+ // Imported
+ if ($fromImport) {
+ $tags[] = 'system:imported';
+ }
- }
+ $this->db->sql_transaction('begin');
+
+ if ($replace) {
+ if (!$this->deleteTagsForBookmark($bookmarkid)){
+ $this->db->sql_transaction('rollback');
+ message_die(GENERAL_ERROR, 'Could not attach tags (deleting old ones failed)', '', __LINE__, __FILE__, $sql, $this->db);
+ return false;
+ }
+ }
+
+ $bs =& ServiceFactory::getServiceInstance('BookmarkService');
+ $tts =& ServiceFactory::getServiceInstance('Tag2TagService');
+
+ // Create links between tags
+ foreach($tags as $key => $tag) {
+ if(strpos($tag, '=')) {
+ // case "="
+ $pieces = explode('=', $tag);
+ $nbPieces = count($pieces);
+ if($nbPieces > 1) {
+ for($i = 0; $i < $nbPieces-1; $i++) {
+ $bookmark = $bs->getBookmark($bookmarkid);
+ $uId = $bookmark['uId'];
+ $tts->addLinkedTags($pieces[$i], $pieces[$i+1], '=', $uId);
+ }
+ $tags[$key] = $pieces[0]; // Attach just the last tag to the bookmark
+ }
+ } else {
+ // case ">"
+ $pieces = explode('>', $tag);
+ $nbPieces = count($pieces);
+ if($nbPieces > 1) {
+ for($i = 0; $i < $nbPieces-1; $i++) {
+ $bookmark = $bs->getBookmark($bookmarkid);
+ $uId = $bookmark['uId'];
+ $tts->addLinkedTags($pieces[$i], $pieces[$i+1], '>', $uId);
+ }
+ $tags[$key] = $pieces[$nbPieces-1]; // Attach just the last tag to the bookmark
+ }
+ }
- // Add the categories to the DB.
- for ($i = 0; $i < count($tags); $i++) {
- if ($tags[$i] != '') {
- $values = array(
+
+ }
+
+ // Add the categories to the DB.
+ for ($i = 0; $i < count($tags); $i++) {
+ if ($tags[$i] != '') {
+ $values = array(
'bId' => intval($bookmarkid),
'tag' => $tags[$i]
- );
-
- if (!$this->hasTag($bookmarkid, $tags[$i])) {
- $sql = 'INSERT INTO '. $this->getTableName() .' '. $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 attach tags', '', __LINE__, __FILE__, $sql, $this->db);
- return false;
- }
- }
- }
- }
- $this->db->sql_transaction('commit');
- return true;
- }
-
- function deleteTag($uId, $tag) {
- $bs =& ServiceFactory::getServiceInstance('BookmarkService');
-
- $query = 'DELETE FROM '. $this->getTableName();
- $query.= ' USING '. $this->getTableName() .', '. $bs->getTableName();
- $query.= ' WHERE '. $this->getTableName() .'.bId = '. $bs->getTableName() .'.bId';
- $query.= ' AND '. $bs->getTableName() .'.uId = '. $uId;
- $query.= ' AND '. $this->getTableName() .'.tag = "'. $this->db->sql_escape($tag) .'"';
-
- if (!($dbresult =& $this->db->sql_query($query))) {
- message_die(GENERAL_ERROR, 'Could not delete tags', '', __LINE__, __FILE__, $query, $this->db);
- return false;
- }
-
- return true;
- }
-
- function deleteTagsForBookmark($bookmarkid) {
- if (!is_int($bookmarkid)) {
- message_die(GENERAL_ERROR, 'Could not delete tags (invalid bookmarkid)', '', __LINE__, __FILE__, $query);
- return false;
- }
-
- $query = 'DELETE FROM '. $this->getTableName() .' WHERE bId = '. intval($bookmarkid);
-
- if (!($dbresult =& $this->db->sql_query($query))) {
- message_die(GENERAL_ERROR, 'Could not delete tags', '', __LINE__, __FILE__, $query, $this->db);
- return false;
- }
-
- return true;
- }
-
- /* Allow deletion in admin page */
- function deleteTagsForUser($uId) {
- $qmask = 'DELETE FROM %s USING %s, %s WHERE %s.bId = %s.bId AND %s.uId = %d';
- $query = sprintf($qmask,
+ );
+
+ if (!$this->hasTag($bookmarkid, $tags[$i])) {
+ $sql = 'INSERT INTO '. $this->getTableName() .' '. $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 attach tags', '', __LINE__, __FILE__, $sql, $this->db);
+ return false;
+ }
+ }
+ }
+ }
+ $this->db->sql_transaction('commit');
+ return true;
+ }
+
+ function deleteTag($uId, $tag) {
+ $bs =& ServiceFactory::getServiceInstance('BookmarkService');
+
+ $query = 'DELETE FROM '. $this->getTableName();
+ $query.= ' USING '. $this->getTableName() .', '. $bs->getTableName();
+ $query.= ' WHERE '. $this->getTableName() .'.bId = '. $bs->getTableName() .'.bId';
+ $query.= ' AND '. $bs->getTableName() .'.uId = '. $uId;
+ $query.= ' AND '. $this->getTableName() .'.tag = "'. $this->db->sql_escape($tag) .'"';
+
+ if (!($dbresult =& $this->db->sql_query($query))) {
+ message_die(GENERAL_ERROR, 'Could not delete tags', '', __LINE__, __FILE__, $query, $this->db);
+ return false;
+ }
+
+ return true;
+ }
+
+ function deleteTagsForBookmark($bookmarkid) {
+ if (!is_int($bookmarkid)) {
+ message_die(GENERAL_ERROR, 'Could not delete tags (invalid bookmarkid)', '', __LINE__, __FILE__, $query);
+ return false;
+ }
+
+ $query = 'DELETE FROM '. $this->getTableName() .' WHERE bId = '. intval($bookmarkid);
+
+ if (!($dbresult =& $this->db->sql_query($query))) {
+ message_die(GENERAL_ERROR, 'Could not delete tags', '', __LINE__, __FILE__, $query, $this->db);
+ return false;
+ }
+
+ return true;
+ }
+
+ /* Allow deletion in admin page */
+ function deleteTagsForUser($uId) {
+ $qmask = 'DELETE FROM %s USING %s, %s WHERE %s.bId = %s.bId AND %s.uId = %d';
+ $query = sprintf($qmask,
$this->getTableName(),
$this->getTableName(),
$GLOBALS['tableprefix'].'bookmarks',
@@ -191,245 +192,246 @@ class Bookmark2TagService {
$GLOBALS['tableprefix'].'bookmarks',
$uId);
- if (!($dbresult =& $this->db->sql_query($query))) {
- message_die(GENERAL_ERROR, 'Could not delete tags', '', __LINE__, __FILE__, $query, $this->db);
- return false;
- }
+ if (!($dbresult =& $this->db->sql_query($query))) {
+ message_die(GENERAL_ERROR, 'Could not delete tags', '', __LINE__, __FILE__, $query, $this->db);
+ return false;
+ }
- return true;
- }
-
- function &getTagsForBookmark($bookmarkid) {
- if (!is_int($bookmarkid)) {
- message_die(GENERAL_ERROR, 'Could not get tags (invalid bookmarkid)', '', __LINE__, __FILE__, $query);
- return false;
- }
-
- $query = 'SELECT tag FROM '. $this->getTableName() .' WHERE bId = '. intval($bookmarkid) .' AND LEFT(tag, 7) <> "system:" ORDER BY tag';
-
- if (!($dbresult =& $this->db->sql_query($query))) {
- message_die(GENERAL_ERROR, 'Could not get tags', '', __LINE__, __FILE__, $query, $this->db);
- return false;
- }
-
- $tags = array();
- while ($row =& $this->db->sql_fetchrow($dbresult)) {
- $tags[] = $row['tag'];
- }
-
- return $tags;
- }
-
- function &getTags($userid = NULL) {
- $userservice =& ServiceFactory::getServiceInstance('UserService');
- $logged_on_user = $userservice->getCurrentUserId();
-
- $query = 'SELECT T.tag, COUNT(B.bId) AS bCount FROM '. $GLOBALS['tableprefix'] .'bookmarks AS B INNER JOIN '. $userservice->getTableName() .' AS U ON B.uId = U.'. $userservice->getFieldName('primary') .' INNER JOIN '. $GLOBALS['tableprefix'] .'bookmarks2tags AS T ON B.bId = T.bId';
-
- $conditions = array();
- if (!is_null($userid)) {
- $conditions['U.'. $userservice->getFieldName('primary')] = intval($userid);
- if ($logged_on_user != $userid)
- $conditions['B.bStatus'] = 0;
- } else {
- $conditions['B.bStatus'] = 0;
- }
-
- $query .= ' WHERE '. $this->db->sql_build_array('SELECT', $conditions) .' AND LEFT(T.tag, 7) <> "system:" GROUP BY T.tag ORDER BY bCount DESC, tag';
-
- if (!($dbresult =& $this->db->sql_query($query))) {
- message_die(GENERAL_ERROR, 'Could not get tags', '', __LINE__, __FILE__, $query, $this->db);
- return false;
- }
-
- $output = $this->db->sql_fetchrowset($dbresult);
- return $output;
- }
-
-
- // Returns the tags related to the specified tags; i.e. attached to the same bookmarks
- function &getRelatedTags($tags, $for_user = NULL, $logged_on_user = NULL, $limit = 10) {
- $conditions = array();
- // Only count the tags that are visible to the current user.
- if ($for_user != $logged_on_user || is_null($for_user))
- $conditions['B.bStatus'] = 0;
-
- if (!is_null($for_user))
- $conditions['B.uId'] = $for_user;
-
- // Set up the tags, if need be.
- if (is_numeric($tags))
- $tags = NULL;
- if (!is_array($tags) and !is_null($tags))
- $tags = explode('+', trim($tags));
-
- $tagcount = count($tags);
- for ($i = 0; $i < $tagcount; $i++) {
- $tags[$i] = trim($tags[$i]);
- }
-
- // Set up the SQL query.
- $query_1 = 'SELECT DISTINCTROW T0.tag, COUNT(B.bId) AS bCount FROM '. $GLOBALS['tableprefix'] .'bookmarks AS B, '. $this->getTableName() .' AS T0';
- $query_2 = '';
- $query_3 = ' WHERE B.bId = T0.bId ';
- if (count($conditions) > 0)
- $query_4 = ' AND '. $this->db->sql_build_array('SELECT', $conditions);
- else
- $query_4 = '';
- // Handle the parts of the query that depend on any tags that are present.
- for ($i = 1; $i <= $tagcount; $i++) {
- $query_2 .= ', '. $this->getTableName() .' AS T'. $i;
- $query_4 .= ' AND T'. $i .'.bId = B.bId AND T'. $i .'.tag = "'. $this->db->sql_escape($tags[$i - 1]) .'" AND T0.tag <> "'. $this->db->sql_escape($tags[$i - 1]) .'"';
- }
- $query_5 = ' AND LEFT(T0.tag, 7) <> "system:" GROUP BY T0.tag ORDER BY bCount DESC, T0.tag';
- $query = $query_1 . $query_2 . $query_3 . $query_4 . $query_5;
-
- if (! ($dbresult =& $this->db->sql_query_limit($query, $limit)) ){
- message_die(GENERAL_ERROR, 'Could not get related tags', '', __LINE__, __FILE__, $query, $this->db);
- return false;
- }
- $output = $this->db->sql_fetchrowset($dbresult);
- return $output;
- }
-
- // Returns the most popular tags used for a particular bookmark hash
- function &getRelatedTagsByHash($hash, $limit = 20) {
- $userservice = & ServiceFactory :: getServiceInstance('UserService');
- $sId = $userservice->getCurrentUserId();
- // Logged in
- if ($userservice->isLoggedOn()) {
- $arrWatch = $userservice->getWatchList($sId);
- // From public bookmarks or user's own
- $privacy = ' AND ((B.bStatus = 0) OR (B.uId = '. $sId .')';
- // From shared bookmarks in watchlist
- foreach ($arrWatch as $w) {
- $privacy .= ' OR (B.uId = '. $w .' AND B.bStatus = 1)';
- }
- $privacy .= ') ';
- // Not logged in
- } else {
- $privacy = ' AND B.bStatus = 0 ';
- }
-
- $query = 'SELECT T.tag, COUNT(T.tag) AS bCount FROM '.$GLOBALS['tableprefix'].'bookmarks AS B LEFT JOIN '.$GLOBALS['tableprefix'].'bookmarks2tags AS T ON B.bId = T.bId WHERE B.bHash = "'. $hash .'" '. $privacy .'AND LEFT(T.tag, 7) <> "system:" GROUP BY T.tag ORDER BY bCount DESC';
-
- if (!($dbresult =& $this->db->sql_query_limit($query, $limit))) {
- message_die(GENERAL_ERROR, 'Could not get related tags for this hash', '', __LINE__, __FILE__, $query, $this->db);
- return false;
- }
- return $this->db->sql_fetchrowset($dbresult);
- }
-
- function &getPopularTags($user = NULL, $limit = 30, $logged_on_user = NULL, $days = NULL) {
- // Only count the tags that are visible to the current user.
- if (($user != $logged_on_user) || is_null($user) || ($user === false))
- $privacy = ' AND B.bStatus = 0';
- else
- $privacy = '';
-
- if (is_null($days) || !is_int($days))
- $span = '';
- else
- $span = ' AND B.bDatetime > "'. date('Y-m-d H:i:s', time() - (86400 * $days)) .'"';
-
- $query = 'SELECT T.tag, COUNT(T.bId) AS bCount FROM '. $this->getTableName() .' AS T, '. $GLOBALS['tableprefix'] .'bookmarks AS B WHERE ';
- if (is_null($user) || ($user === false)) {
- $query .= 'B.bId = T.bId AND B.bStatus = 0';
- } else {
- $query .= 'B.uId = '. $this->db->sql_escape($user) .' AND B.bId = T.bId'. $privacy;
- }
- $query .= $span .' AND LEFT(T.tag, 7) <> "system:" GROUP BY T.tag ORDER BY bCount DESC, tag';
-
- if (!($dbresult =& $this->db->sql_query_limit($query, $limit))) {
- message_die(GENERAL_ERROR, 'Could not get popular tags', '', __LINE__, __FILE__, $query, $this->db);
- return false;
- }
-
- $output = $this->db->sql_fetchrowset($dbresult);
- return $output;
- }
-
- function hasTag($bookmarkid, $tag) {
- $query = 'SELECT COUNT(*) AS tCount FROM '. $this->getTableName() .' WHERE bId = '. intval($bookmarkid) .' AND tag ="'. $this->db->sql_escape($tag) .'"';
-
- if (! ($dbresult =& $this->db->sql_query($query)) ) {
- message_die(GENERAL_ERROR, 'Could not find tag', '', __LINE__, __FILE__, $query, $this->db);
- return false;
- }
-
- if ($row =& $this->db->sql_fetchrow($dbresult)) {
- if ($row['tCount'] > 0) {
- return true;
- }
- }
- return false;
- }
-
- function renameTag($userid, $old, $new, $fromApi = false) {
- $bookmarkservice =& ServiceFactory::getServiceInstance('BookmarkService');
-
- if (is_null($userid) || is_null($old) || is_null($new))
- return false;
-
- // Find bookmarks with old tag
- $bookmarksInfo =& $bookmarkservice->getBookmarks(0, NULL, $userid, $old);
- $bookmarks =& $bookmarksInfo['bookmarks'];
-
- // Delete old tag
- $this->deleteTag($userid, $old);
-
- // Attach new tags
- foreach(array_keys($bookmarks) as $key) {
- $row =& $bookmarks[$key];
- $this->attachTags($row['bId'], $new, $fromApi, NULL, false);
- }
-
- return true;
- }
-
- function &tagCloud($tags = NULL, $steps = 5, $sizemin = 90, $sizemax = 225, $sortOrder = NULL) {
-
- if (is_null($tags) || count($tags) < 1) {
- $output = false;
- return $output;
- }
-
- $min = $tags[count($tags) - 1]['bCount'];
- $max = $tags[0]['bCount'];
-
- for ($i = 1; $i <= $steps; $i++) {
- $delta = ($max - $min) / (2 * $steps - $i);
- $limit[$i] = $i * $delta + $min;
- }
- $sizestep = ($sizemax - $sizemin) / $steps;
- foreach ($tags as $row) {
- $next = false;
- for ($i = 1; $i <= $steps; $i++) {
- if (!$next && $row['bCount'] <= $limit[$i]) {
- $size = $sizestep * ($i - 1) + $sizemin;
- $next = true;
- }
- }
- $tempArray = array('size' => $size .'%');
- $row = array_merge($row, $tempArray);
- $output[] = $row;
- }
-
- if ($sortOrder == 'alphabet_asc') {
- usort($output, create_function('$a,$b','return strcasecmp(utf8_deaccent($a["tag"]), utf8_deaccent($b["tag"]));'));
- }
-
- return $output;
- }
-
- function deleteAll() {
- $query = 'TRUNCATE TABLE `'. $this->getTableName() .'`';
- $this->db->sql_query($query);
- }
-
-
- // Properties
- function getTableName() { return $this->tablename; }
- function setTableName($value) { $this->tablename = $value; }
+ return true;
+ }
+
+ function &getTagsForBookmark($bookmarkid) {
+ if (!is_int($bookmarkid)) {
+ message_die(GENERAL_ERROR, 'Could not get tags (invalid bookmarkid)', '', __LINE__, __FILE__, $query);
+ return false;
+ }
+
+ $query = 'SELECT tag FROM '. $this->getTableName() .' WHERE bId = '. intval($bookmarkid) .' AND LEFT(tag, 7) <> "system:" ORDER BY tag';
+
+ if (!($dbresult =& $this->db->sql_query($query))) {
+ message_die(GENERAL_ERROR, 'Could not get tags', '', __LINE__, __FILE__, $query, $this->db);
+ return false;
+ }
+
+ $tags = array();
+ while ($row =& $this->db->sql_fetchrow($dbresult)) {
+ $tags[] = $row['tag'];
+ }
+
+ return $tags;
+ }
+
+ function &getTags($userid = NULL) {
+ $userservice =& ServiceFactory::getServiceInstance('UserService');
+ $logged_on_user = $userservice->getCurrentUserId();
+
+ $query = 'SELECT T.tag, COUNT(B.bId) AS bCount FROM '. $GLOBALS['tableprefix'] .'bookmarks AS B INNER JOIN '. $userservice->getTableName() .' AS U ON B.uId = U.'. $userservice->getFieldName('primary') .' INNER JOIN '. $GLOBALS['tableprefix'] .'bookmarks2tags AS T ON B.bId = T.bId';
+
+ $conditions = array();
+ if (!is_null($userid)) {
+ $conditions['U.'. $userservice->getFieldName('primary')] = intval($userid);
+ if ($logged_on_user != $userid)
+ $conditions['B.bStatus'] = 0;
+ } else {
+ $conditions['B.bStatus'] = 0;
+ }
+
+ $query .= ' WHERE '. $this->db->sql_build_array('SELECT', $conditions) .' AND LEFT(T.tag, 7) <> "system:" GROUP BY T.tag ORDER BY bCount DESC, tag';
+
+ if (!($dbresult =& $this->db->sql_query($query))) {
+ message_die(GENERAL_ERROR, 'Could not get tags', '', __LINE__, __FILE__, $query, $this->db);
+ return false;
+ }
+
+ $output = $this->db->sql_fetchrowset($dbresult);
+ return $output;
+ }
+
+
+ // Returns the tags related to the specified tags; i.e. attached to the same bookmarks
+ function &getRelatedTags($tags, $for_user = NULL, $logged_on_user = NULL, $limit = 10) {
+ $conditions = array();
+ // Only count the tags that are visible to the current user.
+ if ($for_user != $logged_on_user || is_null($for_user))
+ $conditions['B.bStatus'] = 0;
+
+ if (!is_null($for_user))
+ $conditions['B.uId'] = $for_user;
+
+ // Set up the tags, if need be.
+ if (is_numeric($tags))
+ $tags = NULL;
+ if (!is_array($tags) and !is_null($tags))
+ $tags = explode('+', trim($tags));
+
+ $tagcount = count($tags);
+ for ($i = 0; $i < $tagcount; $i++) {
+ $tags[$i] = trim($tags[$i]);
+ }
+
+ // Set up the SQL query.
+ $query_1 = 'SELECT DISTINCTROW T0.tag, COUNT(B.bId) AS bCount FROM '. $GLOBALS['tableprefix'] .'bookmarks AS B, '. $this->getTableName() .' AS T0';
+ $query_2 = '';
+ $query_3 = ' WHERE B.bId = T0.bId ';
+ if (count($conditions) > 0)
+ $query_4 = ' AND '. $this->db->sql_build_array('SELECT', $conditions);
+ else
+ $query_4 = '';
+ // Handle the parts of the query that depend on any tags that are present.
+ for ($i = 1; $i <= $tagcount; $i++) {
+ $query_2 .= ', '. $this->getTableName() .' AS T'. $i;
+ $query_4 .= ' AND T'. $i .'.bId = B.bId AND T'. $i .'.tag = "'. $this->db->sql_escape($tags[$i - 1]) .'" AND T0.tag <> "'. $this->db->sql_escape($tags[$i - 1]) .'"';
+ }
+ $query_5 = ' AND LEFT(T0.tag, 7) <> "system:" GROUP BY T0.tag ORDER BY bCount DESC, T0.tag';
+ $query = $query_1 . $query_2 . $query_3 . $query_4 . $query_5;
+
+ if (! ($dbresult =& $this->db->sql_query_limit($query, $limit)) ){
+ message_die(GENERAL_ERROR, 'Could not get related tags', '', __LINE__, __FILE__, $query, $this->db);
+ return false;
+ }
+ $output = $this->db->sql_fetchrowset($dbresult);
+ return $output;
+ }
+
+ // Returns the most popular tags used for a particular bookmark hash
+ function &getRelatedTagsByHash($hash, $limit = 20) {
+ $userservice = & ServiceFactory :: getServiceInstance('UserService');
+ $sId = $userservice->getCurrentUserId();
+ // Logged in
+ if ($userservice->isLoggedOn()) {
+ $arrWatch = $userservice->getWatchList($sId);
+ // From public bookmarks or user's own
+ $privacy = ' AND ((B.bStatus = 0) OR (B.uId = '. $sId .')';
+ // From shared bookmarks in watchlist
+ foreach ($arrWatch as $w) {
+ $privacy .= ' OR (B.uId = '. $w .' AND B.bStatus = 1)';
+ }
+ $privacy .= ') ';
+ // Not logged in
+ } else {
+ $privacy = ' AND B.bStatus = 0 ';
+ }
+
+ $query = 'SELECT T.tag, COUNT(T.tag) AS bCount FROM '.$GLOBALS['tableprefix'].'bookmarks AS B LEFT JOIN '.$GLOBALS['tableprefix'].'bookmarks2tags AS T ON B.bId = T.bId WHERE B.bHash = "'. $hash .'" '. $privacy .'AND LEFT(T.tag, 7) <> "system:" GROUP BY T.tag ORDER BY bCount DESC';
+
+ if (!($dbresult =& $this->db->sql_query_limit($query, $limit))) {
+ message_die(GENERAL_ERROR, 'Could not get related tags for this hash', '', __LINE__, __FILE__, $query, $this->db);
+ return false;
+ }
+ $output = $this->db->sql_fetchrowset($dbresult);
+ return $output;
+ }
+
+ function &getPopularTags($user = NULL, $limit = 30, $logged_on_user = NULL, $days = NULL) {
+ // Only count the tags that are visible to the current user.
+ if (($user != $logged_on_user) || is_null($user) || ($user === false))
+ $privacy = ' AND B.bStatus = 0';
+ else
+ $privacy = '';
+
+ if (is_null($days) || !is_int($days))
+ $span = '';
+ else
+ $span = ' AND B.bDatetime > "'. date('Y-m-d H:i:s', time() - (86400 * $days)) .'"';
+
+ $query = 'SELECT T.tag, COUNT(T.bId) AS bCount FROM '. $this->getTableName() .' AS T, '. $GLOBALS['tableprefix'] .'bookmarks AS B WHERE ';
+ if (is_null($user) || ($user === false)) {
+ $query .= 'B.bId = T.bId AND B.bStatus = 0';
+ } else {
+ $query .= 'B.uId = '. $this->db->sql_escape($user) .' AND B.bId = T.bId'. $privacy;
+ }
+ $query .= $span .' AND LEFT(T.tag, 7) <> "system:" GROUP BY T.tag ORDER BY bCount DESC, tag';
+
+ if (!($dbresult =& $this->db->sql_query_limit($query, $limit))) {
+ message_die(GENERAL_ERROR, 'Could not get popular tags', '', __LINE__, __FILE__, $query, $this->db);
+ return false;
+ }
+
+ $output = $this->db->sql_fetchrowset($dbresult);
+ return $output;
+ }
+
+ function hasTag($bookmarkid, $tag) {
+ $query = 'SELECT COUNT(*) AS tCount FROM '. $this->getTableName() .' WHERE bId = '. intval($bookmarkid) .' AND tag ="'. $this->db->sql_escape($tag) .'"';
+
+ if (! ($dbresult =& $this->db->sql_query($query)) ) {
+ message_die(GENERAL_ERROR, 'Could not find tag', '', __LINE__, __FILE__, $query, $this->db);
+ return false;
+ }
+
+ if ($row =& $this->db->sql_fetchrow($dbresult)) {
+ if ($row['tCount'] > 0) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ function renameTag($userid, $old, $new, $fromApi = false) {
+ $bookmarkservice =& ServiceFactory::getServiceInstance('BookmarkService');
+
+ if (is_null($userid) || is_null($old) || is_null($new))
+ return false;
+
+ // Find bookmarks with old tag
+ $bookmarksInfo =& $bookmarkservice->getBookmarks(0, NULL, $userid, $old);
+ $bookmarks =& $bookmarksInfo['bookmarks'];
+
+ // Delete old tag
+ $this->deleteTag($userid, $old);
+
+ // Attach new tags
+ foreach(array_keys($bookmarks) as $key) {
+ $row =& $bookmarks[$key];
+ $this->attachTags($row['bId'], $new, $fromApi, NULL, false);
+ }
+
+ return true;
+ }
+
+ function &tagCloud($tags = NULL, $steps = 5, $sizemin = 90, $sizemax = 225, $sortOrder = NULL) {
+
+ if (is_null($tags) || count($tags) < 1) {
+ $output = false;
+ return $output;
+ }
+
+ $min = $tags[count($tags) - 1]['bCount'];
+ $max = $tags[0]['bCount'];
+
+ for ($i = 1; $i <= $steps; $i++) {
+ $delta = ($max - $min) / (2 * $steps - $i);
+ $limit[$i] = $i * $delta + $min;
+ }
+ $sizestep = ($sizemax - $sizemin) / $steps;
+ foreach ($tags as $row) {
+ $next = false;
+ for ($i = 1; $i <= $steps; $i++) {
+ if (!$next && $row['bCount'] <= $limit[$i]) {
+ $size = $sizestep * ($i - 1) + $sizemin;
+ $next = true;
+ }
+ }
+ $tempArray = array('size' => $size .'%');
+ $row = array_merge($row, $tempArray);
+ $output[] = $row;
+ }
+
+ if ($sortOrder == 'alphabet_asc') {
+ usort($output, create_function('$a,$b','return strcasecmp(utf8_deaccent($a["tag"]), utf8_deaccent($b["tag"]));'));
+ }
+
+ return $output;
+ }
+
+ function deleteAll() {
+ $query = 'TRUNCATE TABLE `'. $this->getTableName() .'`';
+ $this->db->sql_query($query);
+ }
+
+
+ // Properties
+ function getTableName() { return $this->tablename; }
+ function setTableName($value) { $this->tablename = $value; }
}
?>
diff --git a/services/bookmarkservice.php b/services/bookmarkservice.php
index 9127c12..73cdf84 100644
--- a/services/bookmarkservice.php
+++ b/services/bookmarkservice.php
@@ -20,6 +20,8 @@ class BookmarkService {
$userservice = & ServiceFactory :: getServiceInstance('UserService');
$sId = $userservice->getCurrentUserId();
$range = ' AND uId = '. $sId;
+ } else {
+ $range = '';
}
$query = 'SELECT * FROM '. $this->getTableName() .' WHERE '. $fieldname .' = "'. $this->db->sql_escape($value) .'"'. $range;
@@ -271,6 +273,7 @@ class BookmarkService {
} else {
$arrWatch = $userservice->getWatchlist($user);
if (count($arrWatch) > 0) {
+ $query_3_1 = '';
foreach($arrWatch as $row) {
$query_3_1 .= 'B.uId = '. intval($row) .' OR ';
}
@@ -280,7 +283,7 @@ class BookmarkService {
}
$query_3 .= ' AND ('. $query_3_1 .') AND B.bStatus IN (0, 1)';
}
-
+
$query_5 = '';
if($hash == null) {
$query_5.= ' GROUP BY B.bHash';
diff --git a/services/commondescriptionservice.php b/services/commondescriptionservice.php
index 6c591a9..0a96f74 100644
--- a/services/commondescriptionservice.php
+++ b/services/commondescriptionservice.php
@@ -1,153 +1,153 @@
<?php
class CommonDescriptionService {
- var $db;
- var $tablename;
-
- function &getInstance(&$db) {
- static $instance;
- if (!isset($instance))
- $instance =& new CommonDescriptionService($db);
- return $instance;
- }
-
- function CommonDescriptionService(&$db) {
- $this->db =& $db;
- $this->tablename = $GLOBALS['tableprefix'] .'commondescription';
- }
-
- function addTagDescription($tag, $desc, $uId, $time) {
- // Check if no modification
- $lastDesc = $this->getLastTagDescription($tag);
- if($lastDesc['cdDescription'] == $desc) {
- return true;
+ var $db;
+ var $tablename;
+
+ function &getInstance(&$db) {
+ static $instance;
+ if (!isset($instance))
+ $instance =& new CommonDescriptionService($db);
+ return $instance;
}
- // If modification
- $datetime = gmdate('Y-m-d H:i:s', $time);
- $values = array('tag'=>$tag, 'cdDescription'=>$desc, 'uId'=>$uId, 'cdDatetime'=>$datetime);
- $sql = 'INSERT INTO '. $this->getTableName() .' '. $this->db->sql_build_array('INSERT', $values);
+ function CommonDescriptionService(&$db) {
+ $this->db =& $db;
+ $this->tablename = $GLOBALS['tableprefix'] .'commondescription';
+ }
- if (!($dbresult =& $this->db->sql_query($sql))) {
- $this->db->sql_transaction('rollback');
- message_die(GENERAL_ERROR, 'Could not add tag description', '', __LINE__, __FILE__, $sql, $this->db);
- return false;
+ function addTagDescription($tag, $desc, $uId, $time) {
+ // Check if no modification
+ $lastDesc = $this->getLastTagDescription($tag);
+ if($lastDesc['cdDescription'] == $desc) {
+ return true;
+ }
+
+ // If modification
+ $datetime = gmdate('Y-m-d H:i:s', $time);
+ $values = array('tag'=>$tag, 'cdDescription'=>$desc, 'uId'=>$uId, 'cdDatetime'=>$datetime);
+ $sql = 'INSERT INTO '. $this->getTableName() .' '. $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 tag description', '', __LINE__, __FILE__, $sql, $this->db);
+ return false;
+ }
+
+ return true;
}
- return true;
- }
-
- function getLastTagDescription($tag) {
- $query = "SELECT *";
- $query.= " FROM `". $this->getTableName() ."`";
- $query.= " WHERE tag='".$tag."'";
- $query.= " ORDER BY cdDatetime DESC";
-
- if (!($dbresult = & $this->db->sql_query_limit($query, 1, 0))) {
- message_die(GENERAL_ERROR, 'Could not get tag description', '', __LINE__, __FILE__, $query, $this->db);
- return false;
- }
-
- if ($row =& $this->db->sql_fetchrow($dbresult)) {
- return $row;
- } else {
- return false;
- }
- }
-
- function getAllTagsDescription($tag) {
- $query = "SELECT *";
- $query.= " FROM `". $this->getTableName() ."`";
- $query.= " WHERE tag='".$tag."'";
- $query.= " ORDER BY cdDatetime DESC";
-
- if (!($dbresult = & $this->db->sql_query($query))) {
- message_die(GENERAL_ERROR, 'Could not get tag descriptions', '', __LINE__, __FILE__, $query, $this->db);
- return false;
- }
-
- return $this->db->sql_fetchrowset($dbresult);
-
- }
-
- function getDescriptionById($cdId) {
- $query = "SELECT *";
- $query.= " FROM `". $this->getTableName() ."`";
- $query.= " WHERE cdId='".$cdId."'";
-
- if (!($dbresult = & $this->db->sql_query($query))) {
- message_die(GENERAL_ERROR, 'Could not get tag descriptions', '', __LINE__, __FILE__, $query, $this->db);
- return false;
- }
-
- if ($row =& $this->db->sql_fetchrow($dbresult)) {
- return $row;
- } else {
- return false;
- }
-
- }
-
- function addBookmarkDescription($bHash, $title, $desc, $uId, $time) {
- // Check if no modification
- $lastDesc = $this->getLastBookmarkDescription($bHash);
- if($lastDesc['cdTitle'] == $title && $lastDesc['cdDescription'] == $desc) {
- return true;
+ function getLastTagDescription($tag) {
+ $query = "SELECT *";
+ $query.= " FROM `". $this->getTableName() ."`";
+ $query.= " WHERE tag='".$tag."'";
+ $query.= " ORDER BY cdDatetime DESC";
+
+ if (!($dbresult = & $this->db->sql_query_limit($query, 1, 0))) {
+ message_die(GENERAL_ERROR, 'Could not get tag description', '', __LINE__, __FILE__, $query, $this->db);
+ return false;
+ }
+
+ if ($row =& $this->db->sql_fetchrow($dbresult)) {
+ return $row;
+ } else {
+ return false;
+ }
}
- // If modification
- $datetime = gmdate('Y-m-d H:i:s', $time);
- $values = array('bHash'=>$bHash, 'cdTitle'=>$title, 'cdDescription'=>$desc, 'uId'=>$uId, 'cdDatetime'=>$datetime);
- $sql = 'INSERT INTO '. $this->getTableName() .' '. $this->db->sql_build_array('INSERT', $values);
+ function getAllTagsDescription($tag) {
+ $query = "SELECT *";
+ $query.= " FROM `". $this->getTableName() ."`";
+ $query.= " WHERE tag='".$tag."'";
+ $query.= " ORDER BY cdDatetime DESC";
+
+ if (!($dbresult = & $this->db->sql_query($query))) {
+ message_die(GENERAL_ERROR, 'Could not get tag descriptions', '', __LINE__, __FILE__, $query, $this->db);
+ return false;
+ }
+
+ return $this->db->sql_fetchrowset($dbresult);
- if (!($dbresult =& $this->db->sql_query($sql))) {
- $this->db->sql_transaction('rollback');
- message_die(GENERAL_ERROR, 'Could not add bookmark description', '', __LINE__, __FILE__, $sql, $this->db);
- return false;
}
- return true;
- }
-
- function getLastBookmarkDescription($bHash) {
- $query = "SELECT *";
- $query.= " FROM `". $this->getTableName() ."`";
- $query.= " WHERE bHash='".$bHash."'";
- $query.= " ORDER BY cdDatetime DESC";
-
- if (!($dbresult = & $this->db->sql_query_limit($query, 1, 0))) {
- message_die(GENERAL_ERROR, 'Could not get bookmark description', '', __LINE__, __FILE__, $query, $this->db);
- return false;
- }
-
- if ($row =& $this->db->sql_fetchrow($dbresult)) {
- return $row;
- } else {
- return false;
- }
- }
-
- function getAllBookmarksDescription($bHash) {
- $query = "SELECT *";
- $query.= " FROM `". $this->getTableName() ."`";
- $query.= " WHERE bHash='".$bHash."'";
- $query.= " ORDER BY cdDatetime DESC";
-
- if (!($dbresult = & $this->db->sql_query($query))) {
- message_die(GENERAL_ERROR, 'Could not get bookmark descriptions', '', __LINE__, __FILE__, $query, $this->db);
- return false;
- }
-
- return $this->db->sql_fetchrowset($dbresult);
-
- }
-
-
- function deleteAll() {
- $query = 'TRUNCATE TABLE `'. $this->getTableName() .'`';
- $this->db->sql_query($query);
- }
-
- // Properties
- function getTableName() { return $this->tablename; }
- function setTableName($value) { $this->tablename = $value; }
+
+ function getDescriptionById($cdId) {
+ $query = "SELECT *";
+ $query.= " FROM `". $this->getTableName() ."`";
+ $query.= " WHERE cdId='".$cdId."'";
+
+ if (!($dbresult = & $this->db->sql_query($query))) {
+ message_die(GENERAL_ERROR, 'Could not get tag descriptions', '', __LINE__, __FILE__, $query, $this->db);
+ return false;
+ }
+
+ if ($row =& $this->db->sql_fetchrow($dbresult)) {
+ return $row;
+ } else {
+ return false;
+ }
+
+ }
+
+ function addBookmarkDescription($bHash, $title, $desc, $uId, $time) {
+ // Check if no modification
+ $lastDesc = $this->getLastBookmarkDescription($bHash);
+ if($lastDesc['cdTitle'] == $title && $lastDesc['cdDescription'] == $desc) {
+ return true;
+ }
+
+ // If modification
+ $datetime = gmdate('Y-m-d H:i:s', $time);
+ $values = array('bHash'=>$bHash, 'cdTitle'=>$title, 'cdDescription'=>$desc, 'uId'=>$uId, 'cdDatetime'=>$datetime);
+ $sql = 'INSERT INTO '. $this->getTableName() .' '. $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 bookmark description', '', __LINE__, __FILE__, $sql, $this->db);
+ return false;
+ }
+ return true;
+ }
+
+ function getLastBookmarkDescription($bHash) {
+ $query = "SELECT *";
+ $query.= " FROM `". $this->getTableName() ."`";
+ $query.= " WHERE bHash='".$bHash."'";
+ $query.= " ORDER BY cdDatetime DESC";
+
+ if (!($dbresult = & $this->db->sql_query_limit($query, 1, 0))) {
+ message_die(GENERAL_ERROR, 'Could not get bookmark description', '', __LINE__, __FILE__, $query, $this->db);
+ return false;
+ }
+
+ if ($row =& $this->db->sql_fetchrow($dbresult)) {
+ return $row;
+ } else {
+ return false;
+ }
+ }
+
+ function getAllBookmarksDescription($bHash) {
+ $query = "SELECT *";
+ $query.= " FROM `". $this->getTableName() ."`";
+ $query.= " WHERE bHash='".$bHash."'";
+ $query.= " ORDER BY cdDatetime DESC";
+
+ if (!($dbresult = & $this->db->sql_query($query))) {
+ message_die(GENERAL_ERROR, 'Could not get bookmark descriptions', '', __LINE__, __FILE__, $query, $this->db);
+ return false;
+ }
+
+ return $this->db->sql_fetchrowset($dbresult);
+
+ }
+
+
+ function deleteAll() {
+ $query = 'TRUNCATE TABLE `'. $this->getTableName() .'`';
+ $this->db->sql_query($query);
+ }
+
+ // Properties
+ function getTableName() { return $this->tablename; }
+ function setTableName($value) { $this->tablename = $value; }
}
?>
diff --git a/services/tag2tagservice.php b/services/tag2tagservice.php
index f24ef79..8c97606 100644
--- a/services/tag2tagservice.php
+++ b/services/tag2tagservice.php
@@ -1,297 +1,297 @@
<?php
class Tag2TagService {
- var $db;
- var $tablename;
-
- function &getInstance(&$db) {
- static $instance;
- if (!isset($instance))
- $instance =& new Tag2TagService($db);
- return $instance;
- }
-
- function Tag2TagService(&$db) {
- $this->db =& $db;
- $this->tablename = $GLOBALS['tableprefix'] .'tags2tags';
- }
-
- function addLinkedTags($tag1, $tag2, $relationType, $uId) {
- if($tag1 == $tag2 || strlen($tag1) == 0 || strlen($tag2) == 0
- || ($relationType != ">" && $relationType != "=")
- || ($this->existsLinkedTags($tag1, $tag2, $relationType, $uId))) {
- return false;
- }
- $values = array('tag1' => $tag1, 'tag2' => $tag2, 'relationType'=> $relationType, 'uId'=> $uId);
- $query = 'INSERT INTO '. $this->getTableName() .' '. $this->db->sql_build_array('INSERT', $values);
-//die($query);
- if (!($dbresult =& $this->db->sql_query($query))) {
- $this->db->sql_transaction('rollback');
- message_die(GENERAL_ERROR, 'Could not attach tag to tag', '', __LINE__, __FILE__, $query, $this->db);
- return false;
- }
- $this->db->sql_transaction('commit');
-
- // Update stats
- $tsts =& ServiceFactory::getServiceInstance('TagStatService');
- $tsts->updateStat($tag1, $relationType, $uId);
-
- return true;
- }
-
- // Return the target linked tags. If inverseRelation is true, return the source linked tags.
- function getLinkedTags($tag, $relationType, $uId = null, $inverseRelation = false, $stopList = array()) {
- // Set up the SQL query.
- if($inverseRelation) {
- $queriedTag = "tag1";
- $givenTag = "tag2";
- } else {
- $queriedTag = "tag2";
- $givenTag = "tag1";
+ var $db;
+ var $tablename;
+
+ function &getInstance(&$db) {
+ static $instance;
+ if (!isset($instance))
+ $instance =& new Tag2TagService($db);
+ return $instance;
}
- $query = "SELECT DISTINCT ". $queriedTag ." as 'tag'";
- $query.= " FROM `". $this->getTableName() ."`";
- $query.= " WHERE 1=1";
- if($tag !=null) {
- $query.= " AND ". $givenTag ." = '". $tag ."'";
- }
- if($relationType) {
- $query.= " AND relationType = '". $relationType ."'";
- }
- if($uId != null) {
- $query.= " AND uId = '".$uId."'";
- }
-//die($query);
- if (! ($dbresult =& $this->db->sql_query($query)) ){
- message_die(GENERAL_ERROR, 'Could not get related tags', '', __LINE__, __FILE__, $query, $this->db);
- return false;
- }
-
- $rowset = $this->db->sql_fetchrowset($dbresult);
- $output = array();
- foreach($rowset as $row) {
- if(!in_array($row['tag'], $stopList)) {
-
- $output[] = $row['tag'];
- }
+ function Tag2TagService(&$db) {
+ $this->db =& $db;
+ $this->tablename = $GLOBALS['tableprefix'] .'tags2tags';
}
- //bijective case for '='
- if($relationType == '=' && $inverseRelation == false) {
- //$stopList[] = $tag;
- $bijectiveOutput = $this->getLinkedTags($tag, $relationType, $uId, true, $stopList);
- $output = array_merge($output, $bijectiveOutput);
- //$output = array_unique($output); // remove duplication
+ function addLinkedTags($tag1, $tag2, $relationType, $uId) {
+ if($tag1 == $tag2 || strlen($tag1) == 0 || strlen($tag2) == 0
+ || ($relationType != ">" && $relationType != "=")
+ || ($this->existsLinkedTags($tag1, $tag2, $relationType, $uId))) {
+ return false;
+ }
+ $values = array('tag1' => $tag1, 'tag2' => $tag2, 'relationType'=> $relationType, 'uId'=> $uId);
+ $query = 'INSERT INTO '. $this->getTableName() .' '. $this->db->sql_build_array('INSERT', $values);
+ //die($query);
+ if (!($dbresult =& $this->db->sql_query($query))) {
+ $this->db->sql_transaction('rollback');
+ message_die(GENERAL_ERROR, 'Could not attach tag to tag', '', __LINE__, __FILE__, $query, $this->db);
+ return false;
+ }
+ $this->db->sql_transaction('commit');
+
+ // Update stats
+ $tsts =& ServiceFactory::getServiceInstance('TagStatService');
+ $tsts->updateStat($tag1, $relationType, $uId);
+
+ return true;
}
- return $output;
- }
+ // Return the target linked tags. If inverseRelation is true, return the source linked tags.
+ function getLinkedTags($tag, $relationType, $uId = null, $inverseRelation = false, $stopList = array()) {
+ // Set up the SQL query.
+ if($inverseRelation) {
+ $queriedTag = "tag1";
+ $givenTag = "tag2";
+ } else {
+ $queriedTag = "tag2";
+ $givenTag = "tag1";
+ }
+
+ $query = "SELECT DISTINCT ". $queriedTag ." as 'tag'";
+ $query.= " FROM `". $this->getTableName() ."`";
+ $query.= " WHERE 1=1";
+ if($tag !=null) {
+ $query.= " AND ". $givenTag ." = '". $tag ."'";
+ }
+ if($relationType) {
+ $query.= " AND relationType = '". $relationType ."'";
+ }
+ if($uId != null) {
+ $query.= " AND uId = '".$uId."'";
+ }
+ //die($query);
+ if (! ($dbresult =& $this->db->sql_query($query)) ){
+ message_die(GENERAL_ERROR, 'Could not get related tags', '', __LINE__, __FILE__, $query, $this->db);
+ return false;
+ }
- /* TODO: clean the outputs to obtain homogenous ones*/
- function getAllLinkedTags($tag1, $relationType, $uId, $asFlatList=true, $stopList=array()) {
- $asFlatList = true; //we disable the tree list parameter for the moment
+ $rowset = $this->db->sql_fetchrowset($dbresult);
+ $output = array();
+ foreach($rowset as $row) {
+ if(!in_array($row['tag'], $stopList)) {
- if(in_array($tag1, $stopList)) {
- return array();
- }
+ $output[] = $row['tag'];
+ }
+ }
- $stopList[] = $tag1;
- $linkedTags = $this->getLinkedTags($tag1, $relationType, $uId, false, $stopList);
+ //bijective case for '='
+ if($relationType == '=' && $inverseRelation == false) {
+ //$stopList[] = $tag;
+ $bijectiveOutput = $this->getLinkedTags($tag, $relationType, $uId, true, $stopList);
+ $output = array_merge($output, $bijectiveOutput);
+ //$output = array_unique($output); // remove duplication
+ }
- if($relationType != '=') {
- $linkedTags = array_merge($linkedTags, $this->getLinkedTags($tag1, '=', $uId, false, $stopList));
+ return $output;
}
- if(count($linkedTags) == 0) {
- return array();
- } else {
- $output = array();
- if($asFlatList == true) {
- //$output[$tag1] = $tag1;
- } else {
- $output = array('node'=>$tag1);
- }
-
- foreach($linkedTags as $linkedTag) {
- $allLinkedTags = $this->getAllLinkedTags($linkedTag, $relationType, $uId, $asFlatList, $stopList);
-
- if($asFlatList == true) {
- $output[] = $linkedTag;
- if(is_array($allLinkedTags)) {
-
- $output = array_merge($output, $allLinkedTags);
- } else {
- $output[] = $allLinkedTags;
- }
+ /* TODO: clean the outputs to obtain homogenous ones*/
+ function getAllLinkedTags($tag1, $relationType, $uId, $asFlatList=true, $stopList=array()) {
+ $asFlatList = true; //we disable the tree list parameter for the moment
+
+ if(in_array($tag1, $stopList) || $tag1 == '') {
+ return array();
+ }
+
+ $stopList[] = $tag1;
+ $linkedTags = $this->getLinkedTags($tag1, $relationType, $uId, false, $stopList);
+
+ if($relationType != '=') {
+ $linkedTags = array_merge($linkedTags, $this->getLinkedTags($tag1, '=', $uId, false, $stopList));
+ }
+
+ if(count($linkedTags) == 0) {
+ return array();
} else {
- $output[] = $allLinkedTags;
+ $output = array();
+ if($asFlatList == true) {
+ //$output[$tag1] = $tag1;
+ } else {
+ $output = array('node'=>$tag1);
+ }
+
+ foreach($linkedTags as $linkedTag) {
+ $allLinkedTags = $this->getAllLinkedTags($linkedTag, $relationType, $uId, $asFlatList, $stopList);
+
+ if($asFlatList == true) {
+ $output[] = $linkedTag;
+ if(is_array($allLinkedTags)) {
+
+ $output = array_merge($output, $allLinkedTags);
+ } else {
+ $output[] = $allLinkedTags;
+ }
+ } else {
+ $output[] = $allLinkedTags;
+ }
+ }
}
- }
- }
- //$output = array_unique($output); // remove duplication
- return $output;
- }
-
- function getOrphewTags($relationType, $uId = 0, $limit = null, $orderBy = null) {
- $query = "SELECT DISTINCT tts.tag1 as tag";
- $query.= " FROM `". $this->getTableName() ."` tts";
- if($orderBy != null) {
- $tsts =& ServiceFactory::getServiceInstance('TagStatService');
- $query.= ", ".$tsts->getTableName() ." tsts";
- }
- $query.= " WHERE tts.tag1 <> ALL";
- $query.= " (SELECT DISTINCT tag2 FROM `". $this->getTableName() ."`";
- $query.= " WHERE relationType = '".$relationType."'";
- if($uId > 0) {
- $query.= " AND uId = '".$uId."'";
- }
- $query.= ")";
- if($uId > 0) {
- $query.= " AND tts.uId = '".$uId."'";
+ //$output = array_unique($output); // remove duplication
+ return $output;
}
- switch($orderBy) {
+ function getOrphewTags($relationType, $uId = 0, $limit = null, $orderBy = null) {
+ $query = "SELECT DISTINCT tts.tag1 as tag";
+ $query.= " FROM `". $this->getTableName() ."` tts";
+ if($orderBy != null) {
+ $tsts =& ServiceFactory::getServiceInstance('TagStatService');
+ $query.= ", ".$tsts->getTableName() ." tsts";
+ }
+ $query.= " WHERE tts.tag1 <> ALL";
+ $query.= " (SELECT DISTINCT tag2 FROM `". $this->getTableName() ."`";
+ $query.= " WHERE relationType = '".$relationType."'";
+ if($uId > 0) {
+ $query.= " AND uId = '".$uId."'";
+ }
+ $query.= ")";
+ if($uId > 0) {
+ $query.= " AND tts.uId = '".$uId."'";
+ }
+
+ switch($orderBy) {
case "nb":
- $query.= " AND tts.tag1 = tsts.tag1";
- $query.= " AND tsts.relationType = '".$relationType."'";
- if($uId > 0) {
- $query.= " AND tsts.uId = ".$uId;
- }
- $query.= " ORDER BY tsts.nb DESC";
- break;
+ $query.= " AND tts.tag1 = tsts.tag1";
+ $query.= " AND tsts.relationType = '".$relationType."'";
+ if($uId > 0) {
+ $query.= " AND tsts.uId = ".$uId;
+ }
+ $query.= " ORDER BY tsts.nb DESC";
+ break;
case "depth": // by nb of descendants
- $query.= " AND tts.tag1 = tsts.tag1";
- $query.= " AND tsts.relationType = '".$relationType."'";
- if($uId > 0) {
- $query.= " AND tsts.uId = ".$uId;
- }
- $query.= " ORDER BY tsts.depth DESC";
- break;
+ $query.= " AND tts.tag1 = tsts.tag1";
+ $query.= " AND tsts.relationType = '".$relationType."'";
+ if($uId > 0) {
+ $query.= " AND tsts.uId = ".$uId;
+ }
+ $query.= " ORDER BY tsts.depth DESC";
+ break;
case "nbupdate":
- $query.= " AND tts.tag1 = tsts.tag1";
- $query.= " AND tsts.relationType = '".$relationType."'";
- if($uId > 0) {
- $query.= " AND tsts.uId = ".$uId;
- }
- $query.= " ORDER BY tsts.nbupdate DESC";
- break;
+ $query.= " AND tts.tag1 = tsts.tag1";
+ $query.= " AND tsts.relationType = '".$relationType."'";
+ if($uId > 0) {
+ $query.= " AND tsts.uId = ".$uId;
+ }
+ $query.= " ORDER BY tsts.nbupdate DESC";
+ break;
+ }
+
+ if($limit != null) {
+ $query.= " LIMIT 0,".$limit;
+ }
+
+ if (! ($dbresult =& $this->db->sql_query($query)) ){
+ message_die(GENERAL_ERROR, 'Could not get linked tags', '', __LINE__, __FILE__, $query, $this->db);
+ return false;
+ }
+ return $this->db->sql_fetchrowset($dbresult);
+ }
+
+ function getMenuTags($uId) {
+ if(strlen($GLOBALS['menuTag']) < 1) {
+ return array();
+ } else {
+ // we don't use the getAllLinkedTags function in order to improve performance
+ $query = "SELECT tag2 as 'tag', COUNT(tag2) as 'count'";
+ $query.= " FROM `". $this->getTableName() ."`";
+ $query.= " WHERE tag1 = '".$GLOBALS['menuTag']."'";
+ $query.= " AND relationType = '>'";
+ if($uId > 0) {
+ $query.= " AND uId = '".$uId."'";
+ }
+ $query.= " GROUP BY tag2";
+ $query.= " ORDER BY count DESC";
+ $query.= " LIMIT 0, ".$GLOBALS['maxSizeMenuBlock'];
+
+ if (! ($dbresult =& $this->db->sql_query($query)) ){
+ message_die(GENERAL_ERROR, 'Could not get linked tags', '', __LINE__, __FILE__, $query, $this->db);
+ return false;
+ }
+ return $this->db->sql_fetchrowset($dbresult);
+ }
}
- if($limit != null) {
- $query.= " LIMIT 0,".$limit;
+
+ function existsLinkedTags($tag1, $tag2, $relationType, $uId) {
+ $query = "SELECT tag1, tag2, relationType, uId FROM `". $this->getTableName() ."`";
+ $query.= " WHERE tag1 = '" .$tag1 ."'";
+ $query.= " AND tag2 = '".$tag2."'";
+ $query.= " AND relationType = '". $relationType ."'";
+ $query.= " AND uId = '".$uId."'";
+
+ return $this->db->sql_numrows($this->db->sql_query($query)) > 0;
+ }
+
+ function getLinks($uId) {
+ $query = "SELECT tag1, tag2, relationType, uId FROM `". $this->getTableName() ."`";
+ $query.= " WHERE 1=1";
+ if($uId > 0) {
+ $query.= " AND uId = '".$uId."'";
+ }
+
+ return $this->db->sql_fetchrowset($this->db->sql_query($query));
}
- if (! ($dbresult =& $this->db->sql_query($query)) ){
- message_die(GENERAL_ERROR, 'Could not get linked tags', '', __LINE__, __FILE__, $query, $this->db);
- return false;
- }
- return $this->db->sql_fetchrowset($dbresult);
- }
-
- function getMenuTags($uId) {
- if(strlen($GLOBALS['menuTag']) < 1) {
- return array();
- } else {
- // we don't use the getAllLinkedTags function in order to improve performance
- $query = "SELECT tag2 as 'tag', COUNT(tag2) as 'count'";
- $query.= " FROM `". $this->getTableName() ."`";
- $query.= " WHERE tag1 = '".$GLOBALS['menuTag']."'";
- $query.= " AND relationType = '>'";
- if($uId > 0) {
- $query.= " AND uId = '".$uId."'";
- }
- $query.= " GROUP BY tag2";
- $query.= " ORDER BY count DESC";
- $query.= " LIMIT 0, ".$GLOBALS['maxSizeMenuBlock'];
-
- if (! ($dbresult =& $this->db->sql_query($query)) ){
- message_die(GENERAL_ERROR, 'Could not get linked tags', '', __LINE__, __FILE__, $query, $this->db);
- return false;
- }
- return $this->db->sql_fetchrowset($dbresult);
+ function removeLinkedTags($tag1, $tag2, $relationType, $uId) {
+ if(($tag1 != '' && $tag1 == $tag2) ||
+ ($relationType != ">" && $relationType != "=" && $relationType != "") ||
+ ($tag1 == '' && $tag2 == '' && $relationType == '' && $uId == '')) {
+ return false;
+ }
+ $query = 'DELETE FROM '. $this->getTableName();
+ $query.= ' WHERE 1=1';
+ $query.= strlen($tag1)>0 ? ' AND tag1 = "'. $tag1 .'"' : '';
+ $query.= strlen($tag2)>0 ? ' AND tag2 = "'. $tag2 .'"' : '';
+ $query.= strlen($relationType)>0 ? ' AND relationType = "'. $relationType .'"' : '';
+ $query.= strlen($uId)>0 ? ' AND uId = "'. $uId .'"' : '';
+
+ if (!($dbresult =& $this->db->sql_query($query))) {
+ message_die(GENERAL_ERROR, 'Could not remove tag relation', '', __LINE__, __FILE__, $query, $this->db);
+ return false;
+ }
+
+ // Update stats
+ $tsts =& ServiceFactory::getServiceInstance('TagStatService');
+ $tsts->updateStat($tag1, $relationType, $uId);
+
+ return true;
}
- }
+ function renameTag($uId, $oldName, $newName) {
+ $query = 'UPDATE `'. $this->getTableName() .'`';
+ $query.= ' SET tag1="'.$newName.'"';
+ $query.= ' WHERE tag1="'.$oldName.'"';
+ $query.= ' AND uId="'.$uId.'"';
+ $this->db->sql_query($query);
+
+ $query = 'UPDATE `'. $this->getTableName() .'`';
+ $query.= ' SET tag2="'.$newName.'"';
+ $query.= ' WHERE tag2="'.$oldName.'"';
+ $query.= ' AND uId="'.$uId.'"';
+ $this->db->sql_query($query);
- function existsLinkedTags($tag1, $tag2, $relationType, $uId) {
- $query = "SELECT tag1, tag2, relationType, uId FROM `". $this->getTableName() ."`";
- $query.= " WHERE tag1 = '" .$tag1 ."'";
- $query.= " AND tag2 = '".$tag2."'";
- $query.= " AND relationType = '". $relationType ."'";
- $query.= " AND uId = '".$uId."'";
+ // Update stats
+ $tsts =& ServiceFactory::getServiceInstance('TagStatService');
+ $tsts->updateStat($oldName, '=', $uId);
+ $tsts->updateStat($oldName, '>', $uId);
+ $tsts->updateStat($newName, '=', $uId);
+ $tsts->updateStat($newName, '>', $uId);
- return $this->db->sql_numrows($this->db->sql_query($query)) > 0;
- }
+ return true;
- function getLinks($uId) {
- $query = "SELECT tag1, tag2, relationType, uId FROM `". $this->getTableName() ."`";
- $query.= " WHERE 1=1";
- if($uId > 0) {
- $query.= " AND uId = '".$uId."'";
}
- return $this->db->sql_fetchrowset($this->db->sql_query($query));
- }
+ function deleteAll() {
+ $query = 'TRUNCATE TABLE `'. $this->getTableName() .'`';
+ $this->db->sql_query($query);
- function removeLinkedTags($tag1, $tag2, $relationType, $uId) {
- if(($tag1 != '' && $tag1 == $tag2) ||
- ($relationType != ">" && $relationType != "=" && $relationType != "") ||
- ($tag1 == '' && $tag2 == '' && $relationType == '' && $uId == '')) {
- return false;
+ $tsts =& ServiceFactory::getServiceInstance('TagStatService');
+ $tsts->deleteAll();
}
- $query = 'DELETE FROM '. $this->getTableName();
- $query.= ' WHERE 1=1';
- $query.= strlen($tag1)>0 ? ' AND tag1 = "'. $tag1 .'"' : '';
- $query.= strlen($tag2)>0 ? ' AND tag2 = "'. $tag2 .'"' : '';
- $query.= strlen($relationType)>0 ? ' AND relationType = "'. $relationType .'"' : '';
- $query.= strlen($uId)>0 ? ' AND uId = "'. $uId .'"' : '';
-
- if (!($dbresult =& $this->db->sql_query($query))) {
- message_die(GENERAL_ERROR, 'Could not remove tag relation', '', __LINE__, __FILE__, $query, $this->db);
- return false;
- }
-
- // Update stats
- $tsts =& ServiceFactory::getServiceInstance('TagStatService');
- $tsts->updateStat($tag1, $relationType, $uId);
-
- return true;
- }
-
- function renameTag($uId, $oldName, $newName) {
- $query = 'UPDATE `'. $this->getTableName() .'`';
- $query.= ' SET tag1="'.$newName.'"';
- $query.= ' WHERE tag1="'.$oldName.'"';
- $query.= ' AND uId="'.$uId.'"';
- $this->db->sql_query($query);
-
- $query = 'UPDATE `'. $this->getTableName() .'`';
- $query.= ' SET tag2="'.$newName.'"';
- $query.= ' WHERE tag2="'.$oldName.'"';
- $query.= ' AND uId="'.$uId.'"';
- $this->db->sql_query($query);
-
- // Update stats
- $tsts =& ServiceFactory::getServiceInstance('TagStatService');
- $tsts->updateStat($oldName, '=', $uId);
- $tsts->updateStat($oldName, '>', $uId);
- $tsts->updateStat($newName, '=', $uId);
- $tsts->updateStat($newName, '>', $uId);
-
- return true;
-
- }
-
- function deleteAll() {
- $query = 'TRUNCATE TABLE `'. $this->getTableName() .'`';
- $this->db->sql_query($query);
-
- $tsts =& ServiceFactory::getServiceInstance('TagStatService');
- $tsts->deleteAll();
- }
-
- // Properties
- function getTableName() { return $this->tablename; }
- function setTableName($value) { $this->tablename = $value; }
+
+ // Properties
+ function getTableName() { return $this->tablename; }
+ function setTableName($value) { $this->tablename = $value; }
}
?>
diff --git a/services/tagservice.php b/services/tagservice.php
index 47f82d6..83349c6 100644
--- a/services/tagservice.php
+++ b/services/tagservice.php
@@ -1,89 +1,90 @@
<?php
class TagService {
- var $db;
- var $tablename;
+ var $db;
+ var $tablename;
- function &getInstance(&$db) {
- static $instance;
- if (!isset($instance))
- $instance =& new TagService($db);
- return $instance;
- }
+ function &getInstance(&$db) {
+ static $instance;
+ if (!isset($instance))
+ $instance =& new TagService($db);
+ return $instance;
+ }
- function TagService(&$db) {
- $this->db =& $db;
- $this->tablename = $GLOBALS['tableprefix'] .'tags';
- }
+ function TagService(&$db) {
+ $this->db =& $db;
+ $this->tablename = $GLOBALS['tableprefix'] .'tags';
+ }
- function getDescription($tag, $uId) {
- $query = 'SELECT tag, uId, tDescription';
- $query.= ' FROM '.$this->getTableName();
- $query.= ' WHERE tag = "'.$tag.'"';
- $query.= ' AND uId = "'.$uId.'"';
+ function getDescription($tag, $uId) {
+ $query = 'SELECT tag, uId, tDescription';
+ $query.= ' FROM '.$this->getTableName();
+ $query.= ' WHERE tag = "'.$tag.'"';
+ $query.= ' AND uId = "'.$uId.'"';
- if (!($dbresult = & $this->db->sql_query($query))) {
- message_die(GENERAL_ERROR, 'Could not get tag description', '', __LINE__, __FILE__, $query, $this->db);
- return false;
- }
+ if (!($dbresult = & $this->db->sql_query($query))) {
+ message_die(GENERAL_ERROR, 'Could not get tag description', '', __LINE__, __FILE__, $query, $this->db);
+ return false;
+ }
- if ($row =& $this->db->sql_fetchrow($dbresult)) {
- return $row;
- } else {
- return array();
- }
- }
+ if ($row =& $this->db->sql_fetchrow($dbresult)) {
+ return $row;
+ } else {
+ return array('tDescription'=>'');
+ }
+ }
- function getAllDescriptions($tag) {
- $query = 'SELECT tag, uId, tDescription';
- $query.= ' FROM '.$this->getTableName();
- $query.= ' WHERE tag = "'.$tag.'"';
+ function getAllDescriptions($tag) {
+ $query = 'SELECT tag, uId, tDescription';
+ $query.= ' FROM '.$this->getTableName();
+ $query.= ' WHERE tag = "'.$tag.'"';
- if (!($dbresult = & $this->db->sql_query($query))) {
- message_die(GENERAL_ERROR, 'Could not get tag description', '', __LINE__, __FILE__, $query, $this->db);
- return false;
- }
+ if (!($dbresult = & $this->db->sql_query($query))) {
+ message_die(GENERAL_ERROR, 'Could not get tag description', '', __LINE__, __FILE__, $query, $this->db);
+ return false;
+ }
- return $this->db->sql_fetchrowset($dbresult);
- }
+ return $this->db->sql_fetchrowset($dbresult);
+ }
- function updateDescription($tag, $uId, $desc) {
- if(count($this->getDescription($tag, $uId))>0) {
- $query = 'UPDATE '.$this->getTableName();
- $query.= ' SET tDescription="'.$this->db->sql_escape($desc).'"';
- $query.= ' WHERE tag="'.$tag.'" AND uId="'.$uId.'"';
- } else {
- $values = array('tag'=>$tag, 'uId'=>$uId, 'tDescription'=>$desc);
- $query = 'INSERT INTO '. $this->getTableName() .' '. $this->db->sql_build_array('INSERT', $values);
+ function updateDescription($tag, $uId, $desc) {
+ $objectTag = $this->getDescription($tag, $uId);
+ if(count($objectTag)>0 && $objectTag['tDescription'] != '') {
+ $query = 'UPDATE '.$this->getTableName();
+ $query.= ' SET tDescription="'.$this->db->sql_escape($desc).'"';
+ $query.= ' WHERE tag="'.$tag.'" AND uId="'.$uId.'"';
+ } else {
+ $values = array('tag'=>$tag, 'uId'=>$uId, 'tDescription'=>$desc);
+ $query = 'INSERT INTO '. $this->getTableName() .' '. $this->db->sql_build_array('INSERT', $values);
+ }
+
+ $this->db->sql_transaction('begin');
+ if (!($dbresult = & $this->db->sql_query($query))) {
+ $this->db->sql_transaction('rollback');
+ message_die(GENERAL_ERROR, 'Could not delete bookmarks', '', __LINE__, __FILE__, $query, $this->db);
+ return false;
+ }
+ $this->db->sql_transaction('commit');
+ return true;
}
- $this->db->sql_transaction('begin');
- if (!($dbresult = & $this->db->sql_query($query))) {
- $this->db->sql_transaction('rollback');
- message_die(GENERAL_ERROR, 'Could not delete bookmarks', '', __LINE__, __FILE__, $query, $this->db);
- return false;
- }
- $this->db->sql_transaction('commit');
- return true;
- }
+ function renameTag($uId, $oldName, $newName) {
+ $query = 'UPDATE `'. $this->getTableName() .'`';
+ $query.= ' SET tag="'.$newName.'"';
+ $query.= ' WHERE tag="'.$oldName.'"';
+ $query.= ' AND uId="'.$uId.'"';
+ $this->db->sql_query($query);
+ return true;
+ }
- function renameTag($uId, $oldName, $newName) {
- $query = 'UPDATE `'. $this->getTableName() .'`';
- $query.= ' SET tag="'.$newName.'"';
- $query.= ' WHERE tag="'.$oldName.'"';
- $query.= ' AND uId="'.$uId.'"';
- $this->db->sql_query($query);
- return true;
- }
-
- function deleteAll() {
- $query = 'TRUNCATE TABLE `'. $this->getTableName() .'`';
- $this->db->sql_query($query);
- }
+ function deleteAll() {
+ $query = 'TRUNCATE TABLE `'. $this->getTableName() .'`';
+ $this->db->sql_query($query);
+ }
- // Properties
- function getTableName() { return $this->tablename; }
- function setTableName($value) { $this->tablename = $value; }
+ // Properties
+ function getTableName() { return $this->tablename; }
+ function setTableName($value) { $this->tablename = $value; }
}
?>
diff --git a/services/userservice.php b/services/userservice.php
index 19e81c6..241934e 100644
--- a/services/userservice.php
+++ b/services/userservice.php
@@ -76,6 +76,22 @@ class UserService {
return $users;
}
+ function & getObjectUsers($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[] = new User($row[$this->getFieldName('primary')], $row[$this->getFieldName('username')]);
+ }
+ return $users;
+ }
+
function _randompassword() {
$seed = (integer) md5(microtime());
mt_srand($seed);
@@ -109,10 +125,15 @@ class UserService {
return $this->_getuser($this->getFieldName('username'), $username);
}
+ function getObjectUserByUsername($username) {
+ $user = $this->_getuser($this->getFieldName('username'), $username);
+ return new User($user[$this->getFieldName('primary')], $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);
@@ -136,7 +157,7 @@ class UserService {
}
return $currentuser;
}
-
+
// Momentary useful in order to go to object code
function getCurrentObjectUser($refresh = FALSE, $newval = NULL) {
static $currentObjectUser;
@@ -152,6 +173,22 @@ class UserService {
return $currentObjectUser;
}
+ function existsUserWithUsername($username) {
+ if($this->getUserByUsername($username) != '') {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ function existsUser($id) {
+ if($this->getUser($id) != '') {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
function isAdmin($userid) {
$user = $this->getUser($userid);
@@ -446,27 +483,84 @@ class UserService {
function setCookieKey($value) { $this->cookiekey = $value; }
}
+
+/* Defines a user. Rare fields are filled if required. */
class User {
var $id;
var $username;
+ var $name;
+ var $email;
+ var $homepage;
+ var $content;
+ var $datetime;
var $isAdmin;
function User($id, $username) {
$this->id = $id;
$this->username = $username;
}
-
+
function getId() {
return $this->id;
}
-
+
function getUsername() {
return $this->username;
}
+
+ function getName() {
+ // Look for value only if not already set
+ if(!isset($this->name)) {
+ $userservice =& ServiceFactory::getServiceInstance('UserService');
+ $user = $userservice->getUser($this->id);
+ $this->name = $user['name'];
+ }
+ return $this->name;
+ }
+
+ function getEmail() {
+ // Look for value only if not already set
+ if(!isset($this->email)) {
+ $userservice =& ServiceFactory::getServiceInstance('UserService');
+ $user = $userservice->getUser($this->id);
+ $this->email = $user['email'];
+ }
+ return $this->email;
+ }
+
+ function getHomepage() {
+ // Look for value only if not already set
+ if(!isset($this->homepage)) {
+ $userservice =& ServiceFactory::getServiceInstance('UserService');
+ $user = $userservice->getUser($this->id);
+ $this->homepage = $user['homepage'];
+ }
+ return $this->homepage;
+ }
+ function getContent() {
+ // Look for value only if not already set
+ if(!isset($this->content)) {
+ $userservice =& ServiceFactory::getServiceInstance('UserService');
+ $user = $userservice->getUser($this->id);
+ $this->content = $user['uContent'];
+ }
+ return $this->content;
+ }
+
+ function getDatetime() {
+ // Look for value only if not already set
+ if(!isset($this->content)) {
+ $userservice =& ServiceFactory::getServiceInstance('UserService');
+ $user = $userservice->getUser($this->id);
+ $this->datetime = $user['uDatetime'];
+ }
+ return $this->datetime;
+ }
+
function isAdmin() {
- // Look for value if not already set
+ // Look for value only if not already set
if(!isset($this->isAdmin)) {
$userservice =& ServiceFactory::getServiceInstance('UserService');
$this->isAdmin = $userservice->isAdmin($this->id);
diff --git a/tag2tagadd.php b/tag2tagadd.php
index 935cf88..07ce3a9 100644
--- a/tag2tagadd.php
+++ b/tag2tagadd.php
@@ -20,43 +20,52 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
***************************************************************************/
require_once('header.inc.php');
+
+/* Service creation: only useful services are created */
$tag2tagservice = & ServiceFactory :: getServiceInstance('Tag2TagService');
$templateservice = & ServiceFactory :: getServiceInstance('TemplateService');
$userservice = & ServiceFactory :: getServiceInstance('UserService');
+/* Managing all possible inputs */
+isset($_POST['confirm']) ? define('POST_CONFIRM', $_POST['confirm']): define('POST_CONFIRM', '');
+isset($_POST['cancel']) ? define('POST_CANCEL', $_POST['cancel']): define('POST_CANCEL', '');
+isset($_POST['tag1']) ? define('POST_TAG1', $_POST['tag1']): define('POST_TAG1', '');
+isset($_POST['linkType']) ? define('POST_LINKTYPE', $_POST['linkType']): define('POST_LINKTYPE', '');
+isset($_POST['tag2']) ? define('POST_TAG2', $_POST['tag2']): define('POST_TAG2', '');
-
-$logged_on_user = $userservice->getCurrentUser();
+/* Managing current logged user */
+$currentObjectUser = $userservice->getCurrentObjectUser();
//permissions
-if($logged_on_user == null) {
+if(!$userservice->isLoggedOn()) {
$tplVars['error'] = T_('Permission denied.');
$templateservice->loadTemplate('error.500.tpl', $tplVars);
exit();
}
-
+/* Managing path info */
list ($url, $tag1) = explode('/', $_SERVER['PATH_INFO']);
-if ($_POST['confirm']) {
- $tag1 = $_POST['tag1'];
- $linkType = $_POST['linkType'];
- $tag2 = $_POST['tag2'];
- if ($tag2tagservice->addLinkedTags($tag1, $tag2, $linkType, $userservice->getCurrentUserId())) {
+if (POST_CONFIRM != '') {
+ $tag1 = POST_TAG1;
+ $linkType = POST_LINKTYPE;
+ $tag2 = POST_TAG2;
+ if ($tag2tagservice->addLinkedTags($tag1, $tag2, $linkType, $currentObjectUser->getId())) {
$tplVars['msg'] = T_('Tag link created');
- header('Location: '. createURL('bookmarks', $logged_on_user[$userservice->getFieldName('username')]));
+ header('Location: '. createURL('bookmarks', $currentObjectUser->getUsername()));
} else {
$tplVars['error'] = T_('Failed to create the link');
$templateservice->loadTemplate('error.500.tpl', $tplVars);
exit();
}
-} elseif ($_POST['cancel']) {
- header('Location: '. createURL('bookmarks', $logged_on_user[$userservice->getFieldName('username')] .'/'. $tags));
+} elseif (POST_CANCEL) {
+ header('Location: '. createURL('bookmarks', $currentObjectUser->getUsername() .'/'. $tags));
}
-$tplVars['links'] = $tag2tagservice->getLinks($userservice->getCurrentUserId());
+$tplVars['links'] = $tag2tagservice->getLinks($currentObjectUser->getId());
$tplVars['tag1'] = $tag1;
+$tplVars['tag2'] = '';
$tplVars['subtitle'] = T_('Add Tag Link') .': '. $tag1;
$tplVars['formaction'] = $_SERVER['SCRIPT_NAME'] .'/'. $tag1;
$tplVars['referrer'] = $_SERVER['HTTP_REFERER'];
diff --git a/tag2tagdelete.php b/tag2tagdelete.php
index f0ae6ed..b62b623 100644
--- a/tag2tagdelete.php
+++ b/tag2tagdelete.php
@@ -1,62 +1,87 @@
<?php
/***************************************************************************
-Copyright (C) 2006 Scuttle project
-http://sourceforge.net/projects/scuttle/
-http://scuttle.org/
+ Copyright (C) 2006 Scuttle project
+ http://sourceforge.net/projects/scuttle/
+ http://scuttle.org/
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-***************************************************************************/
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ ***************************************************************************/
require_once('header.inc.php');
+
+/* Service creation: only useful services are created */
$tag2tagservice = & ServiceFactory :: getServiceInstance('Tag2TagService');
$templateservice = & ServiceFactory :: getServiceInstance('TemplateService');
$userservice = & ServiceFactory :: getServiceInstance('UserService');
-$logged_on_user = $userservice->getCurrentUser();
+/* Managing all possible inputs */
+isset($_POST['confirm']) ? define('POST_CONFIRM', $_POST['confirm']): define('POST_CONFIRM', '');
+isset($_POST['cancel']) ? define('POST_CANCEL', $_POST['cancel']): define('POST_CANCEL', '');
+isset($_POST['tag1']) ? define('POST_TAG1', $_POST['tag1']): define('POST_TAG1', '');
+isset($_POST['linkType']) ? define('POST_LINKTYPE', $_POST['linkType']): define('POST_LINKTYPE', '');
+isset($_POST['tag2']) ? define('POST_TAG2', $_POST['tag2']): define('POST_TAG2', '');
+
+isset($_SERVER['HTTP_REFERER']) ? define('HTTP_REFERER', $_SERVER['HTTP_REFERER']): define('HTTP_REFERER', '');
+
+/* Managing current logged user */
+$currentUser = $userservice->getCurrentObjectUser();
//permissions
-if($logged_on_user == null) {
- $tplVars['error'] = T_('Permission denied.');
- $templateservice->loadTemplate('error.500.tpl', $tplVars);
- exit();
+if(!$userservice->isloggedOn()) {
+ $tplVars['error'] = T_('Permission denied.');
+ $templateservice->loadTemplate('error.500.tpl', $tplVars);
+ exit();
}
-list ($url, $tag1, $tag2) = explode('/', $_SERVER['PATH_INFO']);
-
-if ($_POST['confirm']) {
- $tag = $_POST['tag1'];
- $linkType = $_POST['linkType'];
- $newTag = $_POST['tag2'];
- if ($tag2tagservice->removeLinkedTags($_POST['tag1'], $_POST['tag2'], $linkType, $userservice->getCurrentUserId())) {
- $tplVars['msg'] = T_('Tag link deleted');
- header('Location: '. createURL('bookmarks', $logged_on_user[$userservice->getFieldName('username')].'/'.$tag));
- } else {
- $tplVars['error'] = T_('Failed to delete the link');
- $templateservice->loadTemplate('error.500.tpl', $tplVars);
- exit();
- }
-} elseif ($_POST['cancel']) {
- header('Location: '. createURL('bookmarks', $logged_on_user[$userservice->getFieldName('username')] .'/'. $tags));
+/* Managing path info */
+if(isset($_SERVER['PATH_INFO'])) {
+ $exploded = explode('/', $_SERVER['PATH_INFO']);
+ if(count($exploded) == 3) {
+ list ($url, $tag1, $tag2) = explode('/', $_SERVER['PATH_INFO']);
+ } else {
+ list ($url, $tag1) = explode('/', $_SERVER['PATH_INFO']);
+ $tag2 = '';
+ }
+} else {
+ $url = $tag1 = $tag2 = '';
+}
+
+
+
+if (POST_CONFIRM) {
+ $tag = POST_TAG1;
+ $linkType = POST_LINKTYPE;
+ $newTag = POST_TAG2;
+ if ($tag2tagservice->removeLinkedTags(POST_TAG1, POST_TAG2, POST_LINKTYPE, $currentUser->getId())) {
+ $tplVars['msg'] = T_('Tag link deleted');
+ header('Location: '. createURL('bookmarks', $currentUser->getUsername().'/'.$tag));
+ } else {
+ $tplVars['error'] = T_('Failed to delete the link');
+ $templateservice->loadTemplate('error.500.tpl', $tplVars);
+ exit();
+ }
+} elseif (POST_CANCEL) {
+ header('Location: '. createURL('bookmarks', $currentUser->getUsername() .'/'. $tags));
}
-$tplVars['links'] = $tag2tagservice->getLinks($userservice->getCurrentUserId());
+$tplVars['links'] = $tag2tagservice->getLinks($currentUser->getId());
$tplVars['tag1'] = $tag1;
$tplVars['tag2'] = $tag2;
$tplVars['subtitle'] = T_('Delete Link Between Tags') .': '. $tag1.' > '.$tag2;
-$tplVars['formaction'] = $_SERVER['SCRIPT_NAME'] .'/'. $tag;
-$tplVars['referrer'] = $_SERVER['HTTP_REFERER'];
+$tplVars['formaction'] = $_SERVER['SCRIPT_NAME'];
+$tplVars['referrer'] = HTTP_REFERER;
$templateservice->loadTemplate('tag2tagdelete.tpl', $tplVars);
?>
diff --git a/tag2tagedit.php b/tag2tagedit.php
index 6dd7b51..e75553f 100644
--- a/tag2tagedit.php
+++ b/tag2tagedit.php
@@ -20,12 +20,19 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
***************************************************************************/
require_once('header.inc.php');
+
+/* Service creation: only useful services are created */
$tag2tagservice = & ServiceFactory :: getServiceInstance('Tag2TagService');
$templateservice = & ServiceFactory :: getServiceInstance('TemplateService');
$userservice = & ServiceFactory :: getServiceInstance('UserService');
+/* Managing all possible inputs */
+isset($_SERVER['HTTP_REFERER']) ? define('HTTP_REFERER', $_SERVER['HTTP_REFERER']): define('HTTP_REFERER', '');
+
+/* Managing current logged user */
$logged_on_user = $userservice->getCurrentUser();
+
//permissions
if($logged_on_user == null) {
$tplVars['error'] = T_('Permission denied.');
@@ -33,23 +40,18 @@ if($logged_on_user == null) {
exit();
}
-list ($url, $tag1, $tag2) = explode('/', $_SERVER['PATH_INFO']);
-
-/*if ($_POST['confirm']) {
- $tag = $_POST['tag1'];
- $linkType = $_POST['linkType'];
- $newTag = $_POST['tag2'];
- if ($tag2tagservice->removeLinkedTags($_POST['tag1'], $_POST['tag2'], $linkType, $userservice->getCurrentUserId())) {
- $tplVars['msg'] = T_('Tag link deleted');
- header('Location: '. createURL('bookmarks', $logged_on_user[$userservice->getFieldName('username')]));
- } else {
- $tplVars['error'] = T_('Failed to delete the link');
- $templateservice->loadTemplate('error.500.tpl', $tplVars);
- exit();
- }
-} elseif ($_POST['cancel']) {
- header('Location: '. createURL('bookmarks', $logged_on_user[$userservice->getFieldName('username')] .'/'. $tags));
-}*/
+/* Managing path info */
+if(isset($_SERVER['PATH_INFO'])) {
+ $exploded = explode('/', $_SERVER['PATH_INFO']);
+ if(count($exploded) == 3) {
+ list ($url, $tag1, $tag2) = explode('/', $_SERVER['PATH_INFO']);
+ } else {
+ list ($url, $tag1) = explode('/', $_SERVER['PATH_INFO']);
+ $tag2 = '';
+ }
+} else {
+ $url = $tag1 = $tag2 = '';
+}
$tplVars['links'] = $tag2tagservice->getLinks($userservice->getCurrentUserId());
@@ -58,6 +60,6 @@ $tplVars['tag2'] = $tag2;
$tplVars['subtitle'] = T_('Edit Link Between Tags') .': '. $tag1.' > '.$tag2;
$tplVars['formaddaction'] = createUrl('tag2tagadd');
$tplVars['formdeleteaction'] = createUrl('tag2tagdelete');
-$tplVars['referrer'] = $_SERVER['HTTP_REFERER'];
+$tplVars['referrer'] = HTTP_REFERER;
$templateservice->loadTemplate('tag2tagedit.tpl', $tplVars);
?>
diff --git a/tagcommondescriptionedit.php b/tagcommondescriptionedit.php
index 4c77b14..113c5bf 100644
--- a/tagcommondescriptionedit.php
+++ b/tagcommondescriptionedit.php
@@ -1,62 +1,73 @@
<?php
/***************************************************************************
-Copyright (C) 2006 - 2007 Scuttle project
-http://sourceforge.net/projects/scuttle/
-http://scuttle.org/
+ Copyright (C) 2006 - 2007 Scuttle project
+ http://sourceforge.net/projects/scuttle/
+ http://scuttle.org/
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-***************************************************************************/
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ ***************************************************************************/
require_once('header.inc.php');
+
+/* Service creation: only useful services are created */
$b2tservice = & ServiceFactory :: getServiceInstance('Bookmark2TagService');
$templateservice = & ServiceFactory :: getServiceInstance('TemplateService');
$userservice = & ServiceFactory :: getServiceInstance('UserService');
$cdservice = & ServiceFactory :: getServiceInstance('CommonDescriptionService');
-list ($url, $tag) = explode('/', $_SERVER['PATH_INFO']);
-$template = 'tagcommondescriptionedit.tpl';
+/* Managing all possible inputs */
+isset($_POST['confirm']) ? define('POST_CONFIRM', $_POST['confirm']): define('POST_CONFIRM', '');
+isset($_POST['cancel']) ? define('POST_CANCEL', $_POST['cancel']): define('POST_CANCEL', '');
+isset($_POST['description']) ? define('POST_DESCRIPTION', $_POST['description']): define('POST_DESCRIPTION', '');
+isset($_POST['referrer']) ? define('POST_REFERRER', $_POST['referrer']): define('POST_REFERRER', '');
-$logged_on_user = $userservice->getCurrentUser();
+
+/* Managing current logged user */
+$currentUser = $userservice->getCurrentObjectUser();
+
+/* Managing path info */
+list ($url, $tag) = explode('/', $_SERVER['PATH_INFO']);
//permissions
-if($logged_on_user == null) {
- $tplVars['error'] = T_('Permission denied.');
- $templateservice->loadTemplate('error.500.tpl', $tplVars);
- exit();
+if(!$userservice->isLoggedOn()) {
+ $tplVars['error'] = T_('Permission denied.');
+ $templateservice->loadTemplate('error.500.tpl', $tplVars);
+ exit();
}
-if ($_POST['confirm']) {
-
- if ( strlen($tag)>0 &&
- $cdservice->addTagDescription($tag, stripslashes($_POST['description']), $logged_on_user['uId'], time())
- ) {
- $tplVars['msg'] = T_('Tag common description updated');
- header('Location: '. $_POST['referrer']);
- } else {
- $tplVars['error'] = T_('Failed to update the tag common description');
- $template = 'error.500.tpl';
- }
-} elseif ($_POST['cancel']) {
- $logged_on_user = $userservice->getCurrentUser();
- header('Location: '. $_POST['referrer']);
+$template = 'tagcommondescriptionedit.tpl';
+
+if (POST_CONFIRM) {
+
+ if ( strlen($tag)>0 &&
+ $cdservice->addTagDescription($tag, stripslashes(POST_DESCRIPTION), $currentUser->getId(), time())
+ ) {
+ $tplVars['msg'] = T_('Tag common description updated');
+ header('Location: '. POST_REFERRER);
+ } else {
+ $tplVars['error'] = T_('Failed to update the tag common description');
+ $template = 'error.500.tpl';
+ }
+} elseif (POST_CANCEL) {
+ header('Location: '. POST_REFERRER);
} else {
- $tplVars['subtitle'] = T_('Edit Tag Common Description') .': '. $tag;
- $tplVars['formaction'] = $_SERVER['SCRIPT_NAME'] .'/'. $tag;
- $tplVars['referrer'] = $_SERVER['HTTP_REFERER'];
- $tplVars['tag'] = $tag;
- $tplVars['description'] = $cdservice->getLastTagDescription($tag);
+ $tplVars['subtitle'] = T_('Edit Tag Common Description') .': '. $tag;
+ $tplVars['formaction'] = $_SERVER['SCRIPT_NAME'] .'/'. $tag;
+ $tplVars['referrer'] = $_SERVER['HTTP_REFERER'];
+ $tplVars['tag'] = $tag;
+ $tplVars['description'] = $cdservice->getLastTagDescription($tag);
}
$templateservice->loadTemplate($template, $tplVars);
?>
diff --git a/tagdelete.php b/tagdelete.php
index efdca16..8c4b1af 100644
--- a/tagdelete.php
+++ b/tagdelete.php
@@ -20,25 +20,36 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
***************************************************************************/
require_once('header.inc.php');
+
+/* Service creation: only useful services are created */
$b2tservice = & ServiceFactory :: getServiceInstance('Bookmark2TagService');
$templateservice = & ServiceFactory :: getServiceInstance('TemplateService');
$userservice = & ServiceFactory :: getServiceInstance('UserService');
-$logged_on_user = $userservice->getCurrentUser();
+/* Managing all possible inputs */
+isset($_POST['confirm']) ? define('POST_CONFIRM', $_POST['confirm']): define('POST_CONFIRM', '');
+isset($_POST['cancel']) ? define('POST_CANCEL', $_POST['cancel']): define('POST_CANCEL', '');
+isset($_POST['referrer']) ? define('POST_REFERRER', $_POST['referrer']): define('POST_REFERRER', '');
+
+/* Managing current logged user */
+$currentUser = $userservice->getCurrentObjectUser();
+/* Managing path info */
list ($url, $tag) = explode('/', $_SERVER['PATH_INFO']);
-if ($_POST['confirm']) {
- if ($b2tservice->deleteTag($logged_on_user['uId'], $tag)) {
+
+
+if (POST_CONFIRM) {
+ if ($b2tservice->deleteTag($currentUser->getId(), $tag)) {
$tplVars['msg'] = T_('Tag deleted');
- header('Location: '. createURL('bookmarks', $logged_on_user[$userservice->getFieldName('username')]));
+ header('Location: '. createURL('bookmarks', $currentUser->getUsername()));
} else {
$tplVars['error'] = T_('Failed to delete the tag');
$templateservice->loadTemplate('error.500.tpl', $tplVars);
exit();
}
-} elseif ($_POST['cancel']) {
- header('Location: '. createURL('bookmarks', $logged_on_user[$userservice->getFieldName('username')] .'/'. $tags));
+} elseif (POST_CANCEL) {
+ header('Location: '. POST_REFERRER);
}
$tplVars['subtitle'] = T_('Delete Tag') .': '. $tag;
diff --git a/tagedit.php b/tagedit.php
index aca0607..cd248a5 100644
--- a/tagedit.php
+++ b/tagedit.php
@@ -1,61 +1,70 @@
<?php
/***************************************************************************
-Copyright (C) 2006 - 2007 Scuttle project
-http://sourceforge.net/projects/scuttle/
-http://scuttle.org/
+ Copyright (C) 2006 - 2007 Scuttle project
+ http://sourceforge.net/projects/scuttle/
+ http://scuttle.org/
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-***************************************************************************/
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ ***************************************************************************/
require_once('header.inc.php');
+
+/* Service creation: only useful services are created */
$tagservice = & ServiceFactory :: getServiceInstance('TagService');
$templateservice = & ServiceFactory :: getServiceInstance('TemplateService');
$userservice = & ServiceFactory :: getServiceInstance('UserService');
+/* Managing all possible inputs */
+isset($_POST['confirm']) ? define('POST_CONFIRM', $_POST['confirm']): define('POST_CONFIRM', '');
+isset($_POST['cancel']) ? define('POST_CANCEL', $_POST['cancel']): define('POST_CANCEL', '');
+isset($_POST['description']) ? define('POST_DESCRIPTION', $_POST['description']): define('POST_DESCRIPTION', '');
+isset($_POST['referrer']) ? define('POST_REFERRER', $_POST['referrer']): define('POST_REFERRER', '');
+
+/* Managing current logged user */
+$currentUser = $userservice->getCurrentObjectUser();
+
+/* Managing path info */
list ($url, $tag) = explode('/', $_SERVER['PATH_INFO']);
-$template = 'tagedit.tpl';
-$logged_on_user = $userservice->getCurrentUser();
+$template = 'tagedit.tpl';
//permissions
-if($logged_on_user == null) {
- $tplVars['error'] = T_('Permission denied.');
- $templateservice->loadTemplate('error.500.tpl', $tplVars);
- exit();
+if(!$userservice->isLoggedOn()) {
+ $tplVars['error'] = T_('Permission denied.');
+ $templateservice->loadTemplate('error.500.tpl', $tplVars);
+ exit();
}
-if ($_POST['confirm']) {
-
- if ( strlen($tag)>0 &&
- $tagservice->updateDescription($tag, $logged_on_user['uId'], $_POST['description'])
- ) {
- $tplVars['msg'] = T_('Tag description updated');
- header('Location: '. $_POST['referrer']);
- } else {
- $tplVars['error'] = T_('Failed to update the tag description');
- $template = 'error.500.tpl';
- }
-} elseif ($_POST['cancel']) {
- $logged_on_user = $userservice->getCurrentUser();
- header('Location: '. $_POST['referrer']);
+if (POST_CONFIRM) {
+ if ( strlen($tag)>0 &&
+ $tagservice->updateDescription($tag, $currentUser->getId(), POST_DESCRIPTION)
+ ) {
+ $tplVars['msg'] = T_('Tag description updated');
+ header('Location: '. POST_REFERRER);
+ } else {
+ $tplVars['error'] = T_('Failed to update the tag description');
+ $template = 'error.500.tpl';
+ }
+} elseif (POST_CANCEL) {
+ header('Location: '. POST_REFERRER);
} else {
- $tplVars['subtitle'] = T_('Edit Tag Description') .': '. $tag;
- $tplVars['formaction'] = $_SERVER['SCRIPT_NAME'] .'/'. $tag;
- $tplVars['referrer'] = $_SERVER['HTTP_REFERER'];
- $tplVars['tag'] = $tag;
- $tplVars['description'] = $tagservice->getDescription($tag, $logged_on_user['uId']);
+ $tplVars['subtitle'] = T_('Edit Tag Description') .': '. $tag;
+ $tplVars['formaction'] = $_SERVER['SCRIPT_NAME'] .'/'. $tag;
+ $tplVars['referrer'] = $_SERVER['HTTP_REFERER'];
+ $tplVars['tag'] = $tag;
+ $tplVars['description'] = $tagservice->getDescription($tag, $currentUser->getId());
}
$templateservice->loadTemplate($template, $tplVars);
?>
diff --git a/tagrename.php b/tagrename.php
index 29b44fb..3dde296 100644
--- a/tagrename.php
+++ b/tagrename.php
@@ -1,68 +1,80 @@
<?php
/***************************************************************************
-Copyright (C) 2006 - 2007 Scuttle project
-http://sourceforge.net/projects/scuttle/
-http://scuttle.org/
+ Copyright (C) 2006 - 2007 Scuttle project
+ http://sourceforge.net/projects/scuttle/
+ http://scuttle.org/
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-***************************************************************************/
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ ***************************************************************************/
require_once('header.inc.php');
+
+/* Service creation: only useful services are created */
$b2tservice = & ServiceFactory :: getServiceInstance('Bookmark2TagService');
$tagservice = & ServiceFactory :: getServiceInstance('TagService');
$tag2tagservice = & ServiceFactory :: getServiceInstance('Tag2tagService');
$templateservice = & ServiceFactory :: getServiceInstance('TemplateService');
$userservice = & ServiceFactory :: getServiceInstance('UserService');
+/* Managing all possible inputs */
+isset($_POST['confirm']) ? define('POST_CONFIRM', $_POST['confirm']): define('POST_CONFIRM', '');
+isset($_POST['cancel']) ? define('POST_CANCEL', $_POST['cancel']): define('POST_CANCEL', '');
+isset($_POST['old']) ? define('POST_OLD', $_POST['old']): define('POST_OLD', '');
+isset($_POST['new']) ? define('POST_NEW', $_POST['new']): define('POST_NEW', '');
+
+/* Managing current logged user */
+$currentUser = $userservice->getCurrentObjectUser();
+
+/* Managing path info */
list ($url, $tag) = explode('/', $_SERVER['PATH_INFO']);
//$tag = isset($_GET['query']) ? $_GET['query'] : NULL;
$template = 'tagrename.tpl';
-if ($_POST['confirm']) {
- if (isset($_POST['old']) && trim($_POST['old']) != '')
- $old = trim($_REQUEST['old']);
- else
- $old = NULL;
+if (POST_CONFIRM) {
+ if (trim(POST_OLD) != '') {
+ $old = trim(POST_OLD);
+ } else {
+ $old = NULL;
+ }
- if (isset($_POST['new']) && trim($_POST['new']) != '')
- $new = trim($_POST['new']);
- else
- $new = NULL;
+ if (trim(POST_NEW) != '') {
+ $new = trim(POST_NEW);
+ } else {
+ $new = NULL;
+ }
- if (
- !is_null($old) &&
- !is_null($new) &&
- $tagservice->renameTag($userservice->getCurrentUserId(), $old, $new) &&
- $b2tservice->renameTag($userservice->getCurrentUserId(), $old, $new) &&
- $tag2tagservice->renameTag($userservice->getCurrentUserId(), $old, $new)
- ) {
- $tplVars['msg'] = T_('Tag renamed');
- $logged_on_user = $userservice->getCurrentUser();
- header('Location: '. createURL('bookmarks', $logged_on_user[$userservice->getFieldName('username')]));
- } else {
- $tplVars['error'] = T_('Failed to rename the tag');
- $template = 'error.500.tpl';
- }
-} elseif ($_POST['cancel']) {
- $logged_on_user = $userservice->getCurrentUser();
- header('Location: '. createURL('bookmarks', $logged_on_user[$userservice->getFieldName('username')] .'/'. $tags));
+ if (
+ !is_null($old) &&
+ !is_null($new) &&
+ $tagservice->renameTag($currentUser->getId(), $old, $new) &&
+ $b2tservice->renameTag($currentUser->getId(), $old, $new) &&
+ $tag2tagservice->renameTag($currentUser->getId(), $old, $new)
+ ) {
+ $tplVars['msg'] = T_('Tag renamed');
+ header('Location: '. createURL('bookmarks', $currentUser->getUsername()));
+ } else {
+ $tplVars['error'] = T_('Failed to rename the tag');
+ $template = 'error.500.tpl';
+ }
+} elseif (POST_CANCEL) {
+ header('Location: '. createURL('bookmarks', $currentUser->getUsername() .'/'. $tags));
} else {
- $tplVars['subtitle'] = T_('Rename Tag') .': '. $tag;
- $tplVars['formaction'] = $_SERVER['SCRIPT_NAME'] .'/'. $tag;
- $tplVars['referrer'] = $_SERVER['HTTP_REFERER'];
- $tplVars['old'] = $tag;
+ $tplVars['subtitle'] = T_('Rename Tag') .': '. $tag;
+ $tplVars['formaction'] = $_SERVER['SCRIPT_NAME'] .'/'. $tag;
+ $tplVars['referrer'] = $_SERVER['HTTP_REFERER'];
+ $tplVars['old'] = $tag;
}
$templateservice->loadTemplate($template, $tplVars);
?>
diff --git a/tags.php b/tags.php
index 599b6fb..308069d 100644
--- a/tags.php
+++ b/tags.php
@@ -1,69 +1,80 @@
<?php
/***************************************************************************
-Copyright (C) 2004 - 2006 Scuttle project
-http://sourceforge.net/projects/scuttle/
-http://scuttle.org/
+ Copyright (C) 2004 - 2006 Scuttle project
+ http://sourceforge.net/projects/scuttle/
+ http://scuttle.org/
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-***************************************************************************/
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ ***************************************************************************/
require_once('header.inc.php');
+/* Service creation: only useful services are created */
$bookmarkservice =& ServiceFactory::getServiceInstance('BookmarkService');
$templateservice =& ServiceFactory::getServiceInstance('TemplateService');
$userservice =& ServiceFactory::getServiceInstance('UserService');
$cacheservice =& ServiceFactory::getServiceInstance('CacheService');
-$tplVars = array();
+/* Managing all possible inputs */
+isset($_GET['page']) ? define('GET_PAGE', $_GET['page']): define('GET_PAGE', 0);
+isset($_GET['sort']) ? define('GET_SORT', $_GET['sort']): define('GET_SORT', '');
+
+/* Managing current logged user */
+$currentUser = $userservice->getCurrentObjectUser();
+/* Managing path info */
list($url, $cat) = explode('/', $_SERVER['PATH_INFO']);
+
+$tplVars = array();
+
+
if (!$cat) {
- header('Location: '. createURL('populartags'));
- exit;
+ header('Location: '. createURL('populartags'));
+ exit;
} else {
- $cattitle = str_replace('+', ' + ', $cat);
+ $cattitle = str_replace('+', ' + ', $cat);
}
$pagetitle = T_('Tags') .': '. $cattitle;
if ($usecache) {
- // Generate hash for caching on
- if ($userservice->isLoggedOn()) {
- $hash = md5($_SERVER['REQUEST_URI'] . $userservice->getCurrentUserID());
- } else {
- $hash = md5($_SERVER['REQUEST_URI']);
- }
-
- // Cache for 30 minutes
- $cacheservice->Start($hash, 1800);
+ // Generate hash for caching on
+ if ($userservice->isLoggedOn()) {
+ $hash = md5($_SERVER['REQUEST_URI'] . $currentUser->getId());
+ } else {
+ $hash = md5($_SERVER['REQUEST_URI']);
+ }
+
+ // Cache for 30 minutes
+ $cacheservice->Start($hash, 1800);
}
// Header variables
$tplVars['pagetitle'] = $pagetitle;
$tplVars['loadjs'] = true;
$tplVars['rsschannels'] = array(
- array(filter($sitename .': '. $pagetitle), createURL('rss', 'all/'. filter($cat, 'url')).'?sort='.getSortOrder())
+array(filter($sitename .': '. $pagetitle), createURL('rss', 'all/'. filter($cat, 'url')).'?sort='.getSortOrder())
);
// Pagination
$perpage = getPerPageCount();
-if (isset($_GET['page']) && intval($_GET['page']) > 1) {
- $page = $_GET['page'];
- $start = ($page - 1) * $perpage;
+if (intval(GET_PAGE) > 1) {
+ $page = GET_PAGE;
+ $start = ($page - 1) * $perpage;
} else {
- $page = 0;
- $start = 0;
+ $page = 0;
+ $start = 0;
}
$tplVars['page'] = $page;
@@ -82,7 +93,7 @@ $tplVars['nav_url'] = createURL('tags', '%2$s%3$s');
$templateservice->loadTemplate('bookmarks.tpl', $tplVars);
if ($usecache) {
- // Cache output if existing copy has expired
- $cacheservice->End($hash);
+ // Cache output if existing copy has expired
+ $cacheservice->End($hash);
}
?>
diff --git a/templates/about.tpl.php b/templates/about.tpl.php
index 3f3cbe3..a4bc718 100644
--- a/templates/about.tpl.php
+++ b/templates/about.tpl.php
@@ -1,9 +1,13 @@
<?php
-$this->includeTemplate($GLOBALS['top_include']);
+/* Service creation: only useful services are created */
$userservice =& ServiceFactory::getServiceInstance('UserService');
-$currentUser = $userservice->getCurrentUser();
-$currentUserId = $userservice->getCurrentUserId();
+//$currentUser = $userservice->getCurrentUser();
+//$currentUserId = $userservice->getCurrentUserId();
+
+$currentObjectUser = $userservice->getCurrentObjectUser();
+
+$this->includeTemplate($GLOBALS['top_include']);
?>
<ul>
@@ -20,9 +24,10 @@ $currentUserId = $userservice->getCurrentUserId();
-<?php if(!is_null($currentUser) && $userservice->isAdmin($currentUserId)): ?>
+<?php if(!is_null($currentObjectUser) && $currentObjectUser->isAdmin()): ?>
<li>SemanticScuttle v0.91</li>
<?php endif ?>
+
</ul>
<?php
diff --git a/templates/bookmarkcommondescriptionedit.tpl.php b/templates/bookmarkcommondescriptionedit.tpl.php
index 39f20ae..053ee30 100644
--- a/templates/bookmarkcommondescriptionedit.tpl.php
+++ b/templates/bookmarkcommondescriptionedit.tpl.php
@@ -1,7 +1,12 @@
<?php
-$this->includeTemplate($GLOBALS['top_include']);
+/* Service creation: only useful services are created */
$userservice = & ServiceFactory :: getServiceInstance('UserService');
+
+$this->includeTemplate($GLOBALS['top_include']);
+
list ($url, $hash) = explode('/', $_SERVER['PATH_INFO']);
+
+
?>
<script type="text/javascript">
window.onload = function() {
diff --git a/templates/bookmarks.tpl.php b/templates/bookmarks.tpl.php
index 475436b..ce34634 100644
--- a/templates/bookmarks.tpl.php
+++ b/templates/bookmarks.tpl.php
@@ -6,8 +6,6 @@ $bookmarkservice =& ServiceFactory::getServiceInstance('BookmarkService');
$tagservice =& ServiceFactory::getServiceInstance('TagService');
$cdservice =& ServiceFactory::getServiceInstance('CommonDescriptionService');
-
-
//$logged_on_userid = $userservice->getCurrentUserId();
//$currentUser = $userservice->getCurrentUser();
//$currentUsername = $currentUser[$userservice->getFieldName('username')];
@@ -28,10 +26,13 @@ include('search.inc.php');
<?php
-if((isset($currenttag) && $GLOBALS['enableCommonTagDescription'])
+// common tag description
+if((isset($currenttag) && $currenttag!= '' && $GLOBALS['enableCommonTagDescription'])
|| (isset($hash) && $GLOBALS['enableCommonBookmarkDescription'])):?>
+
+
<p class="commondescription"><?php
-if(isset($currenttag) && $cdservice->getLastTagDescription($currenttag)) {
+if(isset($currenttag) && $currenttag!= '' && $cdservice->getLastTagDescription($currenttag)) {
$description = $cdservice->getLastTagDescription($currenttag);
echo nl2br(filter($description['cdDescription']));
} elseif(isset($hash) && $cdservice->getLastBookmarkDescription($hash)) {
@@ -40,8 +41,9 @@ if(isset($currenttag) && $cdservice->getLastTagDescription($currenttag)) {
echo nl2br(filter($description['cdDescription'])). "<br/>";
}
+//common tag description edit
if($userservice->isLoggedOn()) {
- if(isset($currenttag)) {
+ if(isset($currenttag) && $currenttag!= '') {
echo ' (<a href="'. createURL('tagcommondescriptionedit', $currenttag).'">';
echo T_('edit common description').'</a>)';
} elseif(isset($hash)) {
@@ -55,7 +57,7 @@ if($userservice->isLoggedOn()) {
<?php
/* Private tag description */
-if(isset($currenttag) && isset($user)) {
+if(isset($currenttag) && $currenttag!= '' && isset($user)) {
$userObject = $userservice->getUserByUsername($user);
if($tagservice->getDescription($currenttag, $userObject['uId'])) { ?>
@@ -87,7 +89,7 @@ if (!isset($hash)) {
<?php
}
?> <?php
-if(isset($currenttag)) {
+if(isset($currenttag) && $currenttag!= '') {
if(isset($user)) {
echo ' - ';
echo '<a href="'. createURL('tags', $currenttag) .'">';
@@ -216,8 +218,8 @@ if(isset($currenttag)) {
// Ordering
$sortOrder = '';
- if (isset($_GET['sort'])) {
- $sortOrder = 'sort='. $_GET['sort'];
+ if (GET_SORT != '') {
+ $sortOrder = 'sort='. GET_SORT;
}
$sortAmp = (($sortOrder) ? '&amp;'. $sortOrder : '');
diff --git a/templates/editbookmark.tpl.php b/templates/editbookmark.tpl.php
index c947ec3..b112455 100644
--- a/templates/editbookmark.tpl.php
+++ b/templates/editbookmark.tpl.php
@@ -47,8 +47,6 @@ switch ($row['bStatus']) {
<input type="text" dojoType="dojox.form.MultiComboBox" id="tags" name="tags" size="75" value="<?php echo filter(implode(', ', $row['tags']), 'xml'); ?>" store="memberTagStore" delimiter="," searchAttr="tag" hasDownArrow="false"/></td>
<td>&larr; <?php echo T_('Comma-separated'); ?></td>
</tr>
-
-
<tr>
<th></th>
<td align="right"><small><?php echo T_('Note: use ">" to include one tag in another. e.g.: europe>france>paris')?><small></td>
@@ -73,7 +71,7 @@ switch ($row['bStatus']) {
<td>
<input type="submit" name="submitted" value="<?php echo $btnsubmit; ?>" />
<?php
- if ($showdelete) {
+ if (isset($showdelete) && $showdelete) {
?>
<input type="submit" name="delete" value="<?php echo T_('Delete Bookmark'); ?>" />
<?php
@@ -82,7 +80,7 @@ switch ($row['bStatus']) {
?>
<input type="hidden" name="popup" value="1" />
<?php
- } elseif ($referrer) {
+ } elseif (isset($referrer)) {
?>
<input type="hidden" name="referrer" value="<?php echo $referrer; ?>" />
<?php
@@ -99,7 +97,7 @@ switch ($row['bStatus']) {
$this->includeTemplate('dynamictags.inc');
// Bookmarklets and import links
-if (empty($_REQUEST['popup']) && !$showdelete) {
+if (empty($_REQUEST['popup']) && (!isset($showdelete) || !$showdelete)) {
?>
<h3><?php echo T_('Bookmarklet'); ?></h3>
diff --git a/templates/editprofile.tpl.php b/templates/editprofile.tpl.php
index 055aab0..6e548ba 100644
--- a/templates/editprofile.tpl.php
+++ b/templates/editprofile.tpl.php
@@ -27,7 +27,7 @@ $this->includeTemplate($GLOBALS['top_include']);
</tr>
<tr>
<th align="left"><?php echo T_('E-mail'); ?></th>
- <td><input type="text" name="pMail" size="75" value="<?php echo filter($row['email'], 'xml'); ?>" /></td>
+ <td><input type="text" name="pMail" size="75" value="<?php echo filter($objectUser->getEmail(), 'xml'); ?>" /></td>
<td>&larr; <?php echo T_('Required'); ?></td>
</tr>
</table>
@@ -37,15 +37,15 @@ $this->includeTemplate($GLOBALS['top_include']);
<table class="profile">
<tr>
<th align="left"><?php echo T_('Name'); ?></th>
- <td><input type="text" name="pName" size="75" value="<?php echo filter($row['name'], 'xml'); ?>" /></td>
+ <td><input type="text" name="pName" size="75" value="<?php echo filter($objectUser->getName(), 'xml'); ?>" /></td>
</tr>
<tr>
<th align="left"><?php echo T_('Homepage'); ?></th>
- <td><input type="text" name="pPage" size="75" value="<?php echo filter($row['homepage']); ?>" /></td>
+ <td><input type="text" name="pPage" size="75" value="<?php echo filter($objectUser->getHomepage()); ?>" /></td>
</tr>
<tr>
<th align="left"><?php echo T_('Description'); ?></th>
- <td><textarea name="pDesc" cols="75" rows="10"><?php echo $row['uContent']; ?></textarea></td>
+ <td><textarea name="pDesc" cols="75" rows="10"><?php echo $objectUser->getContent(); ?></textarea></td>
</tr>
<tr>
<th></th>
diff --git a/templates/profile.tpl.php b/templates/profile.tpl.php
index e3e44ab..a544fb4 100644
--- a/templates/profile.tpl.php
+++ b/templates/profile.tpl.php
@@ -7,26 +7,26 @@ $this->includeTemplate($GLOBALS['top_include']);
<dt><?php echo T_('Username'); ?></dt>
<dd><?php echo $user; ?></dd>
<?php
-if ($row['name'] != "") {
+if ($objectUser->getName() != "") {
?>
<dt><?php echo T_('Name'); ?></dt>
- <dd><?php echo filter($row['name']); ?></dd>
+ <dd><?php echo filter($objectUser->getName()); ?></dd>
<?php
}
-if ($row['homepage'] != "") {
+if ($objectUser->getHomepage() != "") {
?>
<dt><?php echo T_('Homepage'); ?></dt>
- <dd><a href="<?php echo filter($row['homepage']); ?>"><?php echo filter($row['homepage']); ?></a></dd>
+ <dd><a href="<?php echo filter($objectUser->getHomepage()); ?>"><?php echo filter($objectUser->getHomepage()); ?></a></dd>
<?php
}
?>
<dt><?php echo T_('Member Since'); ?></dt>
- <dd><?php echo date($GLOBALS['longdate'], strtotime($row['uDatetime'])); ?></dd>
+ <dd><?php echo date($GLOBALS['longdate'], strtotime($objectUser->getDatetime())); ?></dd>
<?php
-if ($row['uContent'] != "") {
+if ($objectUser->getContent() != "") {
?>
<dt><?php echo T_('Description'); ?></dt>
- <dd><?php echo $row['uContent']; ?></dd>
+ <dd><?php echo $objectUser->getContent(); ?></dd>
<?php
}
$watching = $userservice->getWatchNames($userid);
diff --git a/templates/sidebar.block.common.php b/templates/sidebar.block.common.php
index dd3ce18..6f1e9f7 100644
--- a/templates/sidebar.block.common.php
+++ b/templates/sidebar.block.common.php
@@ -1,28 +1,26 @@
<?php
$b2tservice =& ServiceFactory::getServiceInstance('Bookmark2TagService');
$commonTags =& $b2tservice->getRelatedTagsByHash($hash);
-$commonTags =& $b2tservice->tagCloud($commonTags, 5, 90, 225, 'alphabet_asc');
+$commonTags =& $b2tservice->tagCloud($commonTags, 5, 90, 225, 'alphabet_asc');
if ($commonTags && count($commonTags) > 0) {
-?>
+ ?>
<h2><?php echo T_('Popular Tags'); ?></h2>
<div id="common">
- <p class="tags">
- <?php
- $contents = '';
+<p class="tags"><?php
+$contents = '';
- if(strlen($user)==0) {
+if(strlen($user)==0) {
$cat_url = createURL('tags', '%2$s');
- }
+}
- foreach ($commonTags as $row) {
- $entries = T_ngettext('bookmark', 'bookmarks', $row['bCount']);
- $contents .= '<a href="'. sprintf($cat_url, $user, filter($row['tag'], 'url')) .'" title="'. $row['bCount'] .' '. $entries .'" rel="tag" style="font-size:'. $row['size'] .'">'. filter($row['tag']) .'</a> ';
- }
- echo $contents ."\n";
- ?>
- </p>
+foreach ($commonTags as $row) {
+ $entries = T_ngettext('bookmark', 'bookmarks', $row['bCount']);
+ $contents .= '<a href="'. sprintf($cat_url, $user, filter($row['tag'], 'url')) .'" title="'. $row['bCount'] .' '. $entries .'" rel="tag" style="font-size:'. $row['size'] .'">'. filter($row['tag']) .'</a> ';
+}
+echo $contents ."\n";
+?></p>
</div>
<?php
diff --git a/templates/sidebar.block.popular.php b/templates/sidebar.block.popular.php
index cc5c73a..b9c029f 100644
--- a/templates/sidebar.block.popular.php
+++ b/templates/sidebar.block.popular.php
@@ -2,6 +2,13 @@
$b2tservice =& ServiceFactory::getServiceInstance('Bookmark2TagService');
$userservice =& ServiceFactory::getServiceInstance('UserService');
+if(!isset($user)) {
+ $user = '';
+}
+if(!isset($userid)) {
+ $userid = NULL;
+}
+
$logged_on_userid = $userservice->getCurrentUserId();
if ($logged_on_userid === false) {
$logged_on_userid = NULL;
diff --git a/templates/sidebar.block.recent.php b/templates/sidebar.block.recent.php
index fef85f2..9e4df08 100644
--- a/templates/sidebar.block.recent.php
+++ b/templates/sidebar.block.recent.php
@@ -20,7 +20,7 @@ if ($recentTags && count($recentTags) > 0) {
<?php
$contents = '<p class="tags">';
- if(!isset($user)) {
+ if(!isset($user) || $user == '') {
$user = '';
$cat_url = createURL('tags', '%2$s');
}
diff --git a/templates/sidebar.block.related.php b/templates/sidebar.block.related.php
index 380c789..88d42d6 100644
--- a/templates/sidebar.block.related.php
+++ b/templates/sidebar.block.related.php
@@ -6,7 +6,12 @@ $logged_on_userid = $userservice->getCurrentUserId();
if ($logged_on_userid === false) {
$logged_on_userid = NULL;
}
-if(strlen($user)==0) {
+
+if(!isset($userid)) {
+ $userid = NULL;
+}
+
+if(isset($user) && strlen($user)==0) {
$cat_url = createURL('tags', '%2$s');
}
if ($currenttag) {
diff --git a/templates/top.inc.php b/templates/top.inc.php
index 0d59dfb..2039db2 100644
--- a/templates/top.inc.php
+++ b/templates/top.inc.php
@@ -22,13 +22,14 @@ if(isset($rsschannels)) {
<script type="text/javascript"
src="<?php echo ROOT ?>jsScuttle.php"></script>
+
<link rel="stylesheet" type="text/css"
href="http://ajax.googleapis.com/ajax/libs/dojo/1.2/dijit/themes/nihilo/nihilo.css">
<script type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/dojo/1.2/dojo/dojo.xd.js"
djConfig="parseOnLoad:true, isDebug:false, usePlainJson:true"></script>
-
+
<script type="text/javascript">
dojo.require("dojo.parser");
dojo.require("dojo.data.ItemFileReadStore");
diff --git a/templates/userlist.tpl.php b/templates/userlist.tpl.php
index e05ea6d..85c1998 100644
--- a/templates/userlist.tpl.php
+++ b/templates/userlist.tpl.php
@@ -1,27 +1,24 @@
<?php
-
+
+/* Service creation: only useful services are created */
$userservice =& ServiceFactory::getServiceInstance('UserService');
-$currentUser = $userservice->getCurrentUser();
-$currentUserID = $userservice->getCurrentUserId();
-$currentUsername = $currentUser[$userservice->getFieldName('username')];
-
+$currentObjectUser = $userservice->getCurrentObjectUser();
$this->includeTemplate($GLOBALS['top_include']);
echo '<ol id="bookmarks">';
-
-foreach(array_keys($users) as $key) {
-
+
+foreach($users as $user) {
echo '<li class="xfolkentry">'."\n";
echo '<div class="link">';
- echo '<a href="'.createURL('profile', $users[$key][$userservice->getFieldname('username')]).'">'.$users[$key][$userservice->getFieldName('username')].'</a>';
+ echo '<a href="'.createURL('profile', $user->getUsername()).'">'.$user->getUsername().'</a>';
echo '</div>';
- if($users[$key][$userservice->getFieldName('username')] != $currentUsername) {
+ if($user->getUsername() != $currentObjectUser->getUsername()) {
echo '<div class="meta">';
- echo '<a href="'.createURL('admin','delete/'.$users[$key][$userservice->getFieldname('username')]).'" onclick="return confirm(\''.T_('Are you sure?').'\');">'.T_('Delete').'</a>';
+ echo '<a href="'.createURL('admin','delete/'.$user->getUsername()).'" onclick="return confirm(\''.T_('Are you sure?').'\');">'.T_('Delete').'</a>';
echo '</div>';
}
diff --git a/users.php b/users.php
index f79cbfb..c3ba8ac 100644
--- a/users.php
+++ b/users.php
@@ -21,21 +21,26 @@
require_once('header.inc.php');
+/* Service creation: only useful services are created */
$bookmarkservice =& ServiceFactory::getServiceInstance('BookmarkService');
$templateservice =& ServiceFactory::getServiceInstance('TemplateService');
$userservice =& ServiceFactory::getServiceInstance('UserService');
$cacheservice =& ServiceFactory::getServiceInstance('CacheService');
-$tplVars = array();
+/* Managing current logged user */
+$currentUser = $userservice->getCurrentObjectUser();
+/* Managing path info */
list($url, $cat) = explode('/', $_SERVER['PATH_INFO']);
+$tplVars = array();
+
$pagetitle = T_('Users');
if ($usecache) {
// Generate hash for caching on
if ($userservice->isLoggedOn()) {
- $hash = md5($_SERVER['REQUEST_URI'] . $userservice->getCurrentUserID());
+ $hash = md5($_SERVER['REQUEST_URI'] . $currentUser->getId());
} else {
$hash = md5($_SERVER['REQUEST_URI']);
}
diff --git a/watch.php b/watch.php
index 6a01e9a..11a0073 100644
--- a/watch.php
+++ b/watch.php
@@ -1,56 +1,62 @@
<?php
/***************************************************************************
-Copyright (C) 2004 - 2006 Scuttle project
-http://sourceforge.net/projects/scuttle/
-http://scuttle.org/
+ Copyright (C) 2004 - 2006 Scuttle project
+ http://sourceforge.net/projects/scuttle/
+ http://scuttle.org/
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-***************************************************************************/
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ ***************************************************************************/
require_once('header.inc.php');
+
+/* Service creation: only useful services are created */
$userservice =& ServiceFactory::getServiceInstance('UserService');
+/* Managing current logged user */
+$currentUser = $userservice->getCurrentObjectUser();
+
+/* Managing path info */
@list($url, $user) = isset($_SERVER['PATH_INFO']) ? explode('/', $_SERVER['PATH_INFO']) : NULL;
+
+
if ($userservice->isLoggedOn() && $user) {
- $tplVars = array();
- $pagetitle = '';
-
- if (is_int($user)) {
- $userid = intval($user);
- } else {
- if (!($userinfo = $userservice->getUserByUsername($user))) {
- $tplVars['error'] = sprintf(T_('User with username %s was not found'), $user);
- $templateservice->loadTemplate('error.404.tpl', $tplVars);
- exit();
- } else {
- $userid =& $userinfo['uId'];
- }
- }
-
- $watched = $userservice->getWatchStatus($userid, $userservice->getCurrentUserId());
- $changed = $userservice->setWatchStatus($userid);
-
- if ($watched) {
- $tplVars['msg'] = T_('User removed from your watchlist');
- } else {
- $tplVars['msg'] = T_('User added to your watchlist');
- }
-
- $currentUser = $userservice->getCurrentUser();
- $currentUsername = $currentUser[$userservice->getFieldName('username')];
-
- header('Location: '. createURL('watchlist', $currentUsername));
+ $tplVars = array();
+ $pagetitle = '';
+
+ if (is_int($user)) {
+ $userid = intval($user);
+ } else {
+ $userinfo = $userservice->getObjectUserByUsername($user);
+ if ($userinfo == '') {
+ $tplVars['error'] = sprintf(T_('User with username %s was not found'), $user);
+ $templateservice->loadTemplate('error.404.tpl', $tplVars);
+ exit();
+ } else {
+ $userid =& $userinfo->getId();
+ }
+ }
+
+ $watched = $userservice->getWatchStatus($userid, $currentUser->getId());
+ $changed = $userservice->setWatchStatus($userid);
+
+ if ($watched) {
+ $tplVars['msg'] = T_('User removed from your watchlist');
+ } else {
+ $tplVars['msg'] = T_('User added to your watchlist');
+ }
+
+ header('Location: '. createURL('watchlist', $currentUser->getUsername()));
}
?>
diff --git a/watchlist.php b/watchlist.php
index 973263c..323cb81 100644
--- a/watchlist.php
+++ b/watchlist.php
@@ -20,27 +20,29 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
***************************************************************************/
require_once('header.inc.php');
+/* Service creation: only useful services are created */
$bookmarkservice =& ServiceFactory::getServiceInstance('BookmarkService');
$templateservice =& ServiceFactory::getServiceInstance('TemplateService');
$userservice =& ServiceFactory::getServiceInstance('UserService');
$cacheservice =& ServiceFactory::getServiceInstance('CacheService');
-$tplVars = array();
+/* Managing all possible inputs */
+isset($_GET['page']) ? define('GET_PAGE', $_GET['page']): define('GET_PAGE', 0);
+isset($_GET['sort']) ? define('GET_SORT', $_GET['sort']): define('GET_SORT', '');
+
+/* Managing current logged user */
+$currentUser = $userservice->getCurrentObjectUser();
+/* Managing path info */
@list($url, $user, $page) = isset($_SERVER['PATH_INFO']) ? explode('/', $_SERVER['PATH_INFO']) : NULL;
-$loggedon = false;
-if ($userservice->isLoggedOn()) {
- $loggedon = true;
- $currentUser = $userservice->getCurrentUser();
- $currentUsername = $currentUser[$userservice->getFieldName('username')];
-}
+$tplVars = array();
if ($usecache) {
// Generate hash for caching on
- if ($loggedon) {
- if ($currentUsername != $user) {
- $cachehash = md5($_SERVER['REQUEST_URI'] . $currentUsername);
+ if ($userservice->isLoggedOn()) {
+ if ($currentUser->getUsername() != $user) {
+ $cachehash = md5($_SERVER['REQUEST_URI'] . $currentUser->getUsername());
// Cache for 5 minutes
$cacheservice->Start($cachehash);
@@ -56,13 +58,14 @@ if ($user) {
if (is_int($user)) {
$userid = intval($user);
} else {
- if (!($userinfo = $userservice->getUserByUsername($user) ) ) {
+ $userinfo = $userservice->getObjectUserByUsername($user);
+ if ($userinfo == '' ) {
// Throw a 404 error
$tplVars['error'] = sprintf(T_('User with username %s was not found'), $user);
$templateservice->loadTemplate('error.404.tpl', $tplVars);
exit();
} else {
- $userid =& $userinfo['uId'];
+ $userid =& $userinfo->getId();
}
}
}
@@ -77,8 +80,8 @@ if ($user) {
// Pagination
$perpage = getPerPageCount();
- if (isset($_GET['page']) && intval($_GET['page']) > 1) {
- $page = $_GET['page'];
+ if (intval(GET_PAGE) > 1) {
+ $page = GET_PAGE;
$start = ($page - 1) * $perpage;
} else {
$page = 0;
@@ -86,6 +89,7 @@ if ($user) {
}
// Set template vars
+ $tplVars['currenttag'] = '';
$tplVars['page'] = $page;
$tplVars['start'] = $start;
$tplVars['bookmarkCount'] = $start + 1;
@@ -99,7 +103,7 @@ if ($user) {
$tplVars['cat_url'] = createURL('tags', '%2$s');
$tplVars['nav_url'] = createURL('watchlist', '%s/%s%s');
- if ($user == $currentUsername) {
+ if ($userservice->isLoggedOn() && $user == $currentUser->getUsername()) {
$title = T_('My Watchlist');
} else {
$title = T_('Watchlist') .': '. $user;