14 Commits

Author SHA1 Message Date
Markus Lude
073748c0ca some preparations for 1.0.3: bump version 2016-10-25 19:26:06 +02:00
Markus Lude
920c918c15 typo 2016-10-25 19:23:59 +02:00
Markus Lude
ff1a3762b1 fix WikiBugs/UrlEncoding
fix contributed by StefanTrcek
2016-10-25 19:23:16 +02:00
Markus Lude
2ae7b38813 small fix 2016-10-25 19:21:27 +02:00
Markus Lude
a1cb3d9d76 fixed bug introduced with WikiPatches/XssFix
was already mentioned by Cliff on WikiPatches/XssFixTalk, but missed it somehow
2016-10-25 19:20:06 +02:00
Markus Lude
13c4c7528c added more translation strings 2016-10-25 19:18:21 +02:00
Markus Lude
1f1718b165 fix WikiBugs/MiscTranslation
reported and fix contributed by JuanMtnezPineda (JuanmaMP)
2016-10-25 19:15:14 +02:00
Markus Lude
a70fe404f4 minor tweak 2016-10-25 19:12:59 +02:00
Markus Lude
36ec8e1315 fixed WikiBugs/EmptyTableElements
fix contributed by StefanTrcek
2016-10-25 19:12:10 +02:00
Markus Lude
bebaea5179 fixed WikiBugs/BacklinksMissesSomeFreeLinks
fix contributed by BrianHunter
2016-10-25 19:10:20 +02:00
Markus Lude
677f956db7 reformat different bug names 2016-10-25 19:02:20 +02:00
Markus Lude
e3aa55e96b fixed WikiBugs/AuthenicationFailedNoHeader 2016-10-25 19:01:15 +02:00
Markus Lude
295de1ea38 fixed WikiBugs/IntermapedGifNotInlinedForLink
reported by BrianHunter
2016-10-25 18:58:09 +02:00
Markus Lude
f01d6b2c1a reformat different bug names 2016-10-25 18:56:27 +02:00
6 changed files with 138 additions and 52 deletions

View File

@@ -7,9 +7,11 @@ Users which contributed patches added to versions after 1.0:
* DavidClaughton
* DavidWall
* GyPark
* JuanMtnezPineda
* MikeCastle
* RichardP
* Robin Rowe (rower@movieeditor.com)
* StefanTrcek
* TomScanlan
* Trent
* UngarPeter

View File

@@ -1,4 +1,20 @@
Changes for bugfix release 1.0.3 (September 12, 2007):
* fixed bug IntermapedGifNotInlinedForLink
* fixed bug AuthenicationFailedNoHeader
* fixed bug BacklinksMissesSomeFreeLinks
fix contributed by BrianHunter
* fix bug EmptyTableElements
fix contributed by StefanTrcek
* fix bug MiscTranslation
fix contributed by JuanMtnezPineda
* added more translation strings
* DoRC: when using rcidonly text was quoted too much
noticed by CliffordAdams (bug was introduced with XssFix in 1.0.1)
* fix bug UrlEncoding
fix contributed by StefanTrcek
Changes for bugfix release 1.0.2 (August 26, 2007):
* added CREDITS and Changelog (forgot them in 1.0.1)
@@ -15,10 +31,11 @@ Changes for bugfix release 1.0.2 (August 26, 2007):
* added patch RobotsNoFollow version D
contributed by Trent with suggestion by UngarPeter
based on work by TomScanlan
* fixed bug ActionLinksExistsZeroSubPage aka RequestedLinks
* fixed bug ActionLinksExistsZeroSubPage
aka bug RequestedLinks
based on fix by GyPark and MikeCastle
* fixed bug ImageExtensionsCaseSensitive aka
UppercaseImageUploadCausesProblemsWithDisplay
* fixed bug ImageExtensionsCaseSensitive
aka bug UppercaseImageUploadCausesProblemsWithDisplay
* added ico/tif/tiff to ImageExtensions
* fixed bug CamelCaseImageUploadCausesProblemsWithDisplay
with suggestion from DavidClaughton
@@ -29,10 +46,12 @@ Changes for bugfix release 1.0.1 (July 9, 2007):
fix contributed by Christoph Berg (cb@df7cb.de)
* fixed bug PossibleToCreatePagesThatCanNotBeEdited
fix contributed by RichardP
* fixed bug FileUploadManglesFile aka Win32BinaryUpload aka
UploadOnWindowsNeedsBinmode
* fixed bug FileUploadManglesFile
aka bug Win32BinaryUpload
aka bug UploadOnWindowsNeedsBinmode
fix contributed by Robin Rowe (rower@movieeditor.com) and DavidWall
* fixed bug CompareButtonFailsToDiff aka DoHistory's_Form
* fixed bug CompareButtonFailsToDiff
aka bug DoHistory's_Form
fix contributed by BrianHunter and ??
* fixed bug BadHtml
* fixed bug AmpersandBug

4
README
View File

@@ -1,5 +1,5 @@
README for UseModWiki 1.0.2
Last updated: August 26, 2007
README for UseModWiki 1.0.3
Last updated: September 12, 2007
Release notes:

2
config
View File

@@ -1,5 +1,5 @@
# == Configuration =======================================================
# Original version from UseModWiki 1.0.2
# Original version from UseModWiki 1.0.3
$CookieName = "Wiki"; # Name for this wiki (for multi-wiki sites)
$SiteName = "Wiki"; # Name of site (used for titles)

View File

@@ -445,10 +445,48 @@ Lock for %s created.
Lock for %s removed.
Editing Banned list
Updating Banned list
Empty banned list or error.
Resubmit with at least one space character to remove.
Removed banned list
Updated banned list
Editing Links
UpdateLinksList could not get main lock
Updating Links
Empty command list or error.
Finished command list.
Could not open %s log file:
Error was:
Delete-Page: page %1 is invalid, error is: %2
Rename-Text: old page %1 is invalid, error is: %2
Rename-Text: new page %1 is invalid, error is: %2
Rename: old page %1 is invalid, error is: %2
Rename: new page %1 is invalid, error is: %2
Rename: new page %s already exists--not renamed.
Rename: old page %s does not exist--nothing done.
Displaying Wiki Version
Administration
Unlock page
@@ -467,14 +505,12 @@ Unlock site
Lock site
Confirm Delete %s
Delete %s
Confirm deletion of %s by following this link:
Confirm Delete
Delete %s
%s can not be deleted.
%s can not be deleted because it is locked.

109
wiki.pl
View File

@@ -1,5 +1,5 @@
#!/usr/bin/perl
# UseModWiki version 1.0.2 (August 26, 2007)
# UseModWiki version 1.0.3 (September 12, 2007)
# Copyright (C) 2000-2003 Clifford A. Adams <caadams@usemod.com>
# Copyright (C) 2002-2003 Sunir Shah <sunir@sunir.org>
# Based on the GPLed AtisWiki 0.3 (C) 1998 Markus Denker
@@ -684,7 +684,7 @@ sub DoRc {
$idOnly = &GetParam("rcidonly", "");
if ($idOnly && $showHTML) {
print '<b>(' . Ts('for %s only', &ScriptLink($idOnly, $idOnly))
print '<b>(' . Ts('for %s only', &ScriptLink($idOnly, &QuoteHtml($idOnly)), 1)
. ')</b><br>';
}
if ($showHTML) {
@@ -921,12 +921,13 @@ RSS
sub GetRssRcLine{
my ($pagename, $timestamp, $host, $userName, $userID, $summary,
$isEdit, $pagecount, $revision, $diffPrefix, $historyPrefix) = @_;
my ($itemID, $description, $authorLink, $author, $status,
my ($pagenameEsc, $itemID, $description, $authorLink, $author, $status,
$importance, $date, $item, $headItem);
$pagenameEsc = CGI::escape($pagename);
# Add to list of items in the <channel/>
$itemID = $FullUrl . &ScriptLinkChar()
. &GetOldPageParameters('browse', $pagename, $revision);
. &GetOldPageParameters('browse', $pagenameEsc, $revision);
$itemID = &QuoteHtml($itemID);
$headItem = " <rdf:li rdf:resource=\"$itemID\"/>\n";
# Add to list of items proper.
@@ -952,7 +953,7 @@ sub GetRssRcLine{
$item = <<RSS ;
<item rdf:about="$itemID">
<title>$pagename</title>
<link>$QuotedFullUrl?$pagename</link>
<link>$QuotedFullUrl?$pagenameEsc</link>
<description>$description</description>
<dc:date>$date</dc:date>
<dc:contributor>
@@ -962,9 +963,9 @@ sub GetRssRcLine{
</dc:contributor>
<wiki:status>$status</wiki:status>
<wiki:importance>$importance</wiki:importance>
<wiki:diff>$diffPrefix$pagename</wiki:diff>
<wiki:diff>$diffPrefix$pagenameEsc</wiki:diff>
<wiki:version>$revision</wiki:version>
<wiki:history>$historyPrefix$pagename</wiki:history>
<wiki:history>$historyPrefix$pagenameEsc</wiki:history>
</item>
RSS
return ($headItem, $item);
@@ -1300,7 +1301,7 @@ sub GetHeader {
$result .= '<div class=wikiheader>';
if ($oldId ne '') {
$result .= $q->h3('(' . Ts('redirected from %s',
&GetEditLink($oldId, $oldId), 1) . ')');
&GetEditLink($oldId, &QuoteHtml($oldId)), 1) . ')');
}
if ((!$embed) && ($LogoUrl ne "")) {
$logoImage = "img src=\"$LogoUrl\" alt=\"$altText\" border=0";
@@ -1699,6 +1700,15 @@ sub CommonMarkup {
return $_;
}
sub EmptyCellsToNbsp {
my ($row) = @_;
$row =~ s/(?<=\|\|)\s+(?=\|\|)/&nbsp;/g;
$row =~ s/^\s+(?=\|\|)/&nbsp;/;
$row =~ s/(?<=\|\|)\s+$/&nbsp;/;
return $row;
}
sub WikiLinesToHtml {
my ($pageText) = @_;
my ($pageHtml, @htmlStack, $code, $codeAttributes, $depth, $oldCode);
@@ -1726,7 +1736,7 @@ sub WikiLinesToHtml {
} elsif ($TableSyntax &&
s/^((\|\|)+)(.*)\|\|\s*$/"<TR VALIGN='CENTER' "
. "ALIGN='CENTER'><TD colspan='"
. (length($1)\/2) . "'>$3<\/TD><\/TR>\n"/e) {
. (length($1)\/2) . "'>" . EmptyCellsToNbsp($3) . "<\/TD><\/TR>\n"/e) {
$code = 'TABLE';
$codeAttributes = "BORDER='1'";
$TableMode = 1;
@@ -1972,6 +1982,9 @@ sub StoreBracketUrl {
if ($text eq "") {
$text = &GetBracketUrlIndex($url);
} elsif ($text =~ /^$InterLinkPattern$/) {
my @interlink = split(/:/, $text, 2);
$text = &GetSiteUrl($interlink[0]) . $interlink[1];
}
if ($BracketImg && $useImage && &ImageAllowed($text)) {
$text = "<img src=\"$text\">";
@@ -3198,7 +3211,7 @@ sub DoEdit {
$id = &FreeToNormal($id); # Take care of users like Markus Lude :-)
}
if (!&UserCanEdit($id, 1)) {
print &GetHeader("", T('Editing Denied'), "");
print &GetHeader('', T('Editing Denied'), '');
if (&UserIsBanned()) {
print T('Editing not allowed: user, ip, or network is blocked.');
print "<p>";
@@ -3346,7 +3359,7 @@ sub DoEditPrefs {
$recentName = $RCName;
$recentName =~ s/_/ /g;
&DoNewLogin() if ($UserID < 400);
print &GetHeader('', T('Editing Preferences'), "");
print &GetHeader('', T('Editing Preferences'), '');
print '<div class=wikipref>';
print &GetFormStart();
print GetHiddenValue("edit_prefs", 1), "\n";
@@ -3455,7 +3468,7 @@ sub DoUpdatePrefs {
# All link bar settings should be updated before printing the header
&UpdatePrefCheckbox("toplinkbar");
&UpdatePrefCheckbox("linkrandom");
print &GetHeader('',T('Saving Preferences'), '');
print &GetHeader('', T('Saving Preferences'), '');
print '<br>';
if ($UserID < 1001) {
print '<b>',
@@ -4146,11 +4159,19 @@ sub SearchTitleAndBody {
&OpenDefaultText();
if (($Text{'text'} =~ /$string/i) || ($name =~ /$string/i)) {
push(@found, $name);
} elsif ($FreeLinks && ($name =~ m/_/)) {
$freeName = $name;
$freeName =~ s/_/ /g;
if ($freeName =~ /$string/i) {
push(@found, $name);
} elsif ($FreeLinks) {
if ($name =~ m/_/) {
$freeName = $name;
$freeName =~ s/_/ /g;
if ($freeName =~ /$string/i) {
push(@found, $name);
}
} elsif ($string =~ m/ /) {
$freeName = $string;
$freeName =~ s/ /_/g;
if ($Text{'text'} =~ /$freeName/i) {
push(@found, $name);
}
}
}
}
@@ -4437,7 +4458,7 @@ sub DoPageLock {
sub DoEditBanned {
my ($banList, $status);
print &GetHeader("", "Editing Banned list", "");
print &GetHeader('', T('Editing Banned list'), '');
return if (!&UserIsAdminOrError());
($status, $banList) = &ReadFile("$DataDir/banlist");
$banList = "" if (!$status);
@@ -4470,26 +4491,26 @@ sub DoEditBanned {
sub DoUpdateBanned {
my ($newList, $fname);
print &GetHeader("", "Updating Banned list", "");
print &GetHeader('', T('Updating Banned list'), '');
return if (!&UserIsAdminOrError());
$fname = "$DataDir/banlist";
$newList = &GetParam("banlist", "#Empty file");
if ($newList eq "") {
print "<p>Empty banned list or error.";
print "<p>Resubmit with at least one space character to remove.";
print "<p>", T('Empty banned list or error.');
print "<p>", T('Resubmit with at least one space character to remove.');
} elsif ($newList =~ /^\s*$/s) {
unlink($fname);
print "<p>Removed banned list";
print "<p>", T('Removed banned list');
} else {
&WriteStringToFile($fname, $newList);
print "<p>Updated banned list";
print "<p>", T('Updated banned list');
}
print &GetCommonFooter();
}
# ==== Editing/Deleting pages and links ====
sub DoEditLinks {
print &GetHeader("", "Editing Links", "");
print &GetHeader('', T('Editing Links'), '');
if ($AdminDelete) {
return if (!&UserIsAdminOrError());
} else {
@@ -4579,7 +4600,7 @@ sub BuildLinkIndexPage {
sub DoUpdateLinks {
my ($commandList, $doRC, $doText);
print &GetHeader("", T('Updating Links'), "");
print &GetHeader('', T('Updating Links'), '');
if ($AdminDelete) {
return if (!&UserIsAdminOrError());
} else {
@@ -4591,10 +4612,10 @@ sub DoUpdateLinks {
$doText = &GetParam("p_changetext", "0");
$doText = 1 if ($doText eq "on");
if ($commandList eq "") {
print "<p>Empty command list or error.";
print "<p>", T('Empty command list or error.');
} else {
&UpdateLinksList($commandList, $doRC, $doText);
print "<p>Finished command list.";
print "<p>", T('Finished command list.');
}
print &GetCommonFooter();
}
@@ -4614,8 +4635,10 @@ sub EditRecentChangesFile {
($status, $fileData) = &ReadFile($fname);
if (!$status) {
# Save error text if needed.
$errorText = "<p><strong>Could not open $RCName log file:"
. "</strong> $fname<p>Error was:\n<pre>$!</pre>\n";
$errorText = "<p><strong>"
. Ts('Could not open %s log file:', $RCName)
. "</strong> $fname"
. "<p>" . T('Error was:') . "\n<pre>$!</pre>\n";
print $errorText if ($printError);
return;
}
@@ -4649,7 +4672,8 @@ sub DeletePage {
$page =~ s/\]+//;
$status = &ValidId($page);
if ($status ne "") {
print "Delete-Page: page $page is invalid, error is: $status<br>\n";
print Tss('Delete-Page: page %1 is invalid, error is: %2', $page, $status)
. "<br>\n";
return;
}
$fname = &GetPageFile($page);
@@ -4785,12 +4809,14 @@ sub RenameTextLinks {
$new =~ s/ /_/g;
$status = &ValidId($old);
if ($status ne "") {
print "Rename-Text: old page $old is invalid, error is: $status<br>\n";
print Tss('Rename-Text: old page %1 is invalid, error is: %2', $old, $status)
. "<br>\n";
return;
}
$status = &ValidId($new);
if ($status ne "") {
print "Rename-Text: new page $new is invalid, error is: $status<br>\n";
print Tss('Rename-Text: new page %1 is invalid, error is: %2', $new, $status)
. "<br>\n";
return;
}
$old =~ s/_/ /g;
@@ -4839,22 +4865,26 @@ sub RenamePage {
$new = &FreeToNormal($new);
$status = &ValidId($old);
if ($status ne "") {
print "Rename: old page $old is invalid, error is: $status<br>\n";
print Tss('Rename: old page %1 is invalid, error is: %2', $old, $status)
. "<br>\n";
return;
}
$status = &ValidId($new);
if ($status ne "") {
print "Rename: new page $new is invalid, error is: $status<br>\n";
print Tss('Rename: new page %1 is invalid, error is: %2', $new, $status)
. "<br>\n";
return;
}
$newfname = &GetPageFile($new);
if (-f $newfname) {
print "Rename: new page $new already exists--not renamed.<br>\n";
print Ts('Rename: new page %s already exists--not renamed.', $new)
. "<br>\n";
return;
}
$oldfname = &GetPageFile($old);
if (!(-f $oldfname)) {
print "Rename: old page $old does not exist--nothing done.<br>\n";
print Ts('Rename: old page %s does not exist--nothing done.', $old)
. "<br>\n";
return;
}
&CreatePageDir($PageDir, $new); # It might not exist yet
@@ -4873,8 +4903,8 @@ sub RenamePage {
}
sub DoShowVersion {
print &GetHeader("", "Displaying Wiki Version", "");
print "<p>UseModWiki version 1.0.2</p>\n";
print &GetHeader('', T('Displaying Wiki Version'), '');
print "<p>UseModWiki version 1.0.3</p>\n";
print &GetCommonFooter();
}
@@ -4916,9 +4946,9 @@ sub DoDeletePage {
my ($id) = @_;
return if (!&ValidIdOrDie($id));
print &GetHeader('', Ts('Delete %s', $id), '');
return if (!&UserIsAdminOrError());
if ($ConfirmDel && !&GetParam('confirm', 0)) {
print &GetHeader('', Ts('Confirm Delete %s', $id), '');
print '<p>';
print Ts('Confirm deletion of %s by following this link:', $id);
print '<br>' . &GetDeleteLink($id, T('Confirm Delete'), 1);
@@ -4926,7 +4956,6 @@ sub DoDeletePage {
print &GetCommonFooter();
return;
}
print &GetHeader('', Ts('Delete %s', $id), '');
print '<p>';
if ($id eq $HomePage) {
print Ts('%s can not be deleted.', $HomePage);