New feature: add opensearch plugin for browsers.

git-svn-id: https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/trunk@334 b3834d28-1941-0410-a4f8-b48e95affb8f
This commit is contained in:
mensonge 2009-05-25 10:53:43 +00:00
parent 4283e6b3a2
commit 9271c2dc5a
3 changed files with 67 additions and 0 deletions

18
api/opensearch.php Normal file
View file

@ -0,0 +1,18 @@
<?php
require_once('../header.inc.php');
header("Content-type: text/xml");
?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/"
xmlns:moz="http://www.mozilla.org/2006/browser/search/">
<ShortName><?php echo $GLOBALS['sitename']?></ShortName>
<LongName></LongName>
<Description><?php echo $GLOBALS['welcomeMessage']?></Description>
<InputEncoding>UTF-8</InputEncoding>
<Contact><?php echo $GLOBALS['adminemail']?></Contact>
<Developer>Jan Seifert "jan.seifert@uid.com"</Developer>
<Tags>semanticscuttle bookmark web</Tags>
<Image width="16" height="16">data:image/gif;base64,R0lGODlhEAAQAMZ9ANaPE9mREteTHtSXLdmXIdiXJtaYKdiYJ9iYKNeaLtKdP9CdRd2dLNWfQuWiFMqjX9+hNMykXt6jPOCkPM2oaM+paeCpQuGoR+OqOeKpR+GqS9+uWeSwU+ayS+uzOeWxVeWxWOSyWOu0POazXOS0YOm8Zee8cOy+WOm9a/jBLum+bPbCNurAbe7BYuvBc/LDV/LEV+zEdv/KKf/KLP/KLf/LLuzHe//MNP/NN/nMTv/OOf/OPP/OP/jNW//PPvnOVv/QQv7QRv/QRP/RR/HOhP/SSf/STPnRav/TT//TUPfScf/UUvzUXP/UVP/VV/bTfv/WWf/WW//WXP7XYf/XX//XYP/YZPPVmf/ZZv/ZZ/vYeP/aaf/aa//abP/abf/abvvaef/bb//bcfzbfP/ccv/cc//cdP/cdf/dd//deP/def3egP/ee//efP/efv/ffv/ggf/gg//ghP/ghfrfmv/hif/ii//ijP/jkfzjm//kkv7klv/lmP///////////yH5BAEKAH8ALAAAAAAQABAAAAergH+Cg38hhIeHIFcmiIgDLnt0Go2EE1pyd0QbjQMQDC9bZGprKBcjA4IfAQMrQUhOVFlhaGNPMRl/Aw4yMzc7QkZNUlZdZmASqAJKcW1WPDpARUtQUx0RgyR5fHpzUTU4PkMiqIMVNnh2c25lSTQpAIgqdXJvaWReXz0JiCxwbWhiuGCp8uMAohJszhw5AYMJlBwFEHFoYQHBAwUEMHgwgKjBA0QLKFAaKSgQADs=</Image>
<Url type="text/html" template="<?php echo $GLOBALS['root']?>search.php/all/{searchTerms}"/>
<moz:SearchForm><?php echo $GLOBALS['root']?></moz:SearchForm>
</OpenSearchDescription>

48
api/posts_public.php Normal file
View file

@ -0,0 +1,48 @@
<?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');
/* Service creation: only useful services are created */
$bookmarkservice =& ServiceFactory::getServiceInstance('BookmarkService');
// 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, NULL, $tag);
// Set up the XML file and output all the posts.
header('Content-Type: text/xml');
echo '<?xml version="1.0" standalone="yes" ?'.">\r\n";
echo '<posts update="'. gmdate('Y-m-d\TH:i:s\Z') .'" '. (is_null($tag) ? '' : ' tag="'. htmlspecialchars($tag) .'"') .">\r\n";
foreach($bookmarks['bookmarks'] as $row) {
if (is_null($row['bDescription']) || (trim($row['bDescription']) == ''))
$description = '';
else
$description = 'extended="'. 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<post href=\"". filter($row['bAddress'], 'xml') .'" description="'. filter($row['bTitle'], 'xml') .'" '. $description .'hash="'. md5($row['bAddress']) .'" tag="'. filter($taglist, 'xml') .'" time="'. gmdate('Y-m-d\TH:i:s\Z', strtotime($row['bDatetime'])) ."\" />\r\n";
}
echo '</posts>';
?>

View file

@ -23,6 +23,7 @@ $this->includeTemplate($GLOBALS['top_include']);
<h3><?php echo T_('Tips'); ?></h3> <h3><?php echo T_('Tips'); ?></h3>
<ul> <ul>
<li><?php echo T_('Add search plugin into your browser:'); ?> <a href="" onclick="window.external.AddSearchProvider('<?php echo ROOT?>api/opensearch.php');">opensearch</a></li>
<li><?php echo T_('The secret tag "system:unfiled" allows you to find bookmarks without tags.'); ?></li> <li><?php echo T_('The secret tag "system:unfiled" allows you to find bookmarks without tags.'); ?></li>
<li><?php echo T_('The secret tag "system:imported" allows you to find imported bookmarks.'); ?></li> <li><?php echo T_('The secret tag "system:imported" allows you to find imported bookmarks.'); ?></li>
</ul> </ul>