From a9df65da0888233e66e35aa6fef3d5870db73d4f Mon Sep 17 00:00:00 2001 From: Christian Weiske Date: Fri, 20 Jan 2012 21:27:04 +0100 Subject: [PATCH] Fix bug #3468293: Delicious import does not preserve private links --- doc/ChangeLog | 1 + ...ookmarkTest_deliciousbookmarks_private.xml | 1 + www/import.php | 29 +++++++++++++++---- 3 files changed, 25 insertions(+), 6 deletions(-) create mode 100644 tests/data/BookmarkTest_deliciousbookmarks_private.xml diff --git a/doc/ChangeLog b/doc/ChangeLog index 6297764..8485802 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -17,6 +17,7 @@ ChangeLog for SemantiScuttle - Fix bug #3384416: Use URL with protocol in bookmarklet - Fix bug: Invalid HTML when website thumbnails are activated - Fix bug #3413459: Thumbnails not in one line +- Fix bug #3468293: Delicious import does not preserve private links - Implement request #3403609: fr_CA translation update - Implement patch #3476011: PostgreSQL tables can not be initialized (Frédéric Fauberteau [triaxx]) diff --git a/tests/data/BookmarkTest_deliciousbookmarks_private.xml b/tests/data/BookmarkTest_deliciousbookmarks_private.xml new file mode 100644 index 0000000..0ad8142 --- /dev/null +++ b/tests/data/BookmarkTest_deliciousbookmarks_private.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/www/import.php b/www/import.php index 3aa2714..1293a2f 100644 --- a/www/import.php +++ b/www/import.php @@ -27,7 +27,9 @@ require_once 'www-header.php'; /* Managing all possible inputs */ // First input is $_FILES // Other inputs -isset($_POST['status']) ? define('POST_STATUS', $_POST['status']): define('POST_STATUS', $GLOBALS['defaults']['privacy']); +isset($_POST['status']) + ? define('POST_STATUS', $_POST['status']) + : define('POST_STATUS', $GLOBALS['defaults']['privacy']); if ($userservice->isLoggedOn() && sizeof($_FILES) > 0 && $_FILES['userfile']['size'] > 0) { @@ -54,6 +56,7 @@ if ($userservice->isLoggedOn() && sizeof($_FILES) > 0 && $_FILES['userfile']['si } } xml_parser_free($xml_parser); + //FIXME: show errors and warnings header('Location: '. createURL('bookmarks', $userinfo->getUsername())); } else { $templatename = 'importDelicious.tpl'; @@ -70,7 +73,8 @@ function startElement($parser, $name, $attrs) { $bookmarkservice =SemanticScuttle_Service_Factory::get('Bookmark'); if ($name == 'POST') { - while(list($attrTitle, $attrVal) = each($attrs)) { + $newstatus = $status; + while (list($attrTitle, $attrVal) = each($attrs)) { switch ($attrTitle) { case 'HREF': $bAddress = $attrVal; @@ -87,6 +91,11 @@ function startElement($parser, $name, $attrs) { case 'TAG': $tags = strtolower($attrVal); break; + case 'PRIVATE': + if ($attrVal == 'yes') { + $newstatus = 2; + } + break; } } if ($bookmarkservice->bookmarkExists($bAddress, $userservice->getCurrentUserId())) { @@ -100,12 +109,20 @@ function startElement($parser, $name, $attrs) { $bDatetime = gmdate('Y-m-d H:i:s'); } - if ($bookmarkservice->addBookmark($bAddress, $bTitle, $bDescription, '', $status, $tags, null, $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.'); + $res = $bookmarkservice->addBookmark( + $bAddress, $bTitle, $bDescription, '', $newstatus, $tags, + null, $bDatetime, true, true + ); + if ($res) { + $tplVars['msg'] = T_('Bookmark imported.'); + } else { + $tplVars['error'] = T_('There was an error saving your bookmark. Please try again or contact the administrator.'); + } } } + if (!isset($depth[$parser])) { + $depth[$parser] = 0; + } $depth[$parser]++; }