* * Approve links one at a time * * Developed and tested using PmWiki 2.2.x * * To install, add the following to your configuration file: include_once("$FarmD/cookbook/bloge-urlapprove.php"); * This is a part of the Bloge bundle of recipes, but may be used by itself. * For more information, please see the online documentation at * http://www.pmwiki.org/wiki/Cookbook/Bloge-UrlApprove and at * http://www.pmwiki.org/wiki/Cookbook/Bloge * * 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. */ $RecipeInfo['Bloge-UrlApprove']['Version'] = '2009-08-10'; SDV($UnapprovedLinkFmt, empty($AuthId) ? '$LinkText' : "\$LinkText ($[test]) ($[url ok]) ($[site ok])"); include_once("$FarmD/scripts/urlapprove.php"); $FmtPV['$LinksToApprove'] = '$GLOBALS["UnapprovedLinkCount"]'; SDV($HandleActions['approvelink'], 'HandleApproveOneLink'); SDV($HandleAuth['approvelink'], 'edit'); SDV($HandleActions['approvelinksite'], $HandleActions['approvelink']); SDV($HandleAuth['approvelinksite'], $HandleAuth['approvelink']); function HandleApproveOneLink($pagename, $auth='edit') { global $WhiteUrlPatterns, $ApprovedUrlPagesFmt, $action; if (empty($_GET['link'])) Abort('HandleApproveOneLink: no link defined'); $link = $_GET['link']; if ($action=='approvelinksite') $link = preg_replace("!^([^:]+://[^/]+).*$!", '$1', $link); ReadApprovedUrls($pagename); foreach( (array)$WhiteUrlPatterns as $pat ) if (preg_match("!^$pat(/|$)!i", $link)) Abort('HandleApproveOneLink: link already approved?'); Lock(2); $aname = FmtPageName($ApprovedUrlPagesFmt[0], $pagename); $apage = RetrieveAuthPage($aname, $auth); if (!$apage) Abort("?cannot edit $aname"); $new = $apage; if (substr($new['text'],-1,1) != "\n") $new['text'] .= "\n"; $new['text'] .= "$link\n"; $_POST['post'] = 'y'; PostPage($aname,$apage,$new); Redirect($pagename); }