From edfd04698a935f8c3a3441ae92a5cd9807705641 Mon Sep 17 00:00:00 2001 From: cweiske Date: Sat, 20 Feb 2010 11:24:47 +0000 Subject: remove end date condition since it seems unneccessary to me git-svn-id: https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/trunk@672 b3834d28-1941-0410-a4f8-b48e95affb8f --- www/index.php | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) (limited to 'www') diff --git a/www/index.php b/www/index.php index 0ba4afa..f6704ae 100644 --- a/www/index.php +++ b/www/index.php @@ -67,19 +67,16 @@ if (intval(GET_PAGE) > 1) { $start = 0; } -$dtend = date('Y-m-d H:i:s', strtotime('tomorrow')); -/*$dtstart = date('Y-m-d H:i:s', strtotime($dtend .' -'. $defaultRecentDays .' days'));*/ - -$tplVars['page'] = $page; -$tplVars['start'] = $start; +$tplVars['page'] = $page; +$tplVars['start'] = $start; $tplVars['popCount'] = 30; $tplVars['sidebar_blocks'] = $GLOBALS["index_sidebar_blocks"]; -$tplVars['range'] = 'all'; +$tplVars['range'] = 'all'; $tplVars['pagetitle'] = T_('Store, share and tag your favourite links'); -$tplVars['subtitle'] = T_('All Bookmarks'); +$tplVars['subtitle'] = T_('All Bookmarks'); $tplVars['bookmarkCount'] = $start + 1; -$bookmarks =& $bookmarkservice->getBookmarks($start, $perpage, NULL, NULL, NULL, getSortOrder(), NULL, 0, $dtend); +$bookmarks = $bookmarkservice->getBookmarks($start, $perpage, NULL, NULL, NULL, getSortOrder(), NULL, 0, NULL); $tplVars['total'] = $bookmarks['total']; $tplVars['bookmarks'] =& $bookmarks['bookmarks']; -- cgit v1.2.3 From 46c13c46f2c742d75f959845fa6f1b139aa7ff3c Mon Sep 17 00:00:00 2001 From: cweiske Date: Wed, 17 Mar 2010 20:03:49 +0000 Subject: remove unneeded ampersand git-svn-id: https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/trunk@685 b3834d28-1941-0410-a4f8-b48e95affb8f --- www/bookmarks.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'www') diff --git a/www/bookmarks.php b/www/bookmarks.php index e356750..0c9bfa4 100644 --- a/www/bookmarks.php +++ b/www/bookmarks.php @@ -134,7 +134,7 @@ if ($userservice->isLoggedOn() && POST_SUBMITTED != '') { $address = trim(POST_ADDRESS); // If the bookmark exists already, edit the original if ($bookmarkservice->bookmarkExists($address, $currentUserID)) { - $bookmark =& $bookmarkservice->getBookmarkByAddress($address); + $bookmark = $bookmarkservice->getBookmarkByAddress($address); header('Location: '. createURL('edit', $bookmark['bId'])); exit(); // If it's new, save it -- cgit v1.2.3 From 4d3d00ade282e27b765a64c86f6607f1a92af2c0 Mon Sep 17 00:00:00 2001 From: cweiske Date: Wed, 17 Mar 2010 20:11:21 +0000 Subject: Fix bug #2960663: do not send content-type headers twice for ajax/api scripts git-svn-id: https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/trunk@690 b3834d28-1941-0410-a4f8-b48e95affb8f --- src/SemanticScuttle/header.php | 8 +++++++- www/ajax/getadminlinkedtags.php | 2 +- www/ajax/getadmintags.php | 2 +- www/ajax/getcontacttags.php | 2 +- www/ajax/getlinkedtags.php | 2 +- www/ajax/gettags.php | 2 +- www/ajaxDelete.php | 2 +- www/ajaxGetTitle.php | 2 +- www/ajaxIsAvailable.php | 2 +- www/ajaxVote.php | 2 +- www/api/export_csv.php | 8 +++----- www/api/export_gcs.php | 5 +++-- www/api/export_sioc.php | 2 +- www/api/opensearch.php | 2 +- www/api/posts_add.php | 5 ++--- www/api/posts_all.php | 5 ++--- www/api/posts_dates.php | 2 +- www/api/posts_delete.php | 5 ++--- www/api/posts_get.php | 2 +- www/api/posts_public.php | 2 +- www/api/posts_recent.php | 2 +- www/api/posts_update.php | 5 ++--- www/api/tags_get.php | 5 ++--- www/api/tags_rename.php | 5 ++--- www/go.php | 1 + www/jsScuttle.php | 2 +- www/rss.php | 3 +-- 27 files changed, 43 insertions(+), 44 deletions(-) (limited to 'www') diff --git a/src/SemanticScuttle/header.php b/src/SemanticScuttle/header.php index 12c1f72..ef36e83 100644 --- a/src/SemanticScuttle/header.php +++ b/src/SemanticScuttle/header.php @@ -107,6 +107,12 @@ $tplVars['userservice'] = $userservice; // 6 // Force UTF-8 behaviour for server (cannot be moved into top.inc.php which is not included into every file) if (!defined('UNIT_TEST_MODE')) { - header('Content-Type: text/html; charset=utf-8'); + //API files define that, so we need a way to support both of them + if (!isset($httpContentType)) { + $httpContentType = 'text/html'; + } + if ($httpContentType !== false) { + header('Content-Type: ' . $httpContentType . '; charset=utf-8'); + } } ?> diff --git a/www/ajax/getadminlinkedtags.php b/www/ajax/getadminlinkedtags.php index 6abc067..6646c50 100644 --- a/www/ajax/getadminlinkedtags.php +++ b/www/ajax/getadminlinkedtags.php @@ -20,7 +20,7 @@ ***************************************************************************/ /* Return a json file with list of linked tags */ - +$httpContentType = 'application/json'; require_once '../www-header.php'; /* Service creation: only useful services are created */ diff --git a/www/ajax/getadmintags.php b/www/ajax/getadmintags.php index db62fc7..ffd20bb 100644 --- a/www/ajax/getadmintags.php +++ b/www/ajax/getadmintags.php @@ -20,7 +20,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ***************************************************************************/ /* Return a json file with list of tags according to current user and sort by popularity*/ - +$httpContentType = 'application/json'; require_once '../www-header.php'; /* Service creation: only useful services are created */ diff --git a/www/ajax/getcontacttags.php b/www/ajax/getcontacttags.php index 85ef1ae..89d6a3a 100644 --- a/www/ajax/getcontacttags.php +++ b/www/ajax/getcontacttags.php @@ -20,7 +20,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ***************************************************************************/ /* Return a json file with list of tags according to current user and sort by popularity*/ - +$httpContentType = 'application/json'; require_once '../www-header.php'; /* Service creation: only useful services are created */ diff --git a/www/ajax/getlinkedtags.php b/www/ajax/getlinkedtags.php index 6de272b..f412998 100644 --- a/www/ajax/getlinkedtags.php +++ b/www/ajax/getlinkedtags.php @@ -20,7 +20,7 @@ ***************************************************************************/ /* Return a json file with list of linked tags */ - +$httpContentType = 'application/json'; require_once '../www-header.php'; /* Service creation: only useful services are created */ diff --git a/www/ajax/gettags.php b/www/ajax/gettags.php index 3672832..cb73720 100644 --- a/www/ajax/gettags.php +++ b/www/ajax/gettags.php @@ -20,7 +20,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ***************************************************************************/ /* Return a json file with list of tags according to current user and sort by popularity*/ - +$httpContentType = 'application/json'; require_once '../www-header.php'; /* Service creation: only useful services are created */ diff --git a/www/ajaxDelete.php b/www/ajaxDelete.php index 467e20e..2812612 100644 --- a/www/ajaxDelete.php +++ b/www/ajaxDelete.php @@ -19,9 +19,9 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ***************************************************************************/ -header('Content-Type: text/xml; charset=UTF-8'); header('Last-Modified: '. gmdate("D, d M Y H:i:s") .' GMT'); header('Cache-Control: no-cache, must-revalidate'); +$httpContentType = 'text/xml'; require_once 'www-header.php'; /* Service creation: only useful services are created */ diff --git a/www/ajaxGetTitle.php b/www/ajaxGetTitle.php index 6caa742..b4f44ca 100644 --- a/www/ajaxGetTitle.php +++ b/www/ajaxGetTitle.php @@ -19,10 +19,10 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ***************************************************************************/ -header('Content-Type: text/xml; charset=UTF-8'); header("Last-Modified: ". gmdate("D, d M Y H:i:s") ." GMT"); header("Cache-Control: no-cache, must-revalidate"); +$httpContentType = 'text/xml'; require_once 'www-header.php'; /* Managing all possible inputs */ diff --git a/www/ajaxIsAvailable.php b/www/ajaxIsAvailable.php index 3390569..41e825e 100644 --- a/www/ajaxIsAvailable.php +++ b/www/ajaxIsAvailable.php @@ -19,10 +19,10 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ***************************************************************************/ -header('Content-Type: text/xml; charset=UTF-8'); header("Last-Modified: ". gmdate("D, d M Y H:i:s") ." GMT"); header("Cache-Control: no-cache, must-revalidate"); +$httpContentType = 'text/xml'; require_once 'www-header.php'; /* Service creation: only useful services are created */ diff --git a/www/ajaxVote.php b/www/ajaxVote.php index 3e603da..f2572fb 100644 --- a/www/ajaxVote.php +++ b/www/ajaxVote.php @@ -2,6 +2,7 @@ /** * We re-use vote.php but set the ajax flag */ +$httpContentType = 'text/xml'; $GLOBALS['ajaxRequest'] = true; require 'vote.php'; @@ -17,7 +18,6 @@ default: $template = 'bookmarks-vote.inc.tpl.php'; } -header('Content-Type: text/xml; charset=utf-8'); echo '' . $bookmark . '' . ''; $ts->loadTemplate( diff --git a/www/api/export_csv.php b/www/api/export_csv.php index 3f63692..b9cf497 100644 --- a/www/api/export_csv.php +++ b/www/api/export_csv.php @@ -2,8 +2,9 @@ // Export in CSV format in order to allow the import into a spreadsheet tool like Excel // Force HTTP authentication first! -require_once('httpauth.inc.php'); -require_once '../www-header.php'; +$httpContentType = 'application/csv-tab-delimited-table'; +require_once 'httpauth.inc.php'; +header("Content-disposition: filename=exportBookmarks.csv"); /* Service creation: only useful services are created */ $bookmarkservice =SemanticScuttle_Service_Factory::get('Bookmark'); @@ -17,9 +18,6 @@ else // Get the posts relevant to the passed-in variables. $bookmarks =& $bookmarkservice->getBookmarks(0, NULL, $userservice->getCurrentUserId(), $tag, NULL, getSortOrder()); -header("Content-Type: application/csv-tab-delimited-table;charset=UTF-8"); -header("Content-disposition: filename=exportBookmarks.csv"); - //columns titles echo 'url;title;tags;description'; echo "\n"; diff --git a/www/api/export_gcs.php b/www/api/export_gcs.php index 07bc726..9c0d85c 100644 --- a/www/api/export_gcs.php +++ b/www/api/export_gcs.php @@ -5,6 +5,7 @@ // Force HTTP authentication first! //require_once('httpauth.inc.php'); +$httpContentType = false; require_once '../www-header.php'; if($GLOBALS['enableGoogleCustomSearch'] == false) { @@ -39,7 +40,7 @@ $bookmarks =& $bookmarkservice->getBookmarks(0, NULL, NULL, $tag, NULL, getSortO // Set up the plain file and output all the posts. -header('Content-Type: text/plain'); +header('Content-Type: text/plain; charset=utf-8'); if(!$xml) { header('Content-Type: text/plain'); foreach($bookmarks['bookmarks'] as $row) { @@ -48,7 +49,7 @@ if(!$xml) { } } } else { - header('Content-Type: application/xml'); + header('Content-Type: text/xml'); echo ''."\n"; echo ' '."\n"; foreach($bookmarks['bookmarks'] as $row) { diff --git a/www/api/export_sioc.php b/www/api/export_sioc.php index ff1d1c0..8bdfd70 100644 --- a/www/api/export_sioc.php +++ b/www/api/export_sioc.php @@ -1,8 +1,8 @@ diff --git a/www/api/posts_add.php b/www/api/posts_add.php index c919ee7..59f7dce 100644 --- a/www/api/posts_add.php +++ b/www/api/posts_add.php @@ -11,8 +11,8 @@ // - No support for 'replace' variable // Force HTTP authentication -require_once('httpauth.inc.php'); -require_once '../www-header.php'; +$httpContentType = 'text/xml'; +require_once 'httpauth.inc.php'; /* Service creation: only useful services are created */ $bookmarkservice =SemanticScuttle_Service_Factory::get('Bookmark'); @@ -82,7 +82,6 @@ if (is_null($url) || is_null($description)) { } // Set up the XML file and output the result. -header('Content-Type: text/xml'); echo '\r\n"; echo ''; ?> \ No newline at end of file diff --git a/www/api/posts_all.php b/www/api/posts_all.php index f53f363..2d274f4 100644 --- a/www/api/posts_all.php +++ b/www/api/posts_all.php @@ -5,8 +5,8 @@ // - doesn't include the filtered tag as an attribute on the root element (we do) // Force HTTP authentication first! -require_once('httpauth.inc.php'); -require_once '../www-header.php'; +$httpContentType = 'text/xml'; +require_once 'httpauth.inc.php'; /* Service creation: only useful services are created */ $bookmarkservice =SemanticScuttle_Service_Factory::get('Bookmark'); @@ -22,7 +22,6 @@ else $bookmarks =& $bookmarkservice->getBookmarks(0, NULL, $userservice->getCurrentUserId(), $tag); // Set up the XML file and output all the posts. -header('Content-Type: text/xml'); echo '\r\n"; echo '\r\n"; diff --git a/www/api/posts_dates.php b/www/api/posts_dates.php index 7b1240f..508c46a 100644 --- a/www/api/posts_dates.php +++ b/www/api/posts_dates.php @@ -17,6 +17,7 @@ */ // Force HTTP authentication first! +$httpContentType = 'text/xml'; require_once 'httpauth.inc.php'; /* Service creation: only useful services are created */ @@ -36,7 +37,6 @@ $bookmarks = $bookmarkservice->getBookmarks( ); // Set up the XML file and output all the tags. -header('Content-Type: text/xml'); echo '\r\n"; echo '\r\n"; diff --git a/www/api/posts_delete.php b/www/api/posts_delete.php index 88e2584..a63cc62 100644 --- a/www/api/posts_delete.php +++ b/www/api/posts_delete.php @@ -7,8 +7,8 @@ // - doesn't set the Content-Type to text/xml (we do). // Force HTTP authentication first! -require_once('httpauth.inc.php'); -require_once '../www-header.php'; +$httpContentType = 'text/xml'; +require_once 'httpauth.inc.php'; /* Service creation: only useful services are created */ $bookmarkservice =SemanticScuttle_Service_Factory::get('Bookmark'); @@ -28,7 +28,6 @@ if (is_null($_REQUEST['url'])) { } // Set up the XML file and output the result. -header('Content-Type: text/xml'); echo '\r\n"; echo ''; ?> \ No newline at end of file diff --git a/www/api/posts_get.php b/www/api/posts_get.php index b020f51..c20f904 100644 --- a/www/api/posts_get.php +++ b/www/api/posts_get.php @@ -25,6 +25,7 @@ */ // Force HTTP authentication first! +$httpContentType = 'text/xml'; require_once 'httpauth.inc.php'; /* Service creation: only useful services are created */ @@ -54,7 +55,6 @@ $bookmarks = $bookmarkservice->getBookmarks( // Set up the XML file and output all the tags. -header('Content-Type: text/xml'); echo '\r\n"; echo '\r\n"; diff --git a/www/api/posts_public.php b/www/api/posts_public.php index 0c93ca2..4258550 100644 --- a/www/api/posts_public.php +++ b/www/api/posts_public.php @@ -6,6 +6,7 @@ // Force HTTP authentication first! //require_once('httpauth.inc.php'); +$httpContentType = 'text/xml'; require_once '../www-header.php'; /* Service creation: only useful services are created */ @@ -22,7 +23,6 @@ else $bookmarks =& $bookmarkservice->getBookmarks(0, NULL, NULL, $tag); // Set up the XML file and output all the posts. -header('Content-Type: text/xml'); echo '\r\n"; echo '\r\n"; diff --git a/www/api/posts_recent.php b/www/api/posts_recent.php index 46e46f1..6c71e22 100644 --- a/www/api/posts_recent.php +++ b/www/api/posts_recent.php @@ -22,6 +22,7 @@ $countDefault = 15; $countMax = 100; // Force HTTP authentication first! +$httpContentType = 'text/xml'; require_once 'httpauth.inc.php'; /* Service creation: only useful services are created */ @@ -54,7 +55,6 @@ $bookmarks = $bookmarkservice->getBookmarks( // Set up the XML file and output all the tags. -header('Content-Type: text/xml'); echo '\r\n"; echo '\r\n"; diff --git a/www/api/posts_update.php b/www/api/posts_update.php index 9152f26..4aeedc3 100644 --- a/www/api/posts_update.php +++ b/www/api/posts_update.php @@ -5,8 +5,8 @@ // - doesn't set the Content-Type to text/xml (we do). // Force HTTP authentication first! -require_once('httpauth.inc.php'); -require_once '../www-header.php'; +$httpContentType = 'text/xml'; +require_once 'httpauth.inc.php'; /* Service creation: only useful services are created */ $bookmarkservice =SemanticScuttle_Service_Factory::get('Bookmark'); @@ -17,7 +17,6 @@ $bookmarks =& $bookmarkservice->getBookmarks(0, 1, $userservice->getCurrentUserI // Set up the XML file and output all the tags. -header('Content-Type: text/xml'); echo '\r\n"; foreach($bookmarks['bookmarks'] as $row) { echo ''; diff --git a/www/api/tags_get.php b/www/api/tags_get.php index 85684d4..06a40d9 100644 --- a/www/api/tags_get.php +++ b/www/api/tags_get.php @@ -5,8 +5,8 @@ // - tags can't have spaces // Force HTTP authentication first! -require_once('httpauth.inc.php'); -require_once '../www-header.php'; +$httpContentType = 'text/xml'; +require_once 'httpauth.inc.php'; /* Service creation: only useful services are created */ $b2tservice =SemanticScuttle_Service_Factory::get('Bookmark2Tag'); @@ -16,7 +16,6 @@ $b2tservice =SemanticScuttle_Service_Factory::get('Bookmark2Tag'); $tags =& $b2tservice->getTags($userservice->getCurrentUserId()); // Set up the XML file and output all the tags. -header('Content-Type: text/xml'); echo '\r\n"; echo "\r\n"; foreach($tags as $row) { diff --git a/www/api/tags_rename.php b/www/api/tags_rename.php index 59ba8a4..cf56c83 100644 --- a/www/api/tags_rename.php +++ b/www/api/tags_rename.php @@ -5,8 +5,8 @@ // - oddly, returns an entirely different result () than the other API calls. // Force HTTP authentication first! -require_once('httpauth.inc.php'); -require_once '../www-header.php'; +$httpContentType = 'text/xml'; +require_once 'httpauth.inc.php'; /* Service creation: only useful services are created */ $b2tservice =SemanticScuttle_Service_Factory::get('Bookmark2Tag'); @@ -31,7 +31,6 @@ if (is_null($old) || is_null($new)) { } // Set up the XML file and output the result. -header('Content-Type: text/xml'); echo '\r\n"; echo ''. ($renamed ? 'done' : 'something went wrong') .''; ?> diff --git a/www/go.php b/www/go.php index 3d271c4..6a36ba9 100644 --- a/www/go.php +++ b/www/go.php @@ -15,6 +15,7 @@ * @license GPL http://www.gnu.org/licenses/gpl.html * @link http://sourceforge.net/projects/semanticscuttle */ +$httpContentType = false; require_once 'www-header.php'; if (!$GLOBALS['shorturl']) { diff --git a/www/jsScuttle.php b/www/jsScuttle.php index cc4e16d..f37da78 100644 --- a/www/jsScuttle.php +++ b/www/jsScuttle.php @@ -1,6 +1,6 @@ 1) { list($url, $user, $cat) = explode('/', $_SERVER['PATH_INFO']); } else { -- cgit v1.2.3 From 602ec95bbb91400b6ef2647df55e83e68f4223b5 Mon Sep 17 00:00:00 2001 From: cweiske Date: Thu, 18 Mar 2010 19:24:21 +0000 Subject: unify hashing code in a separate method git-svn-id: https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/trunk@692 b3834d28-1941-0410-a4f8-b48e95affb8f --- src/SemanticScuttle/Service/Bookmark.php | 65 ++++++++++++++++++++------------ www/bookmarks.php | 2 +- 2 files changed, 42 insertions(+), 25 deletions(-) (limited to 'www') diff --git a/src/SemanticScuttle/Service/Bookmark.php b/src/SemanticScuttle/Service/Bookmark.php index 3cdec72..2258625 100644 --- a/src/SemanticScuttle/Service/Bookmark.php +++ b/src/SemanticScuttle/Service/Bookmark.php @@ -178,9 +178,7 @@ class SemanticScuttle_Service_Bookmark extends SemanticScuttle_DbService */ public function getBookmarkByAddress($address) { - $address = $this->normalize($address); - $hash = md5($address); - return $this->getBookmarkByHash($hash); + return $this->getBookmarkByHash($this->getHash($address)); } @@ -189,10 +187,12 @@ class SemanticScuttle_Service_Bookmark extends SemanticScuttle_DbService * Retrieves a bookmark with the given hash. * DOES NOT RESPECT PRIVACY SETTINGS! * - * @param string $hash URL hash (MD5) + * @param string $hash URL hash * * @return mixed Array with bookmark data or false in case * of an error (i.e. not found). + * + * @see getHash() */ public function getBookmarkByHash($hash) { @@ -201,6 +201,25 @@ class SemanticScuttle_Service_Bookmark extends SemanticScuttle_DbService + /** + * Returns the hash value of a given address. + * + * @param string $address URL to hash + * @param boolean $bNormalize If the address shall be normalized before + * being hashed + * + * @return string Hash value + */ + public function getHash($address, $bNormalize = true) + { + if ($bNormalize) { + $address = $this->normalize($address); + } + return md5($address); + } + + + /** * Retrieves a bookmark that has a given short * name. @@ -319,9 +338,7 @@ class SemanticScuttle_Service_Bookmark extends SemanticScuttle_DbService return false; } - $address = $this->normalize($address); - - $crit = array('bHash' => md5($address)); + $crit = array('bHash' => $this->getHash($address)); if (isset ($uid)) { $crit['uId'] = $uid; } @@ -365,7 +382,7 @@ class SemanticScuttle_Service_Bookmark extends SemanticScuttle_DbService $hashes = array(); $sql = '(1'; foreach ($addresses as $key => $address) { - $hash = md5($this->normalize($address)); + $hash = $this->getHash($address); $hashes[$hash] = $address; $sql .= ' OR bHash = "' . $this->db->sql_escape($hash) @@ -462,17 +479,17 @@ class SemanticScuttle_Service_Bookmark extends SemanticScuttle_DbService // Set up the SQL insert statement and execute it. $values = array( - 'uId' => intval($sId), - 'bIp' => $ip, - 'bDatetime' => $datetime, - 'bModified' => $datetime, - 'bTitle' => $title, - 'bAddress' => $address, + 'uId' => intval($sId), + 'bIp' => $ip, + 'bDatetime' => $datetime, + 'bModified' => $datetime, + 'bTitle' => $title, + 'bAddress' => $address, 'bDescription' => $description, 'bPrivateNote' => $privateNote, - 'bStatus' => intval($status), - 'bHash' => md5($address), - 'bShort' => $short + 'bStatus' => intval($status), + 'bHash' => $this->getHash($address), + 'bShort' => $short ); $sql = 'INSERT INTO '. $this->getTableName() @@ -582,14 +599,14 @@ class SemanticScuttle_Service_Bookmark extends SemanticScuttle_DbService // Set up the SQL update statement and execute it. $updates = array( - 'bModified' => $moddatetime, - 'bTitle' => $title, - 'bAddress' => $address, + 'bModified' => $moddatetime, + 'bTitle' => $title, + 'bAddress' => $address, 'bDescription' => $description, 'bPrivateNote' => $privateNote, - 'bStatus' => $status, - 'bHash' => md5($address), - 'bShort' => $short + 'bStatus' => $status, + 'bHash' => $this->getHash($address, false), + 'bShort' => $short ); if (!is_null($date)) { @@ -1004,7 +1021,7 @@ class SemanticScuttle_Service_Bookmark extends SemanticScuttle_DbService $addressesSql = ' AND (0'; foreach ((array)$addresses as $address) { $addressesSql .= ' OR B.bHash = "' - . $this->db->sql_escape(md5($address)) + . $this->db->sql_escape($this->getHash($address)) . '"'; } $addressesSql .= ')'; diff --git a/www/bookmarks.php b/www/bookmarks.php index 0c9bfa4..5241481 100644 --- a/www/bookmarks.php +++ b/www/bookmarks.php @@ -167,7 +167,7 @@ if ($userservice->isLoggedOn() && POST_SUBMITTED != '') { 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($bookmarkservice->normalize(stripslashes(GET_ADDRESS)))); + $bookmark =& $bookmarkservice->getBookmarks(0, NULL, $currentUserID, NULL, NULL, NULL, NULL, NULL, NULL, $bookmarkservice->getHash(stripslashes(GET_ADDRESS))); $popup = (GET_POPUP!='') ? '?popup=1' : ''; header('Location: '. createURL('edit', $bookmark['bookmarks'][0]['bId'] . $popup)); exit(); -- cgit v1.2.3 From 74dc9ea6a4e553f38a97928617074fd76793c783 Mon Sep 17 00:00:00 2001 From: cweiske Date: Sun, 28 Mar 2010 18:08:38 +0000 Subject: make export_csv support filtering to multiple tags git-svn-id: https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/trunk@702 b3834d28-1941-0410-a4f8-b48e95affb8f --- tests/Api/ExportCsvTest.php | 61 +++++++++++++++++++++++++++++++++++++++++++++ www/api/export_csv.php | 15 +++++++---- 2 files changed, 71 insertions(+), 5 deletions(-) (limited to 'www') diff --git a/tests/Api/ExportCsvTest.php b/tests/Api/ExportCsvTest.php index ee7db4b..18008e1 100644 --- a/tests/Api/ExportCsvTest.php +++ b/tests/Api/ExportCsvTest.php @@ -162,6 +162,67 @@ class Api_ExportCsvTest extends TestBaseApi + /** + * Test CSV export with tag filter + */ + public function testTagFilter() + { + list($req, $uid) = $this->getAuthRequest('?tag=tag1'); + $this->addBookmark( + $uid, 'http://example.org/tag-1', 0, + array('unittest', 'tag1') + ); + $this->addBookmark( + $uid, 'http://example.org/tag-2', 0, + array('unittest', 'tag2') + ); + $this->addBookmark( + $uid, 'http://example.org/tag-3', 0, + array('unittest', 'tag1', 'tag2') + ); + + $body = $req->send()->getBody(); + $csv = $this->getCsvArray($body); + + $this->assertEquals(3, count($csv)); + $this->assertCsvHeader($csv); + + $this->assertEquals('http://example.org/tag-1', $csv[1][0]); + $this->assertEquals('http://example.org/tag-3', $csv[2][0]); + } + + + + /** + * Test CSV export with tag filter for multiple tags + */ + public function testTagFilterMultiple() + { + list($req, $uid) = $this->getAuthRequest('?tag=tag1+tag2'); + $this->addBookmark( + $uid, 'http://example.org/tag-1', 0, + array('unittest', 'tag1') + ); + $this->addBookmark( + $uid, 'http://example.org/tag-2', 0, + array('unittest', 'tag2') + ); + $this->addBookmark( + $uid, 'http://example.org/tag-3', 0, + array('unittest', 'tag1', 'tag2') + ); + + $body = $req->send()->getBody(); + $csv = $this->getCsvArray($body); + + $this->assertEquals(2, count($csv)); + $this->assertCsvHeader($csv); + + $this->assertEquals('http://example.org/tag-3', $csv[1][0]); + } + + + /** * Asserts that the CSV array contains the correct header * diff --git a/www/api/export_csv.php b/www/api/export_csv.php index b9cf497..43951ec 100644 --- a/www/api/export_csv.php +++ b/www/api/export_csv.php @@ -10,13 +10,18 @@ header("Content-disposition: filename=exportBookmarks.csv"); $bookmarkservice =SemanticScuttle_Service_Factory::get('Bookmark'); // Check to see if a tag was specified. -if (isset($_REQUEST['tag']) && (trim($_REQUEST['tag']) != '')) - $tag = trim($_REQUEST['tag']); -else - $tag = NULL; +if (isset($_REQUEST['tag']) && (trim($_REQUEST['tag']) != '')) { + //$_GET vars have + replaced to " " automatically + $tag = str_replace(' ', '+', trim($_REQUEST['tag'])); +} else { + $tag = null; +} // Get the posts relevant to the passed-in variables. -$bookmarks =& $bookmarkservice->getBookmarks(0, NULL, $userservice->getCurrentUserId(), $tag, NULL, getSortOrder()); +$bookmarks = $bookmarkservice->getBookmarks( + 0, null, $userservice->getCurrentUserId(), + $tag, null, getSortOrder() +); //columns titles echo 'url;title;tags;description'; -- cgit v1.2.3 From ccbc63aec4869f64fb68706a6d687aa665a60c9c Mon Sep 17 00:00:00 2001 From: cweiske Date: Sun, 28 Mar 2010 18:09:59 +0000 Subject: test that public bookmarks of other people are not exported via csv git-svn-id: https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/trunk@703 b3834d28-1941-0410-a4f8-b48e95affb8f --- tests/Api/ExportCsvTest.php | 5 +++++ www/api/export_csv.php | 15 ++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) (limited to 'www') diff --git a/tests/Api/ExportCsvTest.php b/tests/Api/ExportCsvTest.php index 18008e1..2bff8a5 100644 --- a/tests/Api/ExportCsvTest.php +++ b/tests/Api/ExportCsvTest.php @@ -140,6 +140,11 @@ class Api_ExportCsvTest extends TestBaseApi $this->addBookmark( null, 'http://example.org/testBookmarks-private2', 2 ); + //public bookmark from other people that should not be + // exported, too + $this->addBookmark( + null, 'http://example.org/testBookmarks-other', 0 + ); $body = $req->send()->getBody(); $csv = $this->getCsvArray($body); diff --git a/www/api/export_csv.php b/www/api/export_csv.php index 43951ec..bb469b1 100644 --- a/www/api/export_csv.php +++ b/www/api/export_csv.php @@ -1,5 +1,18 @@ + * @author Christian Weiske + * @author Eric Dane + * @license GPL http://www.gnu.org/licenses/gpl.html + * @link http://sourceforge.net/projects/semanticscuttle + */ // Force HTTP authentication first! $httpContentType = 'application/csv-tab-delimited-table'; -- cgit v1.2.3 From 7e6de50232ed7ba74ff7ea33f5fd5c838921bb1f Mon Sep 17 00:00:00 2001 From: cweiske Date: Sun, 28 Mar 2010 18:10:57 +0000 Subject: fix multiple tags in html export git-svn-id: https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/trunk@704 b3834d28-1941-0410-a4f8-b48e95affb8f --- www/api/export_html.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'www') diff --git a/www/api/export_html.php b/www/api/export_html.php index 8d70927..731b7fb 100644 --- a/www/api/export_html.php +++ b/www/api/export_html.php @@ -27,7 +27,8 @@ $bookmarkservice = SemanticScuttle_Service_Factory::get('Bookmark'); // Check to see if a tag was specified. if (isset($_REQUEST['tag']) && (trim($_REQUEST['tag']) != '')) { - $tag = trim($_REQUEST['tag']); + //$_GET vars have + replaced to " " automatically + $tag = str_replace(' ', '+', trim($_REQUEST['tag'])); } else { $tag = null; } -- cgit v1.2.3 From ea0527fc83fbb04f89104836af8334e5476e04c4 Mon Sep 17 00:00:00 2001 From: cweiske Date: Sun, 28 Mar 2010 18:11:56 +0000 Subject: make export_html follow the "specs" a bit more and add format documentation url git-svn-id: https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/trunk@705 b3834d28-1941-0410-a4f8-b48e95affb8f --- www/api/export_html.php | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'www') diff --git a/www/api/export_html.php b/www/api/export_html.php index 731b7fb..c7c8cf4 100644 --- a/www/api/export_html.php +++ b/www/api/export_html.php @@ -3,6 +3,9 @@ * Implements the del.icio.us API request for all a user's posts, * optionally filtered by tag. * + * Netscape bookmark file format is documented at + * http://msdn.microsoft.com/en-us/library/aa753582(VS.85).aspx + * * SemanticScuttle - your social bookmark manager. * * PHP version 5. @@ -46,7 +49,7 @@ echo ''; echo ''."\r\n"; echo 'Bookmarks'."\r\n"; echo '

Bookmarks for '. htmlspecialchars($currentUser->getUsername()) .''. (is_null($tag) ? '' : ' tag="'. htmlspecialchars($tag) .'"') ." from " . $sitename ."

\r\n"; -echo '

'."\r\n"; +echo '

'."\r\n"; @@ -68,9 +71,9 @@ foreach ($bookmarks['bookmarks'] as $row) { $taglist = 'system:unfiled'; } - echo "\t
" . filter($row['bTitle'], 'xml') ."\r\n"; + echo "\t
" . filter($row['bTitle'], 'xml') ."\r\n"; } -echo '

'; +echo '

'; ?> -- cgit v1.2.3