diff options
| author | mensonge <mensonge@b3834d28-1941-0410-a4f8-b48e95affb8f> | 2008-04-03 14:36:16 +0000 | 
|---|---|---|
| committer | mensonge <mensonge@b3834d28-1941-0410-a4f8-b48e95affb8f> | 2008-04-03 14:36:16 +0000 | 
| commit | b143701e7db9ee49f53e3f221eed7b96c340228a (patch) | |
| tree | 7858876bb41218a8864eabdfb2ce6920b95e811a | |
| parent | 0564d64de2ea6838e7a874da5e99fa5358a0f75f (diff) | |
| download | semanticscuttle-b143701e7db9ee49f53e3f221eed7b96c340228a.tar.gz semanticscuttle-b143701e7db9ee49f53e3f221eed7b96c340228a.tar.bz2 | |
New feature: export bookmarks into html file for import into browsers
git-svn-id: https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/trunk@95 b3834d28-1941-0410-a4f8-b48e95affb8f
| -rw-r--r-- | api/.htaccess | 1 | ||||
| -rw-r--r-- | api/export_all.php | 57 | ||||
| -rw-r--r-- | templates/editprofile.tpl.php | 22 | 
3 files changed, 71 insertions, 9 deletions
| diff --git a/api/.htaccess b/api/.htaccess index 0db2254..eac7035 100644 --- a/api/.htaccess +++ b/api/.htaccess @@ -8,6 +8,7 @@ RewriteRule ^posts/update posts_update.php  RewriteRule ^posts/add posts_add.php  RewriteRule ^posts/delete posts_delete.php  RewriteRule ^tags/rename tags_rename.php +RewriteRule ^tags/export export_all.php  # Allow PHP_AUTH_USER with CGI script diff --git a/api/export_all.php b/api/export_all.php new file mode 100644 index 0000000..ec14688 --- /dev/null +++ b/api/export_all.php @@ -0,0 +1,57 @@ +<?php
 +// Implements the del.icio.us API request for all a user's posts, optionally filtered by tag.
 +
 +// del.icio.us behavior:
 +// - 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('../header.inc.php');
 +
 +$bookmarkservice =& ServiceFactory::getServiceInstance('BookmarkService');
 +$userservice =& ServiceFactory::getServiceInstance('UserService');
 +
 +// Check to see if a tag was specified.
 +if (isset($_REQUEST['tag']) && (trim($_REQUEST['tag']) != ''))
 +    $tag = 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());
 +
 +$currentuser = $userservice->getCurrentUser();
 +$currentusername = $currentuser[$userservice->getFieldName('username')];
 +
 +// Set up the XML file and output all the posts.
 +header('Content-Type: text/html');
 +echo '<!DOCTYPE NETSCAPE-Bookmark-file-1>'."\r\n"; +echo '<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">';
 +echo '<!-- This is an automatically generated file. -->'."\r\n";
 +echo '<TITLE>Bookmarks</TITLE>'."\r\n";
 +echo '<H1 LAST_MODIFIED="'. date('U') .'">Bookmarks for '. htmlspecialchars($currentusername) .''. (is_null($tag) ? '' : ' tag="'. htmlspecialchars($tag) .'"') ." from " . $sitename ."</H1>\r\n";
 +echo '<DL><p>'."\r\n";
 +
 +
 +
 +foreach($bookmarks['bookmarks'] as $row) {
 +    if (is_null($row['bDescription']) || (trim($row['bDescription']) == ''))
 +        $description = '';
 +    else
 +        $description = 'description="'. filter($row['bDescription'], 'xml') .'" ';
 +
 +    $taglist = '';
 +    if (count($row['tags']) > 0) {
 +        foreach($row['tags'] as $tag)
 +            $taglist .= convertTag($tag) .' ';
 +        $taglist = substr($taglist, 0, -1);
 +    } else {
 +        $taglist = 'system:unfiled';
 +    }
 +
 +    echo "\t<dt><a href=\"". filter($row['bAddress'], 'xml') .'" '. $description .' hash="'. md5($row['bAddress']) .'" tags="'. filter($taglist, 'xml') .'" ADD_DATE="'. date('U', strtotime($row['bDatetime'])) ."\" >" . filter($row['bTitle'], 'xml') ."</a>\r\n";
 +}
 +
 +
 +echo '</DL><p>';
 +?>
 diff --git a/templates/editprofile.tpl.php b/templates/editprofile.tpl.php index d84fac5..8108b2c 100644 --- a/templates/editprofile.tpl.php +++ b/templates/editprofile.tpl.php @@ -4,15 +4,6 @@ $this->includeTemplate($GLOBALS['top_include']);  <form action="<?php echo $formaction; ?>" method="post"> -<h3><?php echo T_('Actions'); ?></h3> -<table class="profile"> -<tr> -    <th align="left"><?php echo T_('Export'); ?></th> -    <td> -	<a href="../api/posts/all"><?php echo T_('All bookmarks')?></a> -	<?php echo ' ← '.T_('Del.icio.us-like API')?> -    </td> -</tr>  </table>  <h3><?php echo T_('Account Details'); ?></h3> @@ -60,6 +51,19 @@ $this->includeTemplate($GLOBALS['top_include']);      <td><input type="submit" name="submitted" value="<?php echo T_('Save Changes'); ?>" /></td>  </tr>  </table> +<h3><?php echo T_('Actions'); ?></h3> +<table class="profile"> +<tr> +    <th align="left"><?php echo T_('Export bookmarks'); ?></th> +    <td> +	<a href="../api/posts/all"><?php echo T_('XML file (for del.icio.us)')?></a> / +	<a href="../api/export/all"><?php echo T_('HTML file (for browsers)')?></a> +    </td> +</tr> +<tr><th> </th><td> </td></tr> +<tr><th> </th><td> </td></tr> +</table> +  </form>  <?php | 
