$text"; $html = "(:if auth edit:)[=$link=](:if:)"; return $html; } function MarkletHandleDelete() { global $pagename; if (isset($_REQUEST['mid'])) { $mid = $_REQUEST['mid']; $mid = stripmagic($mid); $page = RetrieveAuthPage($pagename, 'edit', true); if (!$page) Abort('?cannot read $pagename'); $new = $page; $new['text'] = preg_replace("/^(.*?)\(:marklet-delete-$mid:\).*?\n/m", '', $page['text'], 1); PostPage($pagename, $page, $new); MarkletRedirect($pagename, "Deleted"); } else { Redirect($pagename); } } function MarkletSplitPagename($page) { global $MarkletCategorySplitPoint; return split($MarkletCategorySplitPoint, $page); } function MarkletAdd($pagename, $argv) { global $Now, $PageRedirectFmt, $HandleActions; global $HTMLStylesFmt, $HTMLHeaderFmt; global $MarkletRedirectDelay, $MarkletDateFmt, $MarkletAddText; global $MarkletRedirectMessage, $MarkletAddTextToEnd; global $MarkletCategorySplitPoint, $MarkletCategories; $title = stripslashes($_REQUEST['title']); $url = $_REQUEST['url']; $summary = $_REQUEST['summary']; $category = ($_REQUEST['new_category']) ? $_REQUEST['new_category'] : $_REQUEST['category']; list($pre, $post) = MarkletSplitPagename($pagename); $time = strftime($MarkletDateFmt, $Now); $key = md5($url); $link = ($title) ? "[[$url|$title]]" : "[[$url]]"; SDV($MarkletAddText, "* $link $summary $time (:marklet-delete-$key:)\n"); $MarkletAddText = stripslashes($MarkletAddText); if (!$category) $category = $post; foreach((array) $category as $cat) { $newpage = ($cat) ? join($MarkletCategorySplitPoint, array($pre, $cat)) : $pagename; $page = RetrieveAuthPage($newpage, 'edit'); if (!$page) Abort("?cannot edit $pagename"); $text = $page['text']; if (preg_match("/$key/", $text)) { $MarkletAddText = preg_replace("/(\* )/", "$1(:marklet-dup:)", $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: $url."); } 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 MarkletHandleAdd($pagename) { global $HandleActions, $EnableAddLinkToEnd, $AddLinkText; Lock(2); $link = $_REQUEST['url']; $title = stripslashes($_REQUEST['title']); if ($_REQUEST['hurry']) { MarkletAdd($pagename, ''); } $form = MakeMarkForm($pagename, $link, $title); print $form; } function MakeMarkForm($pagename, $link, $title) { global $ScriptUrl; global $MarkletCategorySplitPoint, $MarkletCategories; global $MarkletCategoriesFunction, $MarkletMultiple; $cats = array(); $categories = $MarkletCategoriesFunction($pagename); foreach($categories as $c) $cats[] = ""; $return = ($_REQUEST['return']) ? "" : ''; array_unshift($cats, ""); $categories = join("\n", $cats); if ($MarkletMultiple) { $multiple = "multiple size='$MarkletMultiple' name='category[]'"; } else { $multiple = "name='category'"; } $form =<<
Title:
Link:
Create in Category:
Add Category:
Summary: $return
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; text-align: center; } "; $_GET['from'] = 1; $PageRedirectFmt = "
$msg
"; HandleBrowse($page); exit(); } function MarkletDefaultCategories($pn) { global $MarkletCategories; $cats = array(); if (sizeof((array)$MarkletCategories) && $MarkletCategories[0] !='') { foreach((array)$MarkletCategories as $c) $cats[] = $c; } else { $pages = ListPages("/^$pn*/"); foreach ($pages as $p) { list(, $c) = MarkletSplitPagename($p); if ($c != '') $cats[] = $c; } } sort($cats); return $cats; }