".(isset($MarkletDeleteText)?$MarkletDeleteText:'Delete')."");
$HandleActions['makemark'] = 'HandleAddMark';
$HandleActions['makemarklet'] = 'AddMarklet';
$HandleActions['marklet-delete'] = 'HandleDeleteMarklet';
function HandleDeleteMarklet() {
global $pagename;
if (isset($_REQUEST['marklet'])) {
$marklet = $_REQUEST['marklet'];
$marklet = stripmagic($marklet);
$page = RetrieveAuthPage($pagename, 'edit', true);
if (!$page) Abort('?cannot read $pagename');
$new = $page;
$new['text'] = preg_replace("/^(.*?)\(:marklet-delete-$marklet:\).*?\n/m", '', $page['text'], 1);
PostPage($pagename, $page, $new);
MarkletRedirect($pagename, "Deleted");
}
else {
Redirect($pagename);
}
}
function AddMarklet($pagename, $argv) {
global $Now, $PageRedirectFmt, $HandleActions, $HTMLHeaderFmt;
global $MarkletRedirectDelay, $MarkletDateFmt, $MarkletAddText;
global $MarkletRedirectMessage;
global $HTMLStylesFmt;
$title = $_REQUEST['title'];
$link = $_REQUEST['url'];
$summary = $_REQUEST['summary'];
$category = ($_REQUEST['new_category'])
? $_REQUEST['new_category'] : $_REQUEST['category'];
$newpage = ($category) ? join('-', array($pagename, $category)) : $pagename;
$time = strftime($MarkletDateFmt, $Now);
$key = md5($link);
SDV($MarkletAddText, "* [[$link|$title]] $summary $time (:marklet-delete-$key:)\n");
$page = RetrieveAuthPage($newpage, 'edit');
if (!$page) Abort("?cannot edit $pagename");
$text = $page['text'];
if (preg_match("/$key/", $text)) {
$MarkletAddText = preg_replace("/\*/", '* %red% (duplicate)', $MarkletAddText);
}
if (@$_REQUEST['url']) {
$text = (IsEnabled($MarkletAddTextToEnd,0))
? "$text$MarkletAddText"
: "$MarkletAddText$text";
}
$page['text'] = $text;
$page['text'] .= $vote;
WritePage($newpage, $page);
$newpage = preg_replace('/\./', '/', $newpage);
if ($_REQUEST['return']) $HTMLHeaderFmt['marklet']
= "";
MarkletRedirect($newpage, "New bookmark: $link.");
}
function MarkletDuplicateCheck($test, $key) {
MarkletDuplicateCheck($test, $key);
}
# function to create the bookmarklet
function MarkletCreateLinks($pagename, $linkpage) {
global $MarkletEnableReturn;
$return = ($MarkletEnableReturn) ? '&return=1' : '';
if ($linkpage) $pagename = MakePageName($pagename, $linkpage);
$first = FmtPageName("+=$pagename", $pagename);
$first .= FmtPageName("
+=$pagename (hurrymode)", $pagename);
return $first;
}
# function to handle ?action=addlink (prepends the url to the page and
# then passes control to the edit function).
function HandleAddMark($pagename) {
global $HandleActions, $EnableAddLinkToEnd, $AddLinkText;
Lock(2);
$link = $_REQUEST['url'];
$title = $_REQUEST['title'];
if ($_REQUEST['hurry']) { AddMarklet($pagename, ''); }
$form = MakeMarkForm($pagename, $link, $title);
print $form;
}
function MakeMarkForm($pagename, $link, $title) {
global $ScriptUrl;
$pages = ListPages("/^$pagename-/");
$cats = array();
foreach ($pages as $p) {
list(, $c) = split('-', $p);
$cats[] = "";
}
sort($cats);
array_unshift($cats, "");
$categories = join("\n", $cats);
$form =<<
MAKELINKFORM;
return $form;
}
function MarkletRedirect($page, $msg) {
global $PageRedirectFmt, $HTMLStylesFmt;
$HTMLStylesFmt[marklets] = "
/* styling of marklet messages */
#markletMessage {
padding: 0.5em;
margin-bottom: 1em;
background: #FFD;
border: 3px double red;
}
";
$_GET['from'] = 1;
$PageRedirectFmt = "$msg
";
HandleBrowse($page);
exit();
}