diff options
-rw-r--r-- | www/api/posts_add.php | 115 |
1 files changed, 74 insertions, 41 deletions
diff --git a/www/api/posts_add.php b/www/api/posts_add.php index 8b63a16..0e06d50 100644 --- a/www/api/posts_add.php +++ b/www/api/posts_add.php @@ -1,69 +1,102 @@ <?php -// Implements the del.icio.us API request to add a new post. -// http://delicious.com/help/api#posts_add - -// del.icio.us behavior: -// - tags can't have spaces -// - address and description are mandatory -// - description == title in semanticscuttle -// - extended == description in semanticscuttle - -// Scuttle behavior: -// - Additional 'status' variable for privacy -// - No support for 'replace' variable +/** + * API for adding a new bookmark. + * + * The following POST and GET parameters are accepted: + * @param string $url URL of the bookmark (required) + * @param string $description Bookmark title (required) + * @param string $extended Extended bookmark description (optional) + * @param string $tags Space-separated list of tags (optional) + * @param string $dt Date and time of bookmark creation (optional) + * Must be of format YYYY-MM-DDTHH:II:SSZ + * @param integer $status Visibility status (optional): + * - 2 or 'private': Bookmark is totally private + * - 1 or 'shared': People on the user's watchlist + * can see it + * - 0 or 'public': Everyone can see the bookmark + * @param string $shared "no" or "yes": Switches between private and + * public (optional) + * + * Notes: + * - tags cannot have spaces + * - URL and description (title) are mandatory + * - delicious "description" is the "title" in SemanticScuttle + * - delicious "extended" is the "description" in SemanticScuttle + * - "status" is a SemanticScuttle addition to this API method + * - SemanticScuttle currently ignores the "replace" parameter + * + * SemanticScuttle - your social bookmark manager. + * + * PHP version 5. + * + * @category Bookmarking + * @package SemanticScuttle + * @author Benjamin Huynh-Kim-Bang <mensonge@users.sourceforge.net> + * @author Christian Weiske <cweiske@cweiske.de> + * @author Eric Dane <ericdane@users.sourceforge.net> + * @license GPL http://www.gnu.org/licenses/gpl.html + * @link http://sourceforge.net/projects/semanticscuttle + * @link http://www.delicious.com/help/api + */ // Force HTTP authentication $httpContentType = 'text/xml'; require_once 'httpauth.inc.php'; -/* Service creation: only useful services are created */ -$bookmarkservice =SemanticScuttle_Service_Factory::get('Bookmark'); +$bs = SemanticScuttle_Service_Factory::get('Bookmark'); // Get all the bookmark's passed-in information -if (isset($_REQUEST['url']) && (trim($_REQUEST['url']) != '')) +if (isset($_REQUEST['url']) && (trim($_REQUEST['url']) != '')) { $url = trim(urldecode($_REQUEST['url'])); -else - $url = NULL; +} else { + $url = null; +} -if (isset($_REQUEST['description']) && (trim($_REQUEST['description']) != '')) +if (isset($_REQUEST['description']) && (trim($_REQUEST['description']) != '')) { $description = trim($_REQUEST['description']); -else - $description = NULL; +} else { + $description = null; +} -if (isset($_REQUEST['extended']) && (trim($_REQUEST['extended']) != "")) +if (isset($_REQUEST['extended']) && (trim($_REQUEST['extended']) != '')) { $extended = trim($_REQUEST['extended']); -else - $extended = NULL; +} else { + $extended = null; +} -if (isset($_REQUEST['tags']) && (trim($_REQUEST['tags']) != '') && (trim($_REQUEST['tags']) != ',')) +if (isset($_REQUEST['tags']) && (trim($_REQUEST['tags']) != '') + && (trim($_REQUEST['tags']) != ',') +) { $tags = trim($_REQUEST['tags']); -else - $tags = NULL; +} else { + $tags = null; +} -if (isset($_REQUEST['dt']) && (trim($_REQUEST['dt']) != '')) +if (isset($_REQUEST['dt']) && (trim($_REQUEST['dt']) != '')) { $dt = trim($_REQUEST['dt']); -else - $dt = NULL; +} else { + $dt = null; +} $status = 0; if (isset($_REQUEST['status'])) { $status_str = trim($_REQUEST['status']); if (is_numeric($status_str)) { $status = intval($status_str); - if($status < 0 || $status > 2) { + if ($status < 0 || $status > 2) { $status = 0; } } else { switch ($status_str) { - case 'private': - $status = 2; - break; - case 'shared': - $status = 1; - break; - default: - $status = 0; - break; + case 'private': + $status = 2; + break; + case 'shared': + $status = 1; + break; + default: + $status = 0; + break; } } } @@ -81,10 +114,10 @@ if (is_null($url)) { $msg = 'Description missing'; } else { // We're good with info; now insert it! - if ($bookmarkservice->bookmarkExists($url, $userservice->getCurrentUserId())) { + if ($bs->bookmarkExists($url, $userservice->getCurrentUserId())) { $msg = 'something went wrong'; } else { - $added = $bookmarkservice->addBookmark( + $added = $bs->addBookmark( $url, $description, $extended, '', $status, $tags, null, $dt, true ); $msg = 'done'; |