Index: wiki.pl
===================================================================
RCS file: /cvsroot/inkscape/inkscape_project/wiki/wiki.pl,v
retrieving revision 1.8
retrieving revision 1.13
diff -u -p -u -p -r1.8 -r1.13
--- wiki.pl	17 Aug 2004 16:55:51 -0000	1.8
+++ wiki.pl	1 Feb 2005 19:05:39 -0000	1.13
@@ -53,7 +53,7 @@ use vars qw(@RcDays @HtmlPairs @HtmlSing
   @IsbnNames @IsbnPre @IsbnPost $EmailFile $FavIcon $RssDays $UserHeader
   $UserBody $StartUID $ParseParas $AuthorFooter $UseUpload $AllUpload
   $UploadDir $UploadUrl $LimitFileUrl $MaintTrimRc $SearchButton 
-  $EditNameLink $UseMetaWiki @ImageSites $BracketImg );
+  $EditNameLink $UseMetaWiki @ImageSites $BracketImg $BlockWord );
 # Note: $NotifyDefault is kept because it was a config variable in 0.90
 # Other global variables:
 use vars qw(%Page %Section %Text %InterSite %SaveUrl %SaveNumUrl
@@ -118,6 +118,7 @@ $StartUID    = 1001;            # Starti
 $UploadDir   = '';              # Full path (like /foo/www/uploads) for files
 $UploadUrl   = '';              # Full URL (like http://foo.com/uploads)
 @ImageSites  = qw();            # Url prefixes of good image sites: ()=all
+$BlockWord   = '';              # If defined, must be typed for edits to take
 
 # Major options:
 $UseSubpage  = 1;           # 1 = use subpages,       0 = do not use subpages
@@ -3276,6 +3277,13 @@ sub DoEdit {
   if ($EditNote ne '') {
     print T($EditNote) . '<br>';  # Allow translation
   }
+  if ($BlockWord ne '') {
+    print Ts('Type %s here:',join("", map { sprintf('&#%d;<!-- %d%d -->',ord($_),ord($_)+1,ord($_)+2) } split(//,$BlockWord))),
+           $q->textfield(-name=>'blockword',
+                         -default=>"", -override=>1,
+                         -size=>10, -maxlength=>200),
+           "<br>\n";
+  }
   print $q->submit(-name=>'Save', -value=>T('Save')), "\n";
   $userName = &GetParam("username", "");
   if ($userName ne "") {
@@ -3896,12 +3904,17 @@ sub DoPost {
   my $string = &GetParam("text", undef);
   my $id = &GetParam("title", "");
   my $summary = &GetParam("summary", "");
+  my $blockword = &GetParam("blockword", "");
   my $oldtime = &GetParam("oldtime", "");
   my $oldconflict = &GetParam("oldconflict", "");
   my $isEdit = 0;
   my $editTime = $Now;
   my $authorAddr = $ENV{REMOTE_ADDR};
 
+  if ($BlockWord ne '' && $blockword ne $BlockWord) {
+    &ReportError(T('Editing not allowed without detailed instruction following.'));
+    return;
+  }
   if (!&UserCanEdit($id, 1)) {
     # This is an internal interface--we don't need to explain
     &ReportError(Ts('Editing not allowed for %s.', $id));
