<?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>&nbsp;</td>
            	<td><input class='button' type='submit' value='OK' />
            	    &nbsp;&nbsp;
            	    <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()");

?>