Permalink
Browse files

- Override privacy status on bookmark file import, if specified (i.e.…

… Delicious)

- Set tags on bookmark file import, if specified (i.e. Delicious)

Signed-off-by: Marcus Campbell <marcus.campbell@gmail.com>
  • Loading branch information...
1 parent 6b106ef commit 616df7459a1262dc55320ee60cc74dae9d878ab3 @scronide committed Dec 24, 2010
Showing with 78 additions and 69 deletions.
  1. +13 −9 import.php
  2. +52 −39 importNetscape.php
  3. +5 −9 templates/bookmarks.tpl.php
  4. +8 −12 templates/importNetscape.tpl.php
View
@@ -19,17 +19,20 @@
***************************************************************************/
require_once 'header.inc.php';
-$userservice =& ServiceFactory::getServiceInstance('UserService');
+
+$userservice =& ServiceFactory::getServiceInstance('UserService');
$templateservice =& ServiceFactory::getServiceInstance('TemplateService');
+
$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;
+ $status = intval($_POST['status']);
+ }
+ else {
+ $status = 2;
}
$depth = array();
@@ -48,11 +51,12 @@
}
xml_parser_free($xml_parser);
header('Location: '. createURL('bookmarks', $userinfo[$userservice->getFieldName('username')]));
-} else {
- $templatename = 'importDelicious.tpl';
- $tplVars['subtitle'] = T_('Import Bookmarks from del.icio.us');
- $tplVars['formaction'] = createURL('import');
- $templateservice->loadTemplate($templatename, $tplVars);
+}
+else {
+ $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) {
View
@@ -1,6 +1,6 @@
<?php
/***************************************************************************
-Copyright (c) 2004 - 2006 Marcus Campbell
+Copyright (c) 2004 - 2010 Marcus Campbell
http://scuttle.org/
This program is free software; you can redistribute it and/or modify
@@ -19,66 +19,79 @@
***************************************************************************/
require_once 'header.inc.php';
+
$bookmarkservice =& ServiceFactory::getServiceInstance('BookmarkService');
-$userservice =& ServiceFactory::getServiceInstance('UserService');
+$userservice =& ServiceFactory::getServiceInstance('UserService');
$templateservice =& ServiceFactory::getServiceInstance('TemplateService');
+
$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;
+ $status = intval($_POST['status']);
+ }
+ else {
+ $status = 2;
}
// File handle
$html = file_get_contents($_FILES['userfile']['tmp_name']);
// Create link array
preg_match_all('/<a\s+(.*?)\s*\/*>([^<]*)/si', $html, $matches);
- $links = $matches[1];
+ $links = $matches[1];
$titles = $matches[2];
$size = count($links);
for ($i = 0; $i < $size; $i++) {
- $attributes = preg_split('/\s+/s', $links[$i]);
- foreach ($attributes as $attribute) {
- $att = preg_split('/\s*=\s*/s', $attribute, 2);
- $attrTitle = $att[0];
- $attrVal = eregi_replace('"', '&quot;', preg_replace('/([\'"]?)(.*)\1/', '$2', $att[1]));
- switch ($attrTitle) {
- case "HREF":
- $bAddress = $attrVal;
- break;
- case "ADD_DATE":
- $bDatetime = gmdate('Y-m-d H:i:s', $attrVal);
- break;
- }
- }
- $bTitle = eregi_replace('"', '&quot;', trim($titles[$i]));
+ $bTags = '';
+ $bStatus = $status;
- if ($bookmarkservice->bookmarkExists($bAddress, $userservice->getCurrentUserId())) {
- $tplVars['error'] = T_('You have already submitted this bookmark.');
- } else {
- // 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');
- }
+ $attributes = preg_split('/\s+/s', $links[$i]);
+ foreach ($attributes as $attribute) {
+ $att = preg_split('/\s*=\s*/s', $attribute, 2);
+ $attrTitle = $att[0];
+ $attrVal = str_replace('"', '&quot;', preg_replace('/([\'"]?)(.*)\1/', '$2', $att[1]));
+ switch ($attrTitle) {
+ case 'HREF':
+ $bAddress = $attrVal;
+ break;
+ case 'ADD_DATE':
+ $bDatetime = gmdate('Y-m-d H:i:s', $attrVal);
+ break;
+ case 'PRIVATE':
+ $bStatus = (intval($attrVal) == 1) ? 2 : $status;
+ break;
+ case 'TAGS':
+ $bTags = strtolower($attrVal);
+ break;
+ }
+ }
+ $bTitle = str_replace('"', '&quot;', trim($titles[$i]));
- if ($bookmarkservice->addBookmark($bAddress, $bTitle, NULL, $status, NULL, $bDatetime, false, true)) {
- $tplVars['msg'] = T_('Bookmark imported.');
- } else {
- $tplVars['error'] = T_('There was an error saving your bookmark. Please try again or contact the administrator.');
- }
+ if ($bookmarkservice->bookmarkExists($bAddress, $userservice->getCurrentUserId())) {
+ $tplVars['error'] = T_('You have already submitted this bookmark.');
+ } else {
+ // 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, NULL, $bStatus, $bTags, $bDatetime, false, true)) {
+ $tplVars['msg'] = T_('Bookmark imported.');
+ }
+ else {
+ $tplVars['error'] = T_('There was an error saving your bookmark. Please try again or contact the administrator.');
+ }
+ }
}
header('Location: '. createURL('bookmarks', $userinfo[$userservice->getFieldName('username')]));
-} else {
- $templatename = 'importNetscape.tpl';
- $tplVars['subtitle'] = T_('Import Bookmarks from Browser File');
- $tplVars['formaction'] = createURL('importNetscape');
- $templateservice->loadTemplate($templatename, $tplVars);
}
-?>
+else {
+ $templatename = 'importNetscape.tpl';
+ $tplVars['subtitle'] = T_('Import Bookmarks from Browser File');
+ $tplVars['formaction'] = createURL('importNetscape');
+ $templateservice->loadTemplate($templatename, $tplVars);
+}
@@ -10,16 +10,12 @@
?>
<p id="sort">
- <?php echo T_("Sort by:"); ?>
- <a href="?sort=date_desc"><?php echo T_("Date"); ?></a><span> / </span>
- <a href="?sort=title_asc"><?php echo T_("Title"); ?></a><span> / </span>
- <?php
- if (!isset($hash)) {
- ?>
+ <?php echo T_("Sort by:"); ?>
+ <a href="?sort=date_desc"><?php echo T_("Date"); ?></a><span> / </span>
+ <a href="?sort=title_asc"><?php echo T_("Title"); ?></a><span> / </span>
+ <?php if (!isset($hash)): ?>
<a href="?sort=url_asc"><?php echo T_("URL"); ?></a>
- <?php
- }
- ?>
+ <?php endif; ?>
</p>
<ol<?php echo ($start > 0 ? ' start="'. ++$start .'"' : ''); ?> id="bookmarks">
@@ -1,6 +1,4 @@
-<?php
-$this->includeTemplate($GLOBALS['top_include']);
-?>
+<?php $this->includeTemplate($GLOBALS['top_include']); ?>
<div id="bookmarks">
<form id="import" enctype="multipart/form-data" action="<?php echo $formaction; ?>" method="post">
@@ -34,17 +32,15 @@
<li>
<p><?php echo T_('Export your bookmarks from your browser to a file'); ?>:</p>
<ul>
- <li><?php echo T_('Internet Explorer: <kbd>File &gt; Import and Export... &gt; Export Favorites'); ?></kbd></li>
- <li><?php echo T_('Mozilla Firefox: <kbd>Bookmarks &gt; Manage Bookmarks... &gt; File &gt; Export...'); ?></kbd></li>
- <li><?php echo T_('Netscape: <kbd>Bookmarks &gt; Manage Bookmarks... &gt; Tools &gt; Export...'); ?></kbd></li>
+ <li><?php echo T_('Internet Explorer: <kbd>File &rarr; Import and Export&hellip; &rarr; Export Favorites</kbd>'); ?></li>
+ <li><?php echo T_('Mozilla Firefox: <kbd>Bookmarks &rarr; Manage Bookmarks&hellip; &rarr; File &rarr; Export&hellip;</kbd>'); ?></li>
+ <li><?php echo T_('Google Chrome: <kbd>Bookmark Manager &rarr; Organize &rarr; Export Bookmarks&hellip;</kbd>'); ?></li>
</ul>
</li>
- <li><?php echo T_('Click <kbd>Browse...</kbd> to find the saved bookmark file on your computer. The maximum size the file can be is 1MB'); ?>.</li>
- <li><?php echo T_('Select the default privacy setting for your imported bookmarks'); ?>.</li>
- <li><?php echo T_('Click <kbd>Import</kbd> to start importing the bookmarks; it may take a minute'); ?>.</li>
+ <li><?php echo T_('Click <kbd>Browse&hellip;</kbd> to find the saved bookmark file on your computer. The maximum size the file can be is 1MB.'); ?></li>
+ <li><?php echo T_('Select the default privacy setting for your imported bookmarks.'); ?></li>
+ <li><?php echo T_('Click <kbd>Import</kbd> to start importing the bookmarks; it may take a minute.'); ?></li>
</ol>
</div>
-<?php
-$this->includeTemplate($GLOBALS['bottom_include']);
-?>
+<?php $this->includeTemplate($GLOBALS['bottom_include']); ?>

0 comments on commit 616df74

Please sign in to comment.