OSDN Git Service

ブックマークレット再構成のためのファイルをコミット
authorsakamocchi <o-takashi@sakamocchi.jp>
Mon, 30 Apr 2012 17:20:21 +0000 (02:20 +0900)
committersakamocchi <o-takashi@sakamocchi.jp>
Mon, 30 Apr 2012 17:20:21 +0000 (02:20 +0900)
管理画面用スキンに含めてしまうか、それとも管理画面用スキンのカスタマイズ例のひとつとするかで判断がわかれるところではあるが、とりあえず管理画面用スキンの亜種としてコミットした。

Skinオブジェクトを用いてスキンを取得、AdminActionsクラスをバックエンドとしてParserクラスにパースをさせてページを出力する。

この用途に使うにあたり、AdminActionsクラスに関して確認すべき必須事項として以下がある。

1.タグが正常に出力されるかどうか
1-1. <%action%>
1-2. <%logtext%>
1-3. <%log_link%>
1-4. <%log_linktitle%>
1-5. <%extrahead%>
1-6. <%init%>
1-7. <%title%>
1-8. <%headmessage%>
1-9. <%passrequestvars%>

2. ブックマークレット用スキンIDの決定方法。コード中では$CONF['DefaultBookmarkletSkin']として参照している。

3. ブックマークレットのポップアップのためのJavaScriptコードの生成方法。可能ならスキン側から決定できるようにするのが好ましい。

nucleus/bookmarklet.php
skins/admin/defaultbookmarklet/skinbackup.xml [new file with mode: 0644]

index ce4f953..13d30d5 100644 (file)
@@ -25,11 +25,20 @@ $CONF['UsingAdminArea'] = 1;
 // include all classes and config data
 include('../config.php');
 
+// get skin object
+$skinid = $CONF['DefaultBookmarkletSkin'];
+if ( !Skin::existsID($skinid) )
+{
+       echo _ERROR_SKIN;
+       exit;
+}
+$skin = new Skin($skinid, 'AdminActions', 'AdminSkin');
+
 // check logged-in or pass through
 $action = requestVar('action');
 if ( !$member->isLoggedIn() )
 {
-       bm_loginAndPassThrough($action);
+       bm_loginAndPassThrough($skin, $action);
        exit;
 }
 else if ( $action == 'login')
@@ -49,9 +58,6 @@ else if ( $action == '' )
        $action = 'add';
 }
 
-// send HTTP 1.1 message header for Content-Type
-sendContentType('text/html', 'bookmarklet-' . $action);
-
 // check ticket
 $aActionsNotToCheck = array('login', 'add', 'edit');
 if ( !in_array($action, $aActionsNotToCheck) )
@@ -67,32 +73,32 @@ switch ( $action )
 {
        // adds the item for real
        case 'additem':
-               bm_doAddItem();
+               bm_doAddItem($skin);
                break;
        
        // shows the edit item form
        case 'edit':
-               bm_doEditForm();
+               bm_doEditForm($skin);
                break;
        
        // edits the item for real
        case 'edititem':
-               bm_doEditItem();
+               bm_doEditItem($skin);
                break;
        
        // on login, 'action' gets changed to 'nextaction'
        case 'login':
-               bm_doError('Something went wrong');
+               bm_doError($skin, 'Something went wrong');
                break;
        
        // shows the fill in form
        case 'add':
        default:
-               bm_doShowForm();
+               bm_doShowForm($skin);
                break;
 }
 
-function bm_doAddItem()
+function bm_doAddItem($skin)
 {
        global $member, $manager, $CONF;
        
@@ -118,12 +124,12 @@ function bm_doAddItem()
                $extrahead = '';
        }
        
-       bm_message(_ITEM_ADDED, _ITEM_ADDED, $message,$extrahead);
+       bm_message($skin, _ITEM_ADDED, _ITEM_ADDED, $message,$extrahead);
        
        return;
 }
 
-function bm_doEditItem()
+function bm_doEditItem($skin)
 {
        global $member, $manager, $CONF;
        
@@ -200,55 +206,42 @@ function bm_doEditItem()
        // show success message
        if ( $catid != intPostVar('catid') )
        {
-               bm_message(_ITEM_UPDATED, _ITEM_UPDATED, 'Item was added, and a new category was created. <a href="index.php?action=categoryedit&amp;blogid=' . $blog->getID() . '&amp;catid=' . $catid . '" onclick="if (event &amp;&amp; event.preventDefault) event.preventDefault(); window.open(this.href); return false;" title="Opens in new window">Click here to edit the name and description of the category.</a>', '');
+               bm_message($skin, _ITEM_UPDATED, _ITEM_UPDATED, 'Item was added, and a new category was created. <a href="index.php?action=categoryedit&amp;blogid=' . $blog->getID() . '&amp;catid=' . $catid . '" onclick="if (event &amp;&amp; event.preventDefault) event.preventDefault(); window.open(this.href); return false;" title="Opens in new window">Click here to edit the name and description of the category.</a>', '');
        }
        else
        {
-               bm_message(_ITEM_UPDATED, _ITEM_UPDATED, _ITEM_UPDATED, '');
+               bm_message($skin, _ITEM_UPDATED, _ITEM_UPDATED, _ITEM_UPDATED, '');
        }
        
        return;
 }
 
-function bm_loginAndPassThrough($action='add')
+function bm_loginAndPassThrough($skin, $action='add')
 {
+       /*
+        * TODO: これを出力させる
        $blogid = intRequestVar('blogid');
        $itemid = intRequestVar('itemid');
-       $log_text               = requestVar('logtext');
-       $log_link               = requestVar('loglink');
-       $log_linktitle  = requestVar('loglinktitle');
+       $log_text = requestVar('logtext');
+       $log_link = requestVar('loglink');
+       $log_linktitle = requestVar('loglinktitle');
        
-       echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n";
-       echo "<html xmlns=\"http://www.w3.org/1999/xhtml\">\n";
-       echo "<head>\n";
-       echo "<title>Nucleus CMS Bookmarklet</title>\n";
-       
-       bm_style();
-       
-       echo "</head>\n";
-       echo "<body>\n";
-       echo '<h1>' . _LOGIN_PLEASE . "</h1>\n";
-       echo "<form method=\"post\" action=\"bookmarklet.php\">\n";
-       echo "<p>\n";
-       echo _LOGINFORM_NAME . "<input type=\"text\" name=\"login\" value=\"\" /><br />\n";
-       echo _LOGINFORM_PWD . "<input type=\"password\" name=\"password\" value=\"\" /><br />\n";
        echo '<input type="hidden" name="blogid" value="' . Entity::hsc($blogid). '" />' . "\n";
        echo '<input type="hidden" name="itemid" value="' . Entity::hsc($itemid). '" />' . "\n";
        echo '<input type="hidden" name="logtext" value="' . Entity::hsc($log_text) . '" />' . "\n";
        echo '<input type="hidden" name="loglink" value="' . Entity::hsc($log_link) . '" />' . "\n";
        echo '<input type="hidden" name="loglinktitle" value="' . Entity::hsc($log_linktitle) . '" />' . "\n";
        echo "<input type=\"hidden\" name=\"nextaction\" value=\"{$action}\" />\n";
-       echo '<button type="submit" name="action" value="login">' . _LOGIN . "</button>\n";
-       echo "</p>\n";
-       echo "</form>\n";
-       echo '<p><a href="bookmarklet.php" onclick="window.close();">' . _POPUP_CLOSE . "</a></p>\n";
-       echo "</body>\n";
-       echo "</html>\n";
+       */
+       
+       $skin->parse('pagehead');
+       $skin->parse('showlogin');
+       $skin->parse('pagefoot');
        
        return;
 }
 
-function bm_doShowForm()
+function bm_doShowForm($skin)
 {
        global $member;
        
@@ -287,13 +280,15 @@ function bm_doShowForm()
        $item['body'] = $logje;
        $item['title'] = Entity::hsc($log_linktitle);
        
-       $factory = new PageFactory($blogid);
-       $factory->createAddForm('bookmarklet', $item);
+       /* TODO: $itemを渡す */
+       $skin->parse('pagehead');
+       $skin->parse('itemedit');
+       $skin->parse('pagefoot');
        
        return;
 }
 
-function bm_doEditForm()
+function bm_doEditForm($skin)
 {
        global $member, $manager;
        
@@ -320,46 +315,30 @@ function bm_doEditForm()
                $item['more'] = removeBreaks($item['more']);
        }
        
-       $formfactory = new PageFactory($blog->getID() );
-       $formfactory->createEditForm('bookmarklet', $item);
+       /* TODO: $itemを渡す */
+       $skin->parse('pagehead');
+       $skin->parse('createitem');
+       $skin->parse('pagefoot');
        
        return;
 }
 
-function bm_doError($msg)
+function bm_doError($skin, $msg)
 {
-       bm_message(_ERROR, _ERRORMSG, $msg);
+       bm_message($skin, _ERROR, _ERRORMSG, $msg);
        die;
 }
 
-function bm_message($title, $head, $msg, $extrahead = '')
+function bm_message($skin, $title, $head, $msg, $extrahead = '')
 {
-       echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n";
-       echo "<html xmlns=\"http://www.w3.org/1999/xhtml\">\n";
-       echo "<head>\n";
-       echo "<title>{$title}</title>\n";
-       
-       bm_style();
-       
-       echo $extrahead . "\n";
-       echo "</head>\n";
-       echo "<body>\n";
-       echo "<h1>{$head}</h1>\n";
-       echo "<p>{$msg}</p>\n";
-       echo '<p><a href="bookmarklet.php" onclick="window.close();window.opener.location.reload();">' . _POPUP_CLOSE . "</a></p>\n";
-       echo "</body>\n";
-       echo "</html>\n";
+       /* TODO: $title, $head, $msg, $extraheadを渡す */
+       $skin->parse('pagehead');
+       $skin->parse('adminerrorpage');
+       $skin->parse('pagefoot');
        
        return;
 }
 
-function bm_style()
-{
-       echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"styles/bookmarklet.css\" />\n";
-       echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"styles/addedit.css\" />\n";
-       return;
-}
-
 function bm_doContextMenuCode($width=600, $height=500)
 {
        global $CONF;
diff --git a/skins/admin/defaultbookmarklet/skinbackup.xml b/skins/admin/defaultbookmarklet/skinbackup.xml
new file mode 100644 (file)
index 0000000..437d67a
--- /dev/null
@@ -0,0 +1,344 @@
+<?xml version="1.0"?>\r
+<nucleusskin>\r
+<meta>\r
+<skin name="admin/default/bookmarklet"/>\r
+<template name="admin/default/bookmarklet"/>\r
+<info><![CDATA[20120430]]></info>\r
+</meta>\r
+<skin name="admin/default/bookmarklet" type="text/html" includeMode="admin" includePrefix="admin/default/bookmarklet">\r
+<description>\r
+<![CDATA[\r
+       ADMIN Area Default Bookmarklet Skin\r
+]]>\r
+</description>\r
+<part name="createitem">\r
+<![CDATA[\r
+       <h1><%text(_ADD_ADDTO)%> '<%bloglink%>'</h1>\r
+       <form id="addform" method="post" action="bookmarklet.php" >\r
+       <div>\r
+       <input name="action" type="hidden" value="additem" />\r
+       <input name="blogid" type="hidden" value="<%blogid%>" />\r
+       <input type="hidden" name="draftid" value="0" />\r
+       <%ticket%>\r
+       \r
+       <div id="submit" class="buttonbar">\r
+       <div id="switchbuttons">\r
+       <input type="button" onclick="flipBlock('body');" value="<%text(_BMLET_BODY)%> &gt;&gt;" />\r
+       <input type="button" onclick="flipBlock('more');" value="<%text(_BMLET_MORE)%> &gt;&gt;" />\r
+       <input type="button" onclick="flipBlock('options');" value="<%text(_BMLET_OPTIONS)%> &gt;&gt;" />\r
+       <input type="button" onclick="updAllPreviews(); flipBlock('preview');" value="<%text(_BMLET_PREVIEW)%> &gt;&gt;" />\r
+       </div>\r
+       <input type="submit" value="<%text(_BMLET_ADD)%>" onclick="return checkSubmit();" />\r
+       <input type="button" value="<%text(_BMLET_CANCEL)%>" onclick="window.close();" />\r
+       </div>\r
+       \r
+       <div id="body" class="contentblock">\r
+       <table frame="box" rules="all" summary="<%text(_BMLET_BODY)%>">\r
+       <%if(autosave)%>\r
+       <tr>\r
+       <td><%text(_AUTOSAVEDRAFT)%></td>\r
+       <td><span id="info"><%text(_AUTOSAVEDRAFT_NOTYETSAVED)%></span></td>\r
+       </tr>\r
+       <%endif%>\r
+       <tr>\r
+       <td><%text(_ADD_TITLE)%></td>\r
+       <td><input <%jsinput(title)%> type="text" size="60" maxlength="160" value="<%contents(title)%>" /></td>\r
+       </tr>\r
+       <tr>\r
+       <td>\r
+       <%text(_ADD_BODY)%> <%helplink(additem)%></td>\r
+       <td>\r
+       <%jsbuttonbar(media)%>\r
+       <textarea \r
+       <%jsinput(body)%> cols="58" rows="12"><%contents(body)%></textarea></td>\r
+       </tr>\r
+       <tr>\r
+       <td><%text(_ADD_CATEGORY)%></td>\r
+       <td><%categories%></td>\r
+       </tr>\r
+       <tr>\r
+       <%if(autosave)%>\r
+       <td><%text(_AUTOSAVEDRAFT_NOW)%></td>\r
+       <td><input tabindex="80" type="button" name="autosavenow" value="<%text(_AUTOSAVEDRAFT_NOW)%>" onclick="autoSaveDraft();" /></td>\r
+       <%endif%>\r
+       </tr>\r
+       </table>\r
+       </div>\r
+       \r
+       <div id="more" class="contentblock">\r
+       <table frame="box" rules="all" summary="<%text(_BMLET_MORE)%>">\r
+       <tr>\r
+       <td><%text(_ADD_MORE)%> <%helplink(extended)%></td>\r
+       <td>\r
+       <%jsbuttonbar(media)%>\r
+       <textarea <%jsinput(more)%> cols="58" rows="17"><%contents(more)%></textarea>\r
+       </td>\r
+       </tr>\r
+       </table>\r
+       </div>\r
+       \r
+       <div id="options" class="contentblock">\r
+       <table frame="box" rules="all" summary="<%text(_BMLET_OPTIONS)%>">\r
+       <%if(blogsetting, bcomments)%>\r
+       <tr>\r
+       <td><%text(_ADD_DISABLE_COMMENTS)%></td>\r
+       <td>\r
+       <input id="closed_yes" type='radio' name='closed' value='1' /><label for="closed_yes"><%text(_YES)%></label>\r
+       <input id="closed_no" type='radio' name='closed' value='0' checked='checked' /><label for="closed_no"><%text(_NO)%></label>\r
+       </td>\r
+       </tr>\r
+       <%endif%>\r
+       <tr>\r
+       <td><%text(_ADD_DRAFTNFUTURE)%></td>\r
+       <td>\r
+       <input name="actiontype" value="addnow" type="radio" checked='checked' id="act_now" />\r
+       <label for="act_now"><%text(_ADD_ADDNOW)%></label><br />\r
+       <input name="actiontype" value="addfuture" type="radio" id="act_future" />\r
+       <label for="act_future"><%text(_ADD_ADDLATER)%></label> <%helplink(future)%>\r
+       <div class="indent">\r
+       <%text(_ADD_PLACE_ON)%>\r
+       <input id="inputday" name="day" size="2" value="<%currenttime(mday)%>" onchange="document.forms[0].act_future.checked=true;" />/\r
+       <input id="inputmonth" name="month" size="2" value="<%currenttime(mon)%>" onchange="document.forms[0].act_future.checked=true;" />/\r
+       <input id="inputyear" name="year" size="4" value="<%currenttime(year)%>" onchange="document.forms[0].act_future.checked=true;" />\r
+       at\r
+       <input id="inputhour" name="hour" size="2" value="<%currenttime(hours)%>" onchange="document.forms[0].act_future.checked=true;" />:\r
+       <input id="inputminutes" name="minutes" size="2" value="<%currenttime(minutes)%>" onchange="document.forms[0].act_future.checked=true;" />\r
+       (dd/mm/yyyy hh:mm)\r
+       <%if(blogsetting, ballowpast,0)%>\r
+       <br />\r
+       <%text(_ADD_NOPASTDATES)%>\r
+       <%endif%>\r
+       </div>\r
+       <input name="actiontype" value="adddraft" type="radio" id="act_draft" />\r
+       <label for="act_draft"><%text(_ADD_ADDDRAFT)%></label> <%helplink(draft)%>\r
+       </td>\r
+       </tr>\r
+       <tr>\r
+       <td><%text(_ADD_PLUGIN_EXTRAS)%></td>\r
+       <td><%pluginextras%></td>\r
+       </tr>\r
+       <%itemoptions%>\r
+       </table>\r
+       \r
+       </div>\r
+       \r
+       <div id="preview" class="contentblock">\r
+       <h2><%text(_ADD_PREVIEW)%></h2>\r
+       <b><span id="prevtitle">&#160;</span></b><br />\r
+       <span id="prevbody">&#160;</span><br />\r
+       <span id="prevmore">&#160;</span>\r
+       </div>\r
+       \r
+       </div>\r
+       \r
+       </form>\r
+]]>\r
+</part>\r
+\r
+<part name="itemedit">\r
+<![CDATA[\r
+       <h1><%text(_EDIT_ITEM)%> (<%contents(itemid)%>)</h1>\r
+       <form id="editform" method="post" action="bookmarklet.php" ><div>\r
+       <input name="action" type="hidden" value="edititem" />\r
+       <input name="itemid" type="hidden" value="<%contents(itemid)%>" />\r
+       <input type="hidden" name="draftid" value="0" />\r
+       <%ticket%>\r
+       \r
+       <div id="submit" class="buttonbar">\r
+       <div id="switchbuttons">\r
+       <input type="button" onclick="flipBlock('body');" value="<%text(_BMLET_BODY)%> &gt;&gt;" />\r
+       <input type="button" onclick="flipBlock('more');" value="<%text(_BMLET_MORE)%> &gt;&gt;" />\r
+       <input type="button" onclick="flipBlock('options');" value="<%text(_BMLET_OPTIONS)%> &gt;&gt;" />\r
+       <input type="button" onclick="updAllPreviews(); flipBlock('preview');" value="<%text(_BMLET_PREVIEW)%> &gt;&gt;" />\r
+       </div>\r
+       <input type="submit" value="<%text(_BMLET_EDIT)%>" onclick="return checkSubmit();" />\r
+       <input type="button" value="<%text(_BMLET_CANCEL)%>" onclick="window.close();" />\r
+       </div>\r
+       \r
+       <div id="body" class="contentblock">\r
+       <table frame="box" rules="all" summary="<%text(_BMLET_BODY)%>">\r
+       <%if(autosave)%>\r
+       <tr>\r
+       <td><%text(_AUTOSAVEDRAFT)%></td>\r
+       <td><span id="info"><%text(_AUTOSAVEDRAFT_NOTYETSAVED)%></span></td>\r
+       </tr>\r
+       <%endif%>\r
+       <tr>\r
+       <td><%text(_ADD_TITLE)%></td>\r
+       <td><input <%jsinput(title)%> type="text" size="60" maxlength="160" value="<%contents(title)%>" /></td>\r
+       </tr>\r
+       <tr>\r
+       <td><%text(_ADD_BODY)%></td>\r
+       <td>\r
+       <%jsbuttonbar(media)%>\r
+       <textarea <%jsinput(body)%> cols="58" rows="12"><%contents(body)%></textarea>\r
+       </td>\r
+       </tr>\r
+       <tr>\r
+       <td><%text(_ADD_CATEGORY)%></td>\r
+       <td><%categories%></td>\r
+       </tr>\r
+       <%if(autosave)%>\r
+       <tr>\r
+       <td><%text(_AUTOSAVEDRAFT_NOW)%></td>\r
+       <td><input tabindex="80" type="button" name="autosavenow" value="<%text(_AUTOSAVEDRAFT_NOW)%>" onclick="autoSaveDraft();" /></td>\r
+       </tr>\r
+       <%endif%>\r
+       </table>\r
+       </div>\r
+       \r
+       <div id="more" class="contentblock">\r
+       <table frame="box" rules="all" summary="<%text(_BMLET_MORE)%>">\r
+       <tr>\r
+       <td><%text(_ADD_MORE)%> <%helplink(extended)%></td>\r
+       <td>\r
+       <%jsbuttonbar(media)%>\r
+       <textarea <%jsinput(more)%> cols="58" rows="17"><%contents(more)%></textarea>\r
+       </td>\r
+       </tr>\r
+       </table>\r
+       </div>\r
+       \r
+       <div id="options" class="contentblock">\r
+       <table frame="box" rules="all" summary="<%text(_BMLET_OPTIONS)%>">\r
+       <%if(blogsetting, bcomments)%>\r
+       <tr>\r
+       <td><%text(_ADD_DISABLE_COMMENTS)%></td>\r
+       <td>\r
+       <input type="radio" name="closed" value="1" id="closed_yes" <%checkedonval(1,closed)%> /><label for="closed_yes"><%text(_YES)%></label>\r
+       <input type="radio" name="closed" value="0" id="closed_no" <%checkedonval(0,closed)%> /><label for="closed_no"><%text(_NO)%></label>\r
+       </td>\r
+       </tr>\r
+       <%endif%>\r
+       <tr>\r
+       <td><%text(_SUBMIT)%></td>\r
+       <td>\r
+       <input name="actiontype" value="edit" type="radio" checked="checked" id="act_edit" /><label for="act_edit"><%text(_BMLET_EDIT)%></label>\r
+       <input name="actiontype" value="delete" type="radio" id="act_delete" /><label for="act_delete"><%text(_BMLET_DELETE)%></label>\r
+       <%if(blogsetting, ballowpast)%>\r
+       <input name="actiontype" value="changedate" type="radio" id="act_changedate" tabindex="70" />\r
+       <label for="act_changedate"><%text(_BMLET_CHANGEDATE)%></label> <%helplink(changedate)%>\r
+       <div class="indent">\r
+       <input id="inputday" name="day" tabindex="71" size="2" value="<%itemtime(mday)%>" onchange="document.forms[0].act_changedate.checked=true;" />/\r
+       <input id="inputmonth" name="month" tabindex="72" size="2" value="<%itemtime(mon)%>" onchange="document.forms[0].act_changedate.checked=true;" />/\r
+       <input id="inputyear" name="year" tabindex="73" size="4" value="<%itemtime(year)%>" onchange="document.forms[0].act_changedate.checked=true;" />\r
+       at\r
+       <input id="inputhour" name="hour" tabindex="74" size="2" value="<%itemtime(hours)%>" onchange="document.forms[0].act_changedate.checked=true;" />:\r
+       <input id="inputminutes" name="minutes" tabindex="75" size="2" value="<%itemtime(minutes)%>" onchange="document.forms[0].act_changedate.checked=true;" />\r
+       (dd/mm/yyyy hh:mm)\r
+       </div>\r
+       <input name="actiontype" value="backtodrafts" type="radio" id="act_backtodrafts" tabindex="71" /><label for="act_backtodrafts">\r
+       <%text(_BMLET_BACKTODRAFTS)%></label> <%helplink(draft)%>\r
+       <%endif%>\r
+       </td>\r
+       </tr>\r
+       <tr>\r
+       <td><%text(_ADD_PLUGIN_EXTRAS)%></td>\r
+       <td><%pluginextras%></td>\r
+       </tr>\r
+       <%itemoptions%>\r
+       </table>\r
+       </div>\r
+       \r
+       <div id="preview" class="contentblock">\r
+       <h2><%text(_ADD_PREVIEW)%></h2>\r
+       <b><span id="prevtitle">&#160;</span></b><br />\r
+       <span id="prevbody">&#160;</span><br />\r
+       <span id="prevmore">&#160;</span>\r
+       </div>\r
+       </div>\r
+       </form>\r
+]]>\r
+</part>\r
+\r
+<part name="pagefoot">\r
+<![CDATA[\r
+<%if(autosave)%>\r
+       <script type="text/javascript">\r
+               var xmlhttprequest = new Array();\r
+               xmlhttprequest[0] = createHTTPHandler(); // AutoDraft handler\r
+               xmlhttprequest[1] = createHTTPHandler(); // UpdateTicket handler\r
+               var seconds = now(); // Last AutoDraft time\r
+               var checks = 0; // Number of checks since last AutoDraft\r
+               var addform = document.getElementById('addform'); // The form id\r
+               var goal = document.getElementById('info'); // The html div id where 'Last saved: date time' must come\r
+               var goalurl = '../action.php'; // The PHP file where the content must be posted to\r
+               var lastsavedtext = '<%text(_AUTOSAVEDRAFT_LASTSAVED)%>'; // The language variable for 'Last saved'\r
+               var formtype = 'add'; // Add or edit form\r
+       </script>\r
+<%endif%>\r
+</body>\r
+</html>\r
+]]></part>\r
+\r
+<part name="pagehead">\r
+<![CDATA[\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
+       <head>\r
+       <title><%title%></title>\r
+       <link rel="stylesheet" type="text/css" href="<%skinfile(styles/bookmarklet.css)%>" /> \r
+       <link rel="stylesheet" type="text/css" href="<%skinfile(styles/addedit.css)%>" />\r
+       <script type="text/javascript" src="<%skinfile(javascript/bookmarklet.js)%>"></script>\r
+       <script type="text/javascript" src="<%skinfile(javascript/edit.js)%>"></script>\r
+       <script type="text/javascript" src="<%skinfile(javascript/numbercheck.js)%>"></script>\r
+       \r
+       <%if(autosave)%>\r
+       <script type="text/javascript" src="<%skinfile(javascript/xmlhttprequest.js)%>"></script>\r
+       <%endif%>\r
+       \r
+       <%init%>\r
+       \r
+       <%extrahead%>\r
+       \r
+       <script type="text/javascript">\r
+       var nucleus_initbm_oldonload = window.onload;\r
+       function nucleus_initbm()\r
+       {\r
+               initStyles();\r
+               updAllPreviews();\r
+               \r
+               if ( nucleus_initbm_oldonload )\r
+               {\r
+                       nucleus_initbm_oldonload();\r
+               }\r
+       }\r
+       window.onload = nucleus_initbm;\r
+       </script>\r
+       </head>\r
+       <body>\r
+]]></part>\r
+\r
+<part name="showlogin">\r
+<![CDATA[\r
+       <h2><%text(_LOGIN)%></h2>\r
+       <%headmessage%>\r
+       <form action="bookmarklet.php" method="post">\r
+       <p>\r
+       <%text(_LOGIN_NAME)%> <br /><input name="login" tabindex="10" /><br />\r
+       <%text(_LOGIN_PASSWORD)%> <br /><input name="password"  tabindex="20" type="password" /><br />\r
+       <input type="checkbox" value="1" name="shared" tabindex="40" id="shared" />\r
+       <label for="shared"><%text(_LOGIN_SHARED)%></label><br />\r
+       <a href="forgotpassword.html"><%text(_LOGIN_FORGOT)%></a>\r
+       \r
+       <%passrequestvars%>\r
+       \r
+       <input type="hidden" name="blogid" value="<%blogid%>" />\r
+       <input type="hidden" name="itemid" value="<%itemid%>" />\r
+       <input type="hidden" name="logtext" value="<%log_text%>" />\r
+       <input type="hidden" name="loglink" value="<%log_link%>" />\r
+       <input type="hidden" name="loglinktitle" value="<%log_linktitle%>" />\r
+       \r
+       <input type="hidden" name="nextaction" value="<%action%>" />\r
+       <button type="submit" name="action" value="login"><%text(_LOGIN)%></button>\r
+       </p>\r
+       </form>\r
+]]></part>\r
+\r
+<part name="adminerrorpage"><![CDATA[\r
+       <p><%headmessage%></p>\r
+       <p><a href="bookmarklet.php" onclick="window.close();window.opener.location.reload();"></a></p>\r
+]]></part>\r
+\r
+</skin>\r
+</nucleusskin>\r