<?php if (!defined('PmWiki')) exit(); # (pmwiki 0.5x Zet - http://www.cube3d.de) # changed for pmwiki 2.x p@ddy.ch # remove slash in SDV(... $ScriptUrl..) SDV(.. $PageUrl ) # (:$Guestbook:) # * fixed problems with $EnablePathInfo (different input forms) # * localization now covers also the output # * entries with empty name- or messagefield are ignored # * now adds 'http://" to homepage entries with no 'http://' # * code commented, beautified and made more robust # * Andreas (mail@andreas-muehlhausen.de) ## handle language issues ## ## Define your language in config.php by setting $language to the apropiate value ## by placing the statement ## $language = 'de'; ## before including this file. ## if ($GuestbookLoaded) { return; } $GuestbookLoaded=1; /* Set default locale to 'en' if not defined in config.php */ SDV($language,'en'); if (file_exists("$FarmD/cookbook/guestbook-i18n-$language.php")) include_once("$FarmD/cookbook/guestbook-i18n-$language.php"); elseif (file_exists("$FarmD/cookbook/$scriptlocation/guestbook-i18n-$language.php")) include_once("$FarmD/cookbook/$scriptlocation/guestbook-i18n-$language.php"); elseif (file_exists("$FarmD/local/guestbook-i18n-$language.php")) include_once("$FarmD/local/guestbook-i18n-$language.php"); elseif (file_exists("$FarmD/local/$scriptlocation/guestbook-i18n-$language.php")) include_once("$FarmD/local/$scriptlocation/guestbook-i18n-$language.php"); /* Set defaults to all language variables, which are not already defined yet*/ SDV ($NameText, "Name"); SDV ($HomepageText, "Homepage"); SDV ($MessageText, "Message"); SDV ($OnlyOnceText, "Please only press the OK button ONCE."); SDV ($PostedText, "Posted on"); SDV ($ByText, "by"); SDV($HandleActions['guestbook'],'HandleGuestbook'); $page = $_REQUEST['n']; if (!$pagename){ $pagename = $_REQUEST['pagename']; } if (!$pagename && preg_match('!^'.preg_quote($_SERVER['SCRIPT_NAME'],'!').'/?([^?]*)!',$_SERVER['REQUEST_URI'],$match) ){ $pagename = urldecode($match[1]); } if (preg_match('/[\\x80-\\xbf]/',$pagename)){ $pagename=utf8_decode($pagename); } $pagename = preg_replace('![^[:alnum:]\\x80-\\xff]+$!','',$pagename); $name = FmtPageName('$FullName',$pagename); /* build form */ $html_formfields = " <input type='hidden' name='action' value='guestbook' /> <input type='hidden' name='pagename' value='$pagename'> <input type='hidden' name='postedtext' value='$PostedText'> <input type='hidden' name='bytext' value='$ByText'> <table> <tr><td align=right>$NameText:</td> <td align=left> <input type='text' name='name' value='' size='40' /> </td> </tr> <tr><td align=right>$HomepageText:</td> <td align=left> <input type='text' name='homepage' value='' size='40' /> </td> </tr> <tr><td align=right>$MessageText:</td> <td align=left> <textarea name='message' cols=40 rows=5></textarea> </td></tr> <tr><td> </td> <td><input class='button' type='submit' value='OK' /> <input class='button' type='reset' /> <br /><br /> $OnlyOnceText </td></tr> </table></form><br /><hr />"; if (isset($EnablePathInfo) && !$EnablePathInfo) { SDV($GuestbookTagFmt, "<form action='".$_SERVER['REQUEST_URI']."' method='get'>". $html_formfields ); } else { SDV($GuestbookTagFmt, "<form action='".$_SERVER['SCRIPT_NAME']."?".$pagename."' method='get'>". "<input type='hidden' name='action' value='guestbook' />". $html_formfields ); } /* insert a new message */ function HandleGuestbook($pagename){ /* ($pagename) */ global $TimeFmt,$Now,$_GET; $name = StripCSlashes($_GET["name"]); $homepage = (($_GET["homepage"])?StripCSlashes($_GET["homepage"]):""); $homepage = strtolower ($homepage); if (0 < strlen ($homepage) && FALSE == strpos($homepage,'http://')) { $homepage = 'http://'.$homepage; } $message = StripCSlashes($_GET['message']); $PostedText = StripCSlashes($_GET['postedtext']); $ByText = StripCSlashes($_GET['bytext']); $rcpage = ReadPage($pagename,""); /* insert only if the user isn't annonymous and has something to say */ if (0 < strlen ($name) && 0 < strlen ($message)) { $pos=strpos($rcpage['text'],"(:\$Guestbook:)"); $len=strlen("(:\$Guestbook:)"); $before=substr($rcpage['text'],0,$pos+$len); $after=substr($rcpage['text'],$pos+$len); $rcpage['text'] = $before. "\n\n%green%$PostedText ''".strftime($TimeFmt,$Now)."''". " $ByText ''$name''%%\\\\\n ". "$homepage\n\n$message\n\n----". $after; } WritePage($pagename,$rcpage); Redirect($pagename); } Markup('{$Guestbook}', '>{$var}','/\\(:\\$Guestbook:\\)/',Keep($GuestbookTagFmt)); #Markup('Guestbook', 'directives', '/\\(:$Guestbook:\\)/e',"Guestbook()"); ?>