]> gitweb.fluxo.info Git - semanticscuttle.git/commitdiff
Major refactoring: transform user into object, define parameters used into each file...
authormensonge <mensonge@b3834d28-1941-0410-a4f8-b48e95affb8f>
Tue, 25 Nov 2008 15:57:29 +0000 (15:57 +0000)
committermensonge <mensonge@b3834d28-1941-0410-a4f8-b48e95affb8f>
Tue, 25 Nov 2008 15:57:29 +0000 (15:57 +0000)
git-svn-id: https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/trunk@173 b3834d28-1941-0410-a4f8-b48e95affb8f

51 files changed:
about.php
admin.php
ajaxDelete.php
ajaxGetTitle.php
ajaxIsAvailable.php
alltags.php
bookmarkcommondescriptionedit.php
bookmarks.php
constants.inc.php
edit.php
history.php
import.php
importNetscape.php
index.php
login.php
password.php
populartags.php
profile.php
register.php
rss.php
search.inc.php
search.php
services/bookmark2tagservice.php
services/bookmarkservice.php
services/commondescriptionservice.php
services/tag2tagservice.php
services/tagservice.php
services/userservice.php
tag2tagadd.php
tag2tagdelete.php
tag2tagedit.php
tagcommondescriptionedit.php
tagdelete.php
tagedit.php
tagrename.php
tags.php
templates/about.tpl.php
templates/bookmarkcommondescriptionedit.tpl.php
templates/bookmarks.tpl.php
templates/editbookmark.tpl.php
templates/editprofile.tpl.php
templates/profile.tpl.php
templates/sidebar.block.common.php
templates/sidebar.block.popular.php
templates/sidebar.block.recent.php
templates/sidebar.block.related.php
templates/top.inc.php
templates/userlist.tpl.php
users.php
watch.php
watchlist.php

index 795d0a69a36b76826e9706d94502bf4d419eb377..b8d2fd9dd3a62919808a920e73ed345652943438 100644 (file)
--- 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();
index c5563f6ca90c21d6e9fcd0fa1873217addffe5a8..d72d4a08d7c642cd1b3c1c5cf249a52b14771c92 100644 (file)
--- a/admin.php
+++ b/admin.php
@@ -18,7 +18,8 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 ***************************************************************************/\r
 \r
 require_once('header.inc.php');\r
-\r
+
+/* Service creation: only useful services are created */\r
 $userservice = & ServiceFactory :: getServiceInstance('UserService');\r
 $bookmark2tagservice = & ServiceFactory :: getServiceInstance('Bookmark2Tagservice');\r
 $bookmarkservice = & ServiceFactory :: getServiceInstance('BookmarkService');
@@ -27,19 +28,21 @@ $templateservice = & ServiceFactory :: getServiceInstance('TemplateService');
 \r
 // Header variables\r
 $tplVars['subtitle'] = T_('Manage users');\r
-$tplVars['loadjs'] = true;\r
+$tplVars['loadjs'] = true;
+$tplVars['sidebar_blocks'] = array('users' );\r
 \r
 if ( !$userservice->isLoggedOn() ) {\r
     header('Location: '. createURL('login', ''));\r
     exit();\r
 }\r
 \r
-$currentUser = $userservice->getCurrentUser();\r
-$currentUserID = $userservice->getCurrentUserId();\r
-$currentUsername = $currentUser[$userservice->getFieldName('username')];\r
+//$currentUser = $userservice->getCurrentUser();\r
+//$currentUserID = $userservice->getCurrentUserId();\r
+//$currentUsername = $currentUser[$userservice->getFieldName('username')];\r
+$currentObjectUser = $userservice->getCurrentObjectUser();
 \r
-if ( !$userservice->isAdmin($currentUserID) ) {\r
-    header('Location: '. createURL('bookmarks', $currentUsername));\r
+if ( !$currentObjectUser->isAdmin() ) {\r
+    header('Location: '. createURL('bookmarks', $currentObjectUser->getUsername()));\r
     exit();\r
 }\r
 \r
@@ -66,7 +69,7 @@ if ( $action ) {
 }\r
 \r
 $templatename = 'userlist.tpl';\r
-$users =& $userservice->getAllUsers();\r
+$users =& $userservice->getObjectUsers();\r
 \r
 if ( !is_array($users) ) {\r
        $users = array();\r
index ad3efc86ccf0c99f7f2d973df19c8d2a54848fb3..e40dc1a8d23146270690d0d9163c4409c8298ff8 100644 (file)
@@ -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)) {
index d440802612ed3f5425f5ec1c3d90248fc0488972..2bec47c95f0ea2e4b5bc0cff8ce2c21a7fee19ac 100644 (file)
@@ -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>
index 80883c60958a88e5f498ccb3525eb3c8a8c33b72..e9d82e76f12c45f82e6eed5b8fa87aa8d5b3aa33 100644 (file)
@@ -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>
index f2520a04f9d4bf047487da13c27328a0a7f26d30..61ad3452a936336a0472f806a19dc3c4b3466421 100644 (file)
@@ -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);
index c70dac0f1e3c44334f29d1a994da24602c67de36..1ac316e826a77cc88bf993fdcb2716cd787219e6 100644 (file)
@@ -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);
 ?>
index 232249fae6ead7ff167939ed1a73cdd389364ed9..f222202aab59432eb4e960589b2349306e537c22 100644 (file)
@@ -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);
 }
 ?>
index e779852ed8891ec46fa3e70fbd69e26eda89d6e1..23dcc4a9a35526b01134c22c961de12a0b0668c0 100644 (file)
@@ -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.
  */
 
index 94af87c5a25c7591e0763babea17104e5072f5b4..3984c7d6d328133ec322fc886fc6136ad524f2a3 100644 (file)
--- 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');
index f7ae9271092d0a1f9e5ed90d72314f96ded8ac36..e66973ce62bfc3bc7043b5bd0ba26a3212fed516 100644 (file)
@@ -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
index f25b439b7355f3a084ef1be927483e8d38729694..8d051c85319fc04c4fa9798282e74651e589a189 100644 (file)
 <?
 /***************************************************************************
-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]--;
 }
 ?>
index 97f458f84b84dac79ba37fcb5e5acb80fc4a8659..f4cf6539e240c60c6c46af4ebbdbea6f48539f35 100644 (file)
@@ -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');
index a72f1f9da8a79d92074753c46240fea83b1123ac..030f06e8e96e0cc85bf18e914699051781a815d5 100644 (file)
--- 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);
 
index f09996e7265c7b4a3c12f9746eb2ecca7636d0a3..b1b9fcb5504b6afeccb83e746dddd9fb0694bf20 100644 (file)
--- 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');
index 1763fd239d1e393e51d16edb0cb72d44ae047f6f..e3a87210084c8ff40da16a9518dd30102d424d23 100644 (file)
@@ -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';
index 1b99ca25332c905fb23efb5d7aa177cfe5a8f0cf..80ed0ed3034e7a8a495878366b248144d13f21fd 100644 (file)
@@ -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) {    
index 1ad92bad994fa418f4271214ee2866159839c7d4..df5ae7e13cdd8d09a5b27dd96c938304b7f2b9b5 100644 (file)
@@ -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);
 ?>
index b70d7245424f54d7ecb3209abe48980d1229408b..aeaa18f7c3e9c0eff4a8b3086c92e432380dc629 100644 (file)
@@ -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 476a28dd248d2acb30737c6e871d65ec29c7e9a4..08b45679a4146b6ef628ce39cb90356fe9d977df 100644 (file)
--- 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);
 }
 ?>
index 832a70c2cd2415abe9ae289500de3936e1fb0f3b..d3ebe4cbc62cc77331aea244698a05b07c94dd2e 100644 (file)
@@ -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>
index 6e002bb7ac3428a5d12732c65f690a18e5bd4b19..ff3729ef261a529b2b92c1230d8777900d7186f9 100644 (file)
 <?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);
 }
 ?>
index 9cafec97729058310188084a7198446260a8994a..26a05c132bc8f5fe95e4d029e54120ea591334e7 100644 (file)
 <?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) {\r
-       $qmask = 'DELETE FROM %s USING %s, %s WHERE %s.bId = %s.bId AND %s.uId = %d';\r
-       $query = sprintf($qmask,\r
+                               );
+
+                               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) {\r
+               $qmask = 'DELETE FROM %s USING %s, %s WHERE %s.bId = %s.bId AND %s.uId = %d';\r
+               $query = sprintf($qmask,\r
                $this->getTableName(),\r
                $this->getTableName(),\r
                $GLOBALS['tableprefix'].'bookmarks',\r
@@ -191,245 +192,246 @@ class Bookmark2TagService {
                $GLOBALS['tableprefix'].'bookmarks',\r
                $uId);\r
 \r
-        if (!($dbresult =& $this->db->sql_query($query))) {\r
-            message_die(GENERAL_ERROR, 'Could not delete tags', '', __LINE__, __FILE__, $query, $this->db);\r
-            return false;\r
-        }\r
+               if (!($dbresult =& $this->db->sql_query($query))) {\r
+                       message_die(GENERAL_ERROR, 'Could not delete tags', '', __LINE__, __FILE__, $query, $this->db);\r
+                       return false;\r
+               }\r
 \r
-        return true;\r
-    }
-
-    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;\r
+       }
+
+       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; }
 }
 ?>
index 9127c12dc5a922804a19ecd8e74aa42abdd7d112..73cdf84fcf5acab36f13e2c8a22cfab52084c4b9 100644 (file)
@@ -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';
index 6c591a9c6027ffb900d3c9ae3a8afcce81b27b48..0a96f740395bdad8f3302a4c9e0f29b14d209382 100644 (file)
 <?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; }
 }
 ?>
index f24ef7934bdfe0943c8c627c71348a5ee1496805..8c97606a61a9a87b6c99ac187568a9f693f35b15 100644 (file)
 <?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; }
 }
 ?>
index 47f82d6502093af51920042d2f4e61f012d8a5fc..83349c60584bc6052588efacc5744906c752d924 100644 (file)
@@ -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; }
 }
 ?>
index 19e81c6300e4c727f78b0a140231ac294e1bdd30..241934e923f04939758dda0e92d01f6ab48856f9 100644 (file)
@@ -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);
index 935cf889fe7368ae9097308dd8a8b58b3d1539be..07ce3a90b45448c6caf1aa556e33fd2080cc6376 100644 (file)
@@ -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'];
index f0ae6ed5f64910f8a5efaaaec487c0c96f2b3708..b62b6236be95bdf39ea1f7179a8ee72f521321d8 100644 (file)
@@ -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);
 ?>
index 6dd7b51b9e65064a9a773f982b554d17fcb9d48a..e75553f09c29ff69a8609025cea28e4f9632a47c 100644 (file)
@@ -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);
 ?>
index 4c77b146b203ddf6bedf8c2e0d0af7ed487a6dbc..113c5bff4f388791da31a9aea513b74aa72efa29 100644 (file)
@@ -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);
 ?>
index efdca1631a9e591bfba4732ed8daa28a83ed787e..8c4b1af53b3e2a3a0b329e0a15b093a7182b85ed 100644 (file)
@@ -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;
index aca06073058a537cff52f06d43e60d347248c34a..cd248a50998dfd9c7d2ff4dfd2bfb75d8ce7d251 100644 (file)
@@ -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);
 ?>
index 29b44fbbd419c85cdca3ad7e414f93a9dbd2151a..3dde296c2adc0fcd8522047b059d8e763cc558c1 100644 (file)
@@ -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);
 ?>
index 599b6fb7b49bb34d111c44ce33077a6e39a6707a..308069dce977c192cb1321ea4c82b08007686197 100644 (file)
--- 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);
 }
 ?>
index 3f3cbe3090c22a3cefd63b3f2a13af3b715c28ad..a4bc7182c79ecaa1f6a33e77eed65d729ba1c013 100644 (file)
@@ -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
index 39f20ae43344fa744d385298ac0a717539bd1ef2..053ee30e4180c9d40ea4e82196368ea9f16e7675 100644 (file)
@@ -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() {
index 475436ba8c1dfb28961c8b4bb4dbb77b93f75f89..ce34634a040eba9fac7ebdce2f4121d14e5109a8 100644 (file)
@@ -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 : '');
index c947ec3a154277eb4db10341dfc726cdae9839b7..b1124553793c428c28aab99ae4a42ce918aa950f 100644 (file)
@@ -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>
index 055aab04d9b0caa4b3e90ce6609580f56b926fe5..6e548bad2c308d6ee8c5736916a4fc130ccb0161 100644 (file)
@@ -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>
index e3e44ab08964a85629cb6941081e83ca86ca9a91..a544fb4d90e9c1f8b524d49987a81e3cbce5439b 100644 (file)
@@ -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);
index dd3ce18ebef01c75401d0ae0429c3a7312013e47..6f1e9f7e48264e5e7f3694efae66222750e8fccf 100644 (file)
@@ -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
index cc5c73a138f8de174cf19260f4505c7c9bec919c..b9c029f863f7365ec0c487ed382070a5c76b883e 100644 (file)
@@ -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;
index fef85f2b5b4fd0b6eab79f467242c533119e47da..9e4df083953a913cf7f1e56bb1bb393171edd158 100644 (file)
@@ -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');
     }
index 380c789e3ffcd3b30ad755ac49e89a7341da98c1..88d42d68b9e289ad3c2f69f36cf709fb288ccef4 100644 (file)
@@ -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) {
index 0d59dfb7fcca6b6b2460b089297b1e5181a692f1..2039db2f7d77ff751a6d54d4872296279880c33e 100644 (file)
@@ -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");
index e05ea6d67f8070958a4b30745f91cd248b19713e..85c1998cf9a92b781d4807ba1bc1863c7448ace9 100644 (file)
@@ -1,27 +1,24 @@
 <?php\r
-\r
+
+/* Service creation: only useful services are created */\r
 $userservice =& ServiceFactory::getServiceInstance('UserService');
 
-$currentUser = $userservice->getCurrentUser();\r
-$currentUserID = $userservice->getCurrentUserId();\r
-$currentUsername = $currentUser[$userservice->getFieldName('username')];
-\r
+$currentObjectUser = $userservice->getCurrentObjectUser();\r
 \r
 $this->includeTemplate($GLOBALS['top_include']);\r
 \r
 echo '<ol id="bookmarks">';\r
-\r
-foreach(array_keys($users) as $key) {\r
-\r
+
+foreach($users as $user) {\r
        echo '<li class="xfolkentry">'."\n";\r
 \r
        echo '<div class="link">';\r
-       echo '<a href="'.createURL('profile', $users[$key][$userservice->getFieldname('username')]).'">'.$users[$key][$userservice->getFieldName('username')].'</a>';\r
+       echo '<a href="'.createURL('profile', $user->getUsername()).'">'.$user->getUsername().'</a>';\r
        echo '</div>';\r
 
-       if($users[$key][$userservice->getFieldName('username')] != $currentUsername) {\r
+       if($user->getUsername() != $currentObjectUser->getUsername()) {\r
            echo '<div class="meta">';\r
-           echo '<a href="'.createURL('admin','delete/'.$users[$key][$userservice->getFieldname('username')]).'" onclick="return confirm(\''.T_('Are you sure?').'\');">'.T_('Delete').'</a>';\r
+           echo '<a href="'.createURL('admin','delete/'.$user->getUsername()).'" onclick="return confirm(\''.T_('Are you sure?').'\');">'.T_('Delete').'</a>';\r
            echo '</div>';
        }\r
 \r
index f79cbfb3fa7e6136864d4fb843c1f6867266cc15..c3ba8acefc4bc1582d8c31cdeb3838aa6e0283cf 100644 (file)
--- a/users.php
+++ b/users.php
 
 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']);
        }
index 6a01e9a63fab6c35f8e534cee102029de638b0f8..11a0073d8b15c71f5dc10e06917a0a617a4222bd 100644 (file)
--- 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()));
 }
 ?>
index 973263cf98c85f061e09c2566e29872f755b7d0b..323cb81203ef4f8cc499a8011cb65646f32ed296 100644 (file)
@@ -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;