Wiki2Go 1.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. data/bin/Wiki2GoServer.rb +11 -0
  2. data/bin/Wiki2Go_make_site.rb +10 -0
  3. data/bin/Wiki2Go_make_wiki.rb +10 -0
  4. data/bin/Wiki2Go_update_site.rb +10 -0
  5. data/lib/Web2Go/CGIRequest.rb +99 -0
  6. data/lib/Web2Go/CGIResponse.rb +64 -0
  7. data/lib/Web2Go/ERB_Interpreter.rb +47 -0
  8. data/lib/Web2Go/MockCookie.rb +17 -0
  9. data/lib/Web2Go/MockRequest.rb +131 -0
  10. data/lib/Web2Go/MockResponse.rb +35 -0
  11. data/lib/Web2Go/Web2Go.rb +0 -0
  12. data/lib/Web2Go/WebrickRequest.rb +124 -0
  13. data/lib/Web2Go/WebrickResponse.rb +50 -0
  14. data/lib/Wiki2Go.rb +2 -0
  15. data/lib/Wiki2Go/BlackList.rb +52 -0
  16. data/lib/Wiki2Go/DotGraphics.rb +69 -0
  17. data/lib/Wiki2Go/FileStorage.rb +267 -0
  18. data/lib/Wiki2Go/GreyList.rb +88 -0
  19. data/lib/Wiki2Go/Install/config/chonqed_blacklist.txt +4743 -0
  20. data/lib/Wiki2Go/Install/config/passwords +1 -0
  21. data/lib/Wiki2Go/Install/make_site.rb +515 -0
  22. data/lib/Wiki2Go/Install/site/error.html +77 -0
  23. data/lib/Wiki2Go/Install/site/html/admin.css +135 -0
  24. data/lib/Wiki2Go/Install/site/html/xml.gif +0 -0
  25. data/lib/Wiki2Go/Install/site/robots.txt +13 -0
  26. data/lib/Wiki2Go/Install/site/style.css +135 -0
  27. data/lib/Wiki2Go/Install/templates/admin.htm +48 -0
  28. data/lib/Wiki2Go/Install/templates/admin_pages/admin.txt +1 -0
  29. data/lib/Wiki2Go/Install/templates/admin_pages/greylist.txt +72 -0
  30. data/lib/Wiki2Go/Install/templates/admin_pages/passwords.txt +67 -0
  31. data/lib/Wiki2Go/Install/templates/admin_pages/regenerate.txt +26 -0
  32. data/lib/Wiki2Go/Install/templates/admin_pages/removespam.txt +19 -0
  33. data/lib/Wiki2Go/Install/templates/admin_pages/update.txt +13 -0
  34. data/lib/Wiki2Go/Install/templates/edit.htm +74 -0
  35. data/lib/Wiki2Go/Install/templates/pagelist.htm +82 -0
  36. data/lib/Wiki2Go/Install/templates/rss.xml +11 -0
  37. data/lib/Wiki2Go/Install/templates/versionlist.htm +84 -0
  38. data/lib/Wiki2Go/Install/templates/view.htm +72 -0
  39. data/lib/Wiki2Go/Install/wiki/style.css +135 -0
  40. data/lib/Wiki2Go/Page.rb +69 -0
  41. data/lib/Wiki2Go/PrivateWikiConfig.rb +27 -0
  42. data/lib/Wiki2Go/PublicWikiConfig.rb +52 -0
  43. data/lib/Wiki2Go/ReadWriteWikiConfig.rb +23 -0
  44. data/lib/Wiki2Go/Server.rb +94 -0
  45. data/lib/Wiki2Go/SpamFilter.rb +95 -0
  46. data/lib/Wiki2Go/UrlFinder.rb +26 -0
  47. data/lib/Wiki2Go/Web.rb +185 -0
  48. data/lib/Wiki2Go/WebrickServlet.rb +211 -0
  49. data/lib/Wiki2Go/WhiteList.rb +29 -0
  50. data/lib/Wiki2Go/Wiki2Go.rb +274 -0
  51. data/lib/Wiki2Go/Wiki2GoConfig.rb +144 -0
  52. data/lib/Wiki2Go/Wiki2GoServlet.rb +197 -0
  53. data/lib/Wiki2Go/WikiFormatter.rb +597 -0
  54. data/lib/Wiki2Go/WikiLogFile.rb +43 -0
  55. data/lib/Wiki2Go/cgi/changes.rb +20 -0
  56. data/lib/Wiki2Go/cgi/display.rb +20 -0
  57. data/lib/Wiki2Go/cgi/edit.rb +20 -0
  58. data/lib/Wiki2Go/cgi/redirect.rb +20 -0
  59. data/lib/Wiki2Go/cgi/save.rb +20 -0
  60. data/lib/Wiki2Go/cgi/search.rb +20 -0
  61. data/lib/Wiki2Go/cgi/secure/admin.rb +20 -0
  62. data/lib/Wiki2Go/cgi/secure/generate_static.rb +20 -0
  63. data/lib/Wiki2Go/cgi/secure/removespam.rb +20 -0
  64. data/lib/Wiki2Go/cgi/upload.rb +20 -0
  65. data/lib/Wiki2Go/cgi/versions.rb +20 -0
  66. data/lib/Wiki2Go/cgi/view.rb +20 -0
  67. metadata +113 -0
@@ -0,0 +1,67 @@
1
+ <%
2
+
3
+ passwords = File.join(@config.root_directory,'config','passwords')
4
+ exists = File.exists?(passwords)
5
+
6
+ user = @request.parameter('user','').strip
7
+ user_pwd = @request.parameter('password','').strip
8
+
9
+ if !@request.parameter('add').nil? && !user.empty? && !user_pwd.empty? then
10
+ command = "htpasswd -b #{!exists ? '-c' : '' } #{passwords} #{user} #{user_pwd}"
11
+ output = system(command)
12
+ result = $?
13
+ @config.log("Execute command '#{command}' => #{result}")
14
+ end
15
+
16
+ lines = []
17
+ if File.exists?(passwords) then
18
+ pwdfile = File.open(passwords,'r') do |f|
19
+ lines = f.readlines
20
+ end
21
+ end
22
+
23
+ if exists && !@request.parameter('remove').nil? && !user.empty? then
24
+ regex = Regexp.new("^#{user}:")
25
+ lines = lines.collect { |line|
26
+ if line =~ regex then
27
+ @config.log("Remove line #{line}")
28
+ nil
29
+ else
30
+ line
31
+ end
32
+ }
33
+ lines = lines.compact
34
+ pwdfile = File.open(passwords,'w') do |f|
35
+ f.puts lines
36
+ end
37
+ end
38
+
39
+
40
+ %>
41
+ <h3>Manage passwords</h3>
42
+ <table class="topiclist">
43
+ <tr><th>Name</th><th>Password</th><th>&nbsp;</th></tr>
44
+ <%
45
+ odd = false
46
+ lines.each do |line|
47
+ style = (odd ? "odd" : "even")
48
+ odd = !odd
49
+ name,pwd = line.split(':')
50
+ %>
51
+ <tr class="<%= style%>"><td><%= name%></td><td><%= pwd %></td>
52
+ <td>
53
+ <form action="<%= File.join(@web.script_prefix,'admin','passwords')%>" method="GET">
54
+ <input type="submit" name="remove" value="Delete">
55
+ <input type="hidden" name="user" value="<%= name %>">
56
+ </form>
57
+ </td>
58
+ </tr>
59
+ <% end %>
60
+ </table>
61
+ <form action="<%= File.join(@web.script_prefix,'admin','passwords')%>" method="GET">
62
+ <table>
63
+ <tr><td>Name</td><td><input name="user" value="<%= user %>"></td></tr>
64
+ <tr><td>Password</td><td><input name="password" value="<%= user_pwd %>"></td></tr>
65
+ <tr><td colspan=2><input type="submit" name="add" value="Add"></td></tr>
66
+ </table>
67
+ </form>
@@ -0,0 +1,26 @@
1
+ <%
2
+ require 'Wiki2Go/Wiki2Go'
3
+
4
+ output = ''
5
+ subwiki = @request.params['wiki']
6
+ if !subwiki.nil? && subwiki.size > 0 then
7
+ subwiki = subwiki[0]
8
+ wiki = Wiki2Go::Wiki.new(@config)
9
+ pageweb = Wiki2Go::Web.new(@web.server,@web.port,@web.script_prefix,"regenerate",subwiki,'')
10
+ output = wiki.generate_html(pageweb)
11
+ end
12
+
13
+ storage = @config.storage
14
+ if @config.multi_wiki then
15
+ subwikis = storage.wikis
16
+ else
17
+ subwikis = [ '' ]
18
+ end
19
+ %>
20
+ <ul>
21
+ <% subwikis.each do |subwiki| %>
22
+ <li><a href="<%= File.join(@web.script_prefix,'admin','regenerate') %>?wiki=<%= subwiki %>">Generate static HTML for '<%= (subwiki.empty? ? '&lt;whole site&gt;' : subwiki) %>'</a>
23
+ <% end %>
24
+ </ul>
25
+ <hr>
26
+ <%= output %>
@@ -0,0 +1,19 @@
1
+ <%
2
+
3
+ username = ''
4
+ bad_user = @request.params['bad_user']
5
+ if !bad_user.nil? && bad_user.length > 0 then
6
+ username = bad_user
7
+ end
8
+
9
+ %>
10
+ <h3>Remove spam</h3>
11
+ <% if username.length > 0 then %>
12
+ Remove spam added by <%= username %>
13
+ <% end %>
14
+ <form action="<%= File.join(@web.script_prefix,'admin','removespam')%>" method="GET">
15
+ <table>
16
+ <tr><td>Name</td><td><input name="bad_user" value="<%= username%>"></td></tr>
17
+ <tr><td colspan=2><input type="submit" name="Erase" value="Erase"></td></tr>
18
+ </table>
19
+ </form>
@@ -0,0 +1,13 @@
1
+ <%
2
+ require 'FileUtils'
3
+
4
+ FileUtils.cd (@config.root_directory) {
5
+ command = "cvs update -d -R"
6
+ output = system(command)
7
+ result = $?
8
+ }
9
+ @config.log("Execute command '#{command}' => #{result}")
10
+ %>
11
+ <h3>CVS Update</h3>
12
+ Result = <%= result %><br>
13
+ Output = <%= output %>
@@ -0,0 +1,74 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2
+ <HTML>
3
+ <HEAD>
4
+ <BASE href="<%= current.web.base_url %>">
5
+ <META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
6
+ <META http-equiv="Pragma" content="no-cache">
7
+ <META name="Author" content="Pascal Van Cauwenberghe">
8
+ <META name="Keywords" content="ruby,wiki">
9
+ <LINK rel="stylesheet" href="<%= current.format.resource_url('style.css')%>" type="text/css">
10
+ <LINK rel="alternate" type="application/rss+xml" title="RSS 2.0 feed" href="<%= current.format.resource_url('rss.xml')%>">
11
+ <TITLE>Edit
12
+ <%= current.web.name %>
13
+ -
14
+ <%= current.web.current_page %>
15
+ </TITLE>
16
+ </HEAD>
17
+ <BODY>
18
+ <div id="container">
19
+ <TABLE border="0" cellpadding="0" cellspacing="0" width="100%">
20
+ <TR>
21
+ <TD>
22
+ <TABLE border="0" cellpadding="0" cellspacing="0" width="100%" class="Header">
23
+ <TR>
24
+ <TD><H1>Edit
25
+ <%= current.format.search_link(current.web.current_page) %>
26
+ </H1>
27
+ </TD>
28
+ <td align="right"><%= current.format.view_link(current.web.name,"FrontPage","Home") %></td>
29
+ </TR>
30
+ </TABLE>
31
+ <table border="0" cellpadding="0" cellspacing="0" width="100%" class="Body">
32
+ <tr>
33
+ <td width="100%">
34
+ <form action="<%= current.format.save_url %>" method="POST" id="form2" name="form2">
35
+ <p align="left">Edit the page in the text area.
36
+ <br>
37
+ To quit without changing the page,
38
+ <%= current.format.view_link(current.web.name,current.web.current_page,'click here to return to '+ current.web.current_page) %>
39
+ </p>
40
+ <% if current.web.secure then %>
41
+ <p>Page name: <input type="text" name="title" value="<%= current.page.name %>" size="64"></p>
42
+ <% else %>
43
+ <p>Author name: <input type="text" name="author" value="<%= current.web.alias %>" size="64"><input type="checkbox" name="remember_me" value="on" checked>Remember me</p>
44
+ <% end %>
45
+ <p align="center"><textarea name="text" rows="35" cols="96">$TEXT$</textarea><br>
46
+ <input type="submit" value=" Save " name="save"><input type="reset" value=" Undo changes "> </p>
47
+ </form>
48
+ <p align="left"><em>Don't forget to follow the <a href="http://wiki2go.nayima.be/Wiki2Go/TextFormattingRules.html" target="_blank">TextFormatting rules</a></em></p>
49
+ </td>
50
+ </tr>
51
+ </table>
52
+ <TABLE border="0" cellpadding="0" cellspacing="0" width="100%" class="Footer" ID="Table1">
53
+ <TR>
54
+ <TD width="50%"><%= current.format.changes_link('Recent changes')%></TD>
55
+ <TD width="50%">
56
+ <FORM action="<%= current.format.search_url %>" method="post" id="form1" name="form1">
57
+ Search: <INPUT name="text" size="30" ID="Text1">
58
+ </FORM>
59
+ </TD>
60
+ </TR>
61
+ <TR>
62
+ <td><a href="<%= current.format.resource_url('rss.xml')%>"><img src="html/xml.gif" width="36" height="14" border="0" alt="Keep informed"></a>
63
+ </td>
64
+ <TD align="right">
65
+ Contact the site administrator: <%= current.format.encodeMailTo(current.config.site_admin) %>
66
+ </TD>
67
+ </TR>
68
+ </TABLE>
69
+ </TD>
70
+ </TR>
71
+ </TABLE>
72
+ </div>
73
+ </BODY>
74
+ </HTML>
@@ -0,0 +1,82 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2
+ <HTML>
3
+ <HEAD>
4
+ <BASE href="<%= current.web.base_url %>">
5
+ <META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
6
+ <META http-equiv="Pragma" content="no-cache">
7
+ <META name="Author" content="Pascal Van Cauwenberghe">
8
+ <META name="Keywords" content="ruby,wiki">
9
+ <LINK rel="stylesheet" href="<%= current.format.resource_url('style.css')%>" type="text/css">
10
+ <LINK rel="alternate" type="application/rss+xml" title="RSS 2.0 feed" href="<%= current.format.resource_url('rss.xml')%>">
11
+ <TITLE><%= current.title %></TITLE>
12
+ </HEAD>
13
+ <BODY>
14
+ <div id="container">
15
+ <TABLE border="0" cellpadding="0" cellspacing="0" width="100%">
16
+ <TR>
17
+ <TD>
18
+ <TABLE border="0" cellpadding="0" cellspacing="0" width="100%" class="Header">
19
+ <TR>
20
+ <TD><H1><%= current.title %></H1></TD>
21
+ <td align="right"><%= current.format.view_link(current.web.name,"FrontPage","Home")%></td>
22
+ </TR>
23
+ </TABLE>
24
+ <TABLE border="0" cellpadding="0" cellspacing="8" width="100%" class="Body">
25
+ <TR>
26
+ <TD width="100%">
27
+ <TABLE border="0" width="100%">
28
+ <TR>
29
+ <td>
30
+ <table class="topiclist">
31
+ <%
32
+ odd = false
33
+ lastdate = ""
34
+ current.pages.each do | topic |
35
+ style = (odd ? "odd" : "even")
36
+ odd = !odd
37
+ thisdate = topic.lastmodified.strftime("%d/%m/%Y")
38
+ %>
39
+ <tr class="<%= style %>">
40
+ <td class="date"><%= (thisdate != lastdate ? thisdate : '&nbsp;') %></td>
41
+ <td class="topic"><%= current.format.view_link(current.web.name,topic.title,topic.name)%></td>
42
+ <td class="author"><%= topic.alias %><%= topic.author != topic.alias ? ' (' + topic.author + ')' : '' %></td>
43
+ <% if current.web.secure %>
44
+ <td class="topic">
45
+ <a href="<%= current.format.removespam_url(topic.author) %>">SPAM!</a>
46
+ </td>
47
+ <% end %>
48
+ </tr>
49
+ <%
50
+ lastdate = thisdate
51
+ end
52
+ %>
53
+ </table>
54
+ </td>
55
+ </TR>
56
+ </TABLE>
57
+ </TD>
58
+ </TR>
59
+ </TABLE>
60
+ <TABLE border="0" cellpadding="0" cellspacing="0" width="100%" class="Footer">
61
+ <TR>
62
+ <TD width="50%"><%= current.format.changes_link('Recent changes')%></TD>
63
+ <TD width="50%">
64
+ <FORM action="<%= current.format.search_url %>" method="post" id="form1" name="form1">
65
+ Search: <INPUT name="text" size="30" ID="Text1">
66
+ </FORM>
67
+ </TD>
68
+ </TR>
69
+ <TR>
70
+ <td><a href="<%= current.format.resource_url('rss.xml')%>"><img src="html/xml.gif" width="36" height="14" border="0" alt="Keep informed"></a>
71
+ </td>
72
+ <TD align="right">
73
+ Contact the site administrator: <%= current.format.encodeMailTo(current.config.site_admin) %>
74
+ </TD>
75
+ </TR>
76
+ </TABLE>
77
+ </TD>
78
+ </TR>
79
+ </TABLE>
80
+ </div>
81
+ </BODY>
82
+ </HTML>
@@ -0,0 +1,11 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <rss version="2.0" >
3
+ <channel>
4
+ <title>$WEB$ wiki</title>
5
+ <link>$BASEURL$</link>
6
+ <description>$WEB$ wiki</description>
7
+ <language>en-us</language>
8
+ <pubDate>$DATE$</pubDate>
9
+ <lastBuildDate>$DATE$</lastBuildDate>
10
+ <docs>http://backend.userland.com/rss</docs>
11
+
@@ -0,0 +1,84 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2
+ <HTML>
3
+ <HEAD>
4
+ <BASE href="<%= current.web.base_url %>">
5
+ <META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
6
+ <META http-equiv="Pragma" content="no-cache">
7
+ <META name="Author" content="Pascal Van Cauwenberghe">
8
+ <META name="Keywords" content="ruby,wiki">
9
+ <LINK rel="stylesheet" href="<%= current.format.resource_url('style.css')%>" type="text/css">
10
+ <LINK rel="alternate" type="application/rss+xml" title="RSS 2.0 feed" href="<%= current.format.resource_url('rss.xml')%>">
11
+ <TITLE><%= current.title %></TITLE>
12
+ </HEAD>
13
+ <BODY>
14
+ <div id="container">
15
+ <TABLE border="0" cellpadding="0" cellspacing="0" width="100%">
16
+ <TR>
17
+ <TD>
18
+ <TABLE border="0" cellpadding="0" cellspacing="0" width="100%" class="Header">
19
+ <TR>
20
+ <TD><H1><%= current.title %></H1></TD>
21
+ <td align="right"><%= current.format.view_link(current.web.name,"FrontPage","Home")%></td>
22
+ </TR>
23
+ </TABLE>
24
+ <TABLE border="0" cellpadding="0" cellspacing="8" width="100%" class="Body">
25
+ <TR>
26
+ <TD width="100%">
27
+ <TABLE border="0" width="100%">
28
+ <TR>
29
+ <td>
30
+ <table class="topiclist">
31
+ <%
32
+ odd = false
33
+ lastdate = ""
34
+ version_id = current.pages.length
35
+ current.pages.each do | topic |
36
+ version_id -= 1
37
+ style = (odd ? "odd" : "even")
38
+ odd = !odd
39
+ thisdate = topic.lastmodified.strftime("%d/%m/%Y")
40
+ %>
41
+ <tr class="<%= style %>">
42
+ <td class="date"><%= (thisdate != lastdate ? thisdate : '&nbsp;') %></td>
43
+ <td class="author"><%= topic.author %></td>
44
+ <td><%= current.format.view_version_link(current.web.name,topic.title,"view",{'version' => version_id.to_s})%></td>
45
+ <% if current.web.secure %>
46
+ <td class="topic">
47
+ <a href="<%= current.format.removespam_url(topic.author) %>">SPAM!</a>
48
+ </td>
49
+ <% end %>
50
+ </tr>
51
+ <%
52
+ lastdate = thisdate
53
+ end
54
+ %>
55
+ </table>
56
+ </td>
57
+ </TR>
58
+ </TABLE>
59
+ </TD>
60
+ </TR>
61
+ </TABLE>
62
+ <TABLE border="0" cellpadding="0" cellspacing="0" width="100%" class="Footer" ID="Table1">
63
+ <TR>
64
+ <TD width="50%"><%= current.format.changes_link('Recent changes')%></TD>
65
+ <TD width="50%">
66
+ <FORM action="<%= current.format.search_url %>" method="post" id="form1" name="form1">
67
+ Search: <INPUT name="text" size="30" ID="Text1">
68
+ </FORM>
69
+ </TD>
70
+ </TR>
71
+ <TR>
72
+ <td><a href="<%= current.format.resource_url('rss.xml')%>"><img src="html/xml.gif" width="36" height="14" border="0" alt="Keep informed"></a>
73
+ </td>
74
+ <TD align="right">
75
+ Contact the site administrator: <%= current.format.encodeMailTo(current.config.site_admin) %>
76
+ </TD>
77
+ </TR>
78
+ </TABLE>
79
+ </TD>
80
+ </TR>
81
+ </TABLE>
82
+ </div>
83
+ </BODY>
84
+ </HTML>
@@ -0,0 +1,72 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2
+ <HTML>
3
+ <HEAD>
4
+ <BASE href="<%= current.web.base_url %>">
5
+ <META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
6
+ <META http-equiv="Pragma" content="no-cache">
7
+ <META name="Author" content="Pascal Van Cauwenberghe">
8
+ <META name="Keywords" content="ruby,wiki">
9
+ <LINK rel="stylesheet" href="<%= current.format.resource_url('style.css')%>" type="text/css">
10
+ <LINK rel="alternate" type="application/rss+xml" title="RSS 2.0 feed" href="<%= current.format.resource_url('rss.xml')%>">
11
+ <TITLE><%= current.web.name %>-<%= current.page.name %></TITLE>
12
+ </HEAD>
13
+ <BODY>
14
+ <div id="container">
15
+ <TABLE border="0" cellpadding="0" cellspacing="0" width="100%">
16
+ <TR>
17
+ <TD>
18
+ <TABLE border="0" cellpadding="0" cellspacing="0" width="100%" class="Header">
19
+ <TR>
20
+ <TD><h1><%= current.format.search_link2(current.web.current_page,current.page.name) %></h1>
21
+ </TD>
22
+ <td align="right"><%= current.format.view_link(current.web.name,"FrontPage","Home")%></td>
23
+ </TR>
24
+ </TABLE>
25
+ <TABLE border="0" cellpadding="8" cellspacing="0" width="100%" class="Body">
26
+ <TR>
27
+ <TD width="100%">
28
+ <%= current.text %>
29
+ </TD>
30
+ </TR>
31
+ </TABLE>
32
+ <TABLE border="0" cellpadding="0" cellspacing="0" width="100%" class="Footer">
33
+ <TR>
34
+ <TD width="50%"><%= current.format.changes_link('Recent changes')%></TD>
35
+ <TD width="50%"><%= current.format.edit_this_link(current.web.name,current.web.current_page,'Edit this page')%></TD>
36
+ </TR>
37
+ <TR>
38
+ <TD width="50%">
39
+ <FORM action="<%= current.format.search_url %>" method="post" id="form1" name="form1">
40
+ Search: <INPUT name="text" size="30" ID="Text1">
41
+ </FORM>
42
+ </TD>
43
+ <TD width="50%">
44
+ <% if current.web.secure %>
45
+ <FORM METHOD="POST" ACTION="<%= current.format.verb_url('upload') %>" ENCTYPE="multipart/form-data">
46
+ File: <INPUT TYPE="FILE" NAME="FILE" ID="File">
47
+ <INPUT TYPE="SUBMIT" VALUE="Send" ID="SendFile" NAME="SendFile">
48
+ </FORM>
49
+ <% end %>
50
+ </TD>
51
+ </TR>
52
+ <TR><TD colspan="2"></TD></TR>
53
+ <TR>
54
+ <td>Changed on
55
+ <%= current.page.lastmodified.strftime("%d/%m/%Y") %>
56
+ by
57
+ <%= current.page.alias%>
58
+ <a href="<%= current.format.resource_url('rss.xml')%>"><img src="html/xml.gif" width="36" height="14" border="0" alt="Keep up to date"></a>
59
+ </td>
60
+ <TD align="right">
61
+ Contact the site administrator: <%= current.format.encodeMailTo(current.config.site_admin) %>
62
+ <a target="_blank" href="http://validator.w3.org/check?uri=<%= current.format.absolute_url %>">
63
+ <img border="0" src="http://www.w3.org/Icons/valid-html401" alt="Verify if layout is correct!" height="31" width="88"></a>
64
+ </TD>
65
+ </TR>
66
+ </TABLE>
67
+ </TD>
68
+ </TR>
69
+ </TABLE>
70
+ </div>
71
+ </BODY>
72
+ </HTML>