-<?php\r
-/**\r
- * Nucleus: PHP/MySQL Weblog CMS (http://nucleuscms.org/) \r
- * Copyright (C) 2002-2005 The Nucleus Group\r
- *\r
- * This program is free software; you can redistribute it and/or\r
- * modify it under the terms of the GNU General Public License\r
- * as published by the Free Software Foundation; either version 2\r
- * of the License, or (at your option) any later version.\r
- * (see nucleus/documentation/index.html#license for more info)\r
- *\r
- * This script allows adding items to Nucleus through bookmarklets. The member must be logged in\r
- * in order to use this.\r
- *\r
- * $Id: bookmarklet.php,v 1.4 2005-03-15 08:24:16 kimitake Exp $\r
- * $NucleusJP$\r
- */\r
-\r
+<?php
+/*
+ * Nucleus: PHP/MySQL Weblog CMS (http://nucleuscms.org/)
+ * Copyright (C) 2002-2009 The Nucleus Group
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ * (see nucleus/documentation/index.html#license for more info)
+ */
+/**
+ * This script allows adding items to Nucleus through bookmarklets. The member must be logged in
+ * in order to use this.
+ *
+ * @license http://nucleuscms.org/license.txt GNU General Public License
+ * @copyright Copyright (C) 2002-2009 The Nucleus Group
+ * @version $Id$
+ * $NucleusJP: bookmarklet.php,v 1.9.2.1 2007/09/07 07:16:39 kimitake Exp $
+ */
+
// bookmarklet is part of admin area (might need XML-RPC)\r
$CONF = array();\r
$CONF['UsingAdminArea'] = 1;\r
\r
-// include all classes and config data \r
+// include all classes and config data\r
include('../config.php');\r
\r
$action = requestVar('action');\r
exit;\r
}\r
\r
-if (!$member->isLoggedIn()) {\r
+if (!$member->isLoggedIn() ) {\r
bm_loginAndPassThrough();\r
exit;\r
}\r
\r
// on successfull login\r
-if (($action == 'login') && ($member->isLoggedIn()))\r
+if ( ($action == 'login') && ($member->isLoggedIn() ) ) {\r
$action = requestVar('nextaction');\r
-if ($action == '')\r
+}\r
+\r
+if ($action == '') {\r
$action = 'add';\r
- \r
-sendContentType('application/xhtml+xml', 'bookmarklet-'.$action); \r
+}\r
+\r
+sendContentType('text/html', 'bookmarklet-' . $action);\r
\r
// check ticket\r
$action = strtolower($action);\r
$aActionsNotToCheck = array('login', 'add', 'edit');\r
-if (!in_array($action, $aActionsNotToCheck))\r
-{\r
- if (!$manager->checkTicket())\r
+\r
+if (!in_array($action, $aActionsNotToCheck) ) {\r
+\r
+ if (!$manager->checkTicket() ) {\r
bm_doError(_ERROR_BADTICKET);\r
-} \r
+ }\r
\r
+}\r
\r
// find out what to do\r
switch ($action) {\r
+ // adds the item for real\r
case 'additem':\r
- bm_doAddItem(); // adds the item for real\r
+ bm_doAddItem();\r
break;\r
+\r
+ // shows the edit item form\r
case 'edit':\r
- bm_doEditForm(); // shows the edit item form\r
+ bm_doEditForm();\r
break;\r
- case 'edititem': // edits the item for real\r
+\r
+ // edits the item for real\r
+ case 'edititem':\r
bm_doEditItem();\r
break;\r
- case 'login': // on login, 'action' gets changed to 'nextaction'\r
+\r
+ // on login, 'action' gets changed to 'nextaction'\r
+ case 'login':\r
bm_doError('Something went wrong');\r
break;\r
+\r
+ // shows the fill in form\r
case 'add':\r
default:\r
- bm_doShowForm(); // shows the fill in form\r
+ bm_doShowForm();\r
break;\r
}\r
- \r
+\r
function bm_doAddItem() {\r
global $member, $manager, $CONF;\r
- \r
+\r
$manager->loadClass('ITEM');\r
$result = ITEM::createFromRequest();\r
- \r
- if ($result['status'] == 'error')\r
+\r
+ if ($result['status'] == 'error') {\r
bm_doError($result['message']);\r
+ }\r
\r
$blogid = getBlogIDFromItemID($result['itemid']);\r
$blog =& $manager->getBlog($blogid);\r
- \r
+\r
if ($result['status'] == 'newcategory') {\r
- $message = 'アイテムは追加され、新しいカテゴリーが作成されました。 <a href="index.php?action=categoryedit&blogid='.$blogid.'&catid='.$result['catid'].'" onclick="if (event && event.preventDefault) event.preventDefault(); window.open(this.href); return false;" title="Opens in new window">ここをクリックしてカテゴリーの名前と説明を編集してください。</a>';\r
+ $href = 'index.php?action=categoryedit&blogid=' . $blogid . '&catid=' . $result['catid'];\r
+ $onclick = 'if (event && event.preventDefault) event.preventDefault(); window.open(this.href); return false;';\r
+ $title = _BOOKMARKLET_NEW_WINDOW;\r
+ $aTag = ' <a href="' . $href . '" onclick="' . $onclick . '" title="' . $title . '">';\r
+ $message = _BOOKMARKLET_NEW_CATEGORY . $aTag . _BOOKMARKLET_NEW_CATEGORY_EDIT . '</a>';\r
$extrahead = '';\r
- } elseif ((postVar('actiontype') == 'addnow') && $blog->pingUserland()) {\r
- $message = 'アイテムの追加に成功しました。現在weblogs.comにpingを送っています。しばらくの間お待ちください...';\r
- $extrahead = '<meta http-equiv="refresh" content="1; url=index.php?action=sendping&blogid=' . $blogid . '" />';\r
+ } elseif ( (postVar('actiontype') == 'addnow') && $blog->sendPing() ) {\r
+ $message = _BOOKMARKLET_SEND_PING;\r
+ $pingUrl = $manager->addTicketToUrl($CONF['AdminURL'] . 'index.php?action=sendping&blogid=' . intval($blogid) );\r
+ $extrahead = '<meta http-equiv="refresh" content="1; url=' . htmlspecialchars($pingUrl) . '" />';\r
} else {\r
$message = _ITEM_ADDED;\r
$extrahead = '';\r
}\r
- \r
+\r
bm_message(_ITEM_ADDED, _ITEM_ADDED, $message,$extrahead);\r
}\r
\r
function bm_doEditItem() {\r
global $member, $manager, $CONF;\r
- \r
- $itemid = intRequestVar('itemid');\r
- $catid = postVar('catid');\r
- \r
+\r
+ $itemid = intRequestVar('itemid');\r
+ $catid = postVar('catid');\r
+\r
// only allow if user is allowed to alter item\r
- if (!$member->canUpdateItem($itemid, $catid))\r
+ if (!$member->canUpdateItem($itemid, $catid) ) {\r
bm_doError(_ERROR_DISALLOWED);\r
+ }\r
\r
- $body = postVar('body');\r
- $title = postVar('title');\r
- $more = postVar('more');\r
- $closed = intPostVar('closed');\r
+ $body = postVar('body');\r
+ $title = postVar('title');\r
+ $more = postVar('more');\r
+ $closed = intPostVar('closed');\r
$actiontype = postVar('actiontype');\r
- \r
+ $draftid = intPostVar('draftid');\r
+\r
// redirect to admin area on delete (has delete confirmation)\r
if ($actiontype == 'delete') {\r
- redirect('index.php?action=itemdelete&itemid='.$itemid);\r
- exit; \r
+ redirect('index.php?action=itemdelete&itemid=' . $itemid);\r
+ exit;\r
}\r
- \r
+\r
// create new category if needed (only on edit/changedate)\r
- if (strstr($catid,'newcat')) {\r
- // get blogid \r
- list($blogid) = sscanf($catid,"newcat-%d");\r
+ if (strstr($catid,'newcat') ) {\r
+ // get blogid\r
+ list($blogid) = sscanf($catid, "newcat-%d");\r
\r
// create\r
$blog =& $manager->getBlog($blogid);\r
$catid = $blog->createNewCategory();\r
\r
// show error when sth goes wrong\r
- if (!$catid) \r
+ if (!$catid) {\r
bm_doError('Could not create new category');\r
- } \r
+ }\r
+ }\r
\r
// only edit action is allowed for bookmarklet edit\r
switch ($actiontype) {\r
case 'changedate':\r
$publish = 1;\r
$wasdraft = 0;\r
- $timestamp = mktime(postVar('hour'), postVar('minutes'), 0, postVar('month'), postVar('day'), postVar('year'));\r
+ $timestamp = mktime(intPostVar('hour'), intPostVar('minutes'), 0, intPostVar('month'), intPostVar('day'), intPostVar('year') );\r
break;\r
case 'edit':\r
$publish = 1;\r
$wasdraft = 0;\r
$timestamp = 0;\r
break;\r
+ case 'backtodrafts':\r
+ $publish = 0;\r
+ $wasdraft = 0;\r
+ $timestamp = 0;\r
+ break;\r
default:\r
bm_doError('Something went wrong');\r
}\r
- \r
+\r
// update item for real\r
ITEM::update($itemid, $catid, $title, $body, $more, $closed, $wasdraft, $publish, $timestamp);\r
- \r
+\r
+ if ($draftid > 0) {\r
+ ITEM::delete($draftid);\r
+ }\r
+\r
// show success message\r
- if ($catid != intPostVar('catid'))\r
- bm_message(_ITEM_UPDATED, _ITEM_UPDATED, 'アイテムは追加され、新しいカテゴリーが作成されました。<a href="index.php?action=categoryedit&blogid='.$blog->getID().'&catid='.$catid.'" onclick="if (event && event.preventDefault) event.preventDefault(); window.open(this.href); return false;" title="Opens in new window">ここをクリックしてカテゴリーの名前と説明を編集してください。</a>', '');\r
- else\r
+ if ($catid != intPostVar('catid') ) {\r
+ $href = 'index.php?action=categoryedit&blogid=' . $blog->getID() . '&catid=' . $catid;\r
+ $onclick = 'if (event && event.preventDefault) event.preventDefault(); window.open(this.href); return false;';\r
+ $title = _BOOKMARKLET_NEW_WINDOW;\r
+ $aTag = ' <a href="' . $href . '" onclick="' . $onclick . '" title="' . $title . '">';\r
+ $message = _BOOKMARKLET_NEW_CATEGORY . $aTag . _BOOKMARKLET_NEW_CATEGORY_EDIT . '</a>';\r
+ bm_message(_ITEM_UPDATED, _ITEM_UPDATED, _BOOKMARKLET_NEW_CATEGORY . $aTag . _BOOKMARKLET_NEW_CATEGORY_EDIT . '</a>', '');\r
+ } else {\r
bm_message(_ITEM_UPDATED, _ITEM_UPDATED, _ITEM_UPDATED, '');\r
+ }\r
}\r
\r
function bm_loginAndPassThrough() {\r
$log_text = requestVar('logtext');\r
$log_link = requestVar('loglink');\r
$log_linktitle = requestVar('loglinktitle');\r
- \r
+\r
?>\r
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
- <html xmlns="http://www.w3.org/1999/xhtml">\r
+ <html <?php echo _HTML_XML_NAME_SPACE_AND_LANG_CODE; ?>>\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo _CHARSET ?>" />\r
<title>Nucleus</title>\r
<?php bm_style(); ?>\r
</head>\r
<body>\r
- <h1><?php echo _LOGIN_PLEASE?></h1>\r
- \r
+ <h1><?php echo _LOGIN_PLEASE ?></h1>\r
+\r
<form method="post" action="bookmarklet.php">\r
<p>\r
<input name="action" value="login" type="hidden" />\r
- <input name="blogid" value="<?php echo htmlspecialchars($blogid) ?>" type="hidden" />\r
- <input name="logtext" value="<?php echo htmlspecialchars($log_text) ?>" type="hidden" />\r
- <input name="loglink" value="<?php echo htmlspecialchars($log_link) ?>" type="hidden" />\r
- <input name="loglinktitle" value="<?php echo htmlspecialchars($log_linktitle) ?>" type="hidden" />\r
- <?php echo _LOGINFORM_NAME?>:\r
+ <input name="blogid" value="<?php echo htmlspecialchars($blogid); ?>" type="hidden" />\r
+ <input name="logtext" value="<?php echo htmlspecialchars($log_text); ?>" type="hidden" />\r
+ <input name="loglink" value="<?php echo htmlspecialchars($log_link); ?>" type="hidden" />\r
+ <input name="loglinktitle" value="<?php echo htmlspecialchars($log_linktitle); ?>" type="hidden" />\r
+ <?php echo _LOGINFORM_NAME ?>:\r
<br /><input name="login" />\r
- <br /><?php echo _LOGINFORM_PWD?>:\r
+ <br /><?php echo _LOGINFORM_PWD ?>:\r
<br /><input name="password" type="password" />\r
<br /><br />\r
- <br /><input type="submit" value="<?php echo _LOGIN?>" />\r
+ <br /><input type="submit" value="<?php echo _LOGIN ?>" />\r
</p>\r
</form>\r
- <p><a href="bookmarklet.php" onclick="window.close();"><?php echo _POPUP_CLOSE?></a></p>\r
+ <p><a href="bookmarklet.php" onclick="window.close();"><?php echo _POPUP_CLOSE ?></a></p>\r
</body>\r
</html>\r
<?php\r
\r
function bm_doShowForm() {\r
global $member;\r
- \r
+\r
$blogid = intRequestVar('blogid');\r
$log_text = trim(requestVar('logtext'));\r
$log_link = requestVar('loglink');\r
$log_text = uniDecode($log_text,_CHARSET);\r
$log_linktitle = uniDecode($log_linktitle,_CHARSET);\r
\r
- if (!BLOG::existsID($blogid))\r
+ if (!BLOG::existsID($blogid) ) {\r
bm_doError(_ERROR_NOSUCHBLOG);\r
+ }\r
\r
- if (!$member->isTeamMember($blogid))\r
+ if (!$member->isTeamMember($blogid) ) {\r
bm_doError(_ERROR_NOTONTEAM);\r
- \r
+ }\r
+\r
$logje = '';\r
- if ($log_text)\r
- $logje .= '<blockquote><div>"' . htmlspecialchars($log_text) .'"</div></blockquote>' . "\n";\r
- if (!$log_linktitle)\r
+\r
+ if ($log_text) {\r
+ $logje .= '<blockquote><div>"' . htmlspecialchars($log_text) . '"</div></blockquote>' . "\n";\r
+ }\r
+\r
+ if (!$log_linktitle) {\r
$log_linktitle = $log_link;\r
- if ($log_link) \r
- $logje .= '<a href="'. htmlspecialchars($log_link) . '">'. htmlspecialchars($log_linktitle).'</a>';\r
- \r
+ }\r
+\r
+ if ($log_link) {\r
+ $logje .= '<a href="' . htmlspecialchars($log_link) . '">' . htmlspecialchars($log_linktitle) . '</a>';\r
+ }\r
\r
$item['body'] = $logje;\r
$item['title'] = htmlspecialchars($log_linktitle);\r
\r
$factory = new PAGEFACTORY($blogid);\r
- $factory->createAddForm('bookmarklet',$item);\r
+ $factory->createAddForm('bookmarklet', $item);\r
}\r
\r
function bm_doEditForm() {\r
global $member, $manager;\r
- \r
+\r
$itemid = intRequestVar('itemid');\r
- \r
- if (!$manager->existsItem($itemid, 0, 0)) \r
+\r
+ if (!$manager->existsItem($itemid, 0, 0) ) {\r
bm_doError(_ERROR_NOSUCHITEM);\r
- \r
- if (!$member->canAlterItem($itemid))\r
+ }\r
+\r
+ if (!$member->canAlterItem($itemid) ) {\r
bm_doError(_ERROR_DISALLOWED);\r
- \r
- $item =& $manager->getItem($itemid,1,1);\r
- $blog =& $manager->getBlog(getBlogIDFromItemID($itemid));\r
- \r
- $manager->notify('PrepareItemForEdit', array('item' => &$item));\r
+ }\r
+\r
+ $item =& $manager->getItem($itemid, 1, 1);\r
+ $blog =& $manager->getBlog(getBlogIDFromItemID($itemid) );\r
\r
- if ($blog->convertBreaks()) {\r
+ $manager->notify('PrepareItemForEdit', array('item' => &$item) );\r
+\r
+ if ($blog->convertBreaks() ) {\r
$item['body'] = removeBreaks($item['body']);\r
$item['more'] = removeBreaks($item['more']);\r
}\r
\r
- $formfactory = new PAGEFACTORY($blog->getID());\r
- $formfactory->createEditForm('bookmarklet',$item); \r
-\r
+ $formfactory = new PAGEFACTORY($blog->getID() );\r
+ $formfactory->createEditForm('bookmarklet', $item);\r
}\r
\r
function bm_doError($msg) {\r
- bm_message(_ERROR,_ERRORMSG,$msg);\r
+ bm_message(_ERROR, _ERRORMSG, $msg);\r
die;\r
}\r
\r
function bm_message($title, $head, $msg, $extrahead = '') {\r
?>\r
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
- <html xmlns="http://www.w3.org/1999/xhtml">\r
+ <html <?php echo _HTML_XML_NAME_SPACE_AND_LANG_CODE; ?>>\r
<head>\r
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo _CHARSET ?>" />\r
- <title><?php echo $title ?></title>\r
+ <title><?php echo $title ?></title>\r
<?php bm_style(); ?>\r
- <?php echo $extrahead?>\r
+ <?php echo $extrahead; ?>\r
</head>\r
<body>\r
- <h1><?php echo $head ?></h1>\r
- <p><?php echo $msg ?></p>\r
- <p><a href="bookmarklet.php" onclick="window.close();"><?php echo _POPUP_CLOSE?></a></p>\r
+ <h1><?php echo $head; ?></h1>\r
+ <p><?php echo $msg; ?></p>\r
+ <p><a href="bookmarklet.php" onclick="window.close();window.opener.location.reload();"><?php echo _POPUP_CLOSE ?></a></p>\r
</body>\r
</html>\r
- \r
- <?php }\r
+\r
+ <?php\r
+}\r
\r
function bm_style() {\r
echo '<link rel="stylesheet" type="text/css" href="styles/bookmarklet.css" />';\r
- echo '<link rel="stylesheet" type="text/css" href="styles/addedit.css" />'; \r
+ echo '<link rel="stylesheet" type="text/css" href="styles/addedit.css" />';\r
}\r
\r
function bm_doContextMenuCode() {\r
global $CONF;\r
?>\r
<script type="text/javascript" defer="defer">\r
-doc=external.menuArguments.document;\r
-lt=escape(doc.selection.createRange().text);\r
-loglink=escape(external.menuArguments.location.href);\r
-loglinktitle=escape(doc.title);\r
-wingm=window.open('<?php echo $CONF['AdminURL']?>bookmarklet.php?blogid=<?php echo intGetVar('blogid')?>&logtext='+lt+'&loglink='+loglink+'&loglinktitle='+loglinktitle,'nucleusbm','scrollbars=yes,width=600,height=500,left=10,top=10,status=yes,resizable=yes');\r
+doc = external.menuArguments.document;\r
+lt = escape(doc.selection.createRange().text);\r
+loglink = escape(external.menuArguments.location.href);\r
+loglinktitle = escape(doc.title);\r
+wingm = window.open('<?php echo $CONF['AdminURL']?>bookmarklet.php?blogid=<?php echo intGetVar('blogid')?>&logtext=' + lt + '&loglink=' + loglink + '&loglinktitle=' + loglinktitle, 'nucleusbm', 'scrollbars=yes,width=600,height=500,left=10,top=10,status=yes,resizable=yes');\r
wingm.focus();\r
-</script> \r
+</script>\r
<?php\r
}\r
\r
function uniDecode($str,$charcode){\r
$text = preg_replace_callback("/%u[0-9A-Za-z]{4}/",toUtf8,$str);\r
- return mb_convert_encoding($text, $charcode, 'utf-8');\r
+ return mb_convert_encoding($text, $charcode, 'UTF-8');\r
}\r
function toUtf8($ar){\r
foreach($ar as $val){\r
return $c;\r
}\r
\r
-?>\r
+?>
\ No newline at end of file