/[pub]/suikawiki/wikidata/suikawiki-config.ph
Suika

Contents of /suikawiki/wikidata/suikawiki-config.ph

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.11 - (show annotations) (download)
Tue Sep 16 05:14:52 2003 UTC (20 years, 8 months ago) by wakaba
Branch: MAIN
Changes since 1.10: +32 -9 lines
current practice

1 use strict;
2
3 ## URI (or part of URI) of Wiki CGI itself and its external addons
4 ## Note: If your Wiki CGI URI is <http://foo.example/path/to/wiki.cgi>,
5 ## cookie-path: /path/to/
6 ## script-short-name: wiki.cgi
7 ## URI parts MUST NOT contains "&" and/or non-URI characters.
8 our %uri = (
9 cookie_path => '/~wakaba/-temp/wiki/',
10 external_script => '../wiki/script/',
11 script_short_name => 'wiki',
12 ## If you use CVS repository of WikiDatabase,
13 cvs_repository => '/gate/cvs/suikawiki/wikidata/page/',
14 );
15 our $url_cgi; {
16 my $scheme = 'http';
17 $scheme = lc $1 if $main::ENV{SERVER_PROTOCOL} =~ m#([A-Za-z0-9+.%-]+)#;
18 $url_cgi = "$scheme://".($main::ENV{HTTP_HOST} || $main::ENV{SERVER_NAME}.($main::ENV{SERVER_PORT}==80?'':":$main::ENV{SERVER_PORT}"))."$uri{cookie_path}$uri{script_short_name}";
19 }
20 $uri{wiki_abs} = $url_cgi;
21 $uri{wiki} = qq($uri{cookie_path}$uri{script_short_name});
22
23 ## Path to modules and databases
24 push @main::INC, 'lib';
25 push @SuikaWiki::Plugin::plugin_directory, (
26 q(lib/SuikaWiki/Plugin/),
27 q(misc/plugins/),
28 );
29 our %PathTo = ( ## Path to your data, from the main CGI script (NOT from this config script)
30 CachePrefix => q(./wikidata/.cache.),
31 TempPrefix => q(./wikidata/.tmp.),
32 WikiDataBase => q(./wikidata/page),
33 WikiDatabase => q(./wikidata/page),
34 WikiDatabaseErrorLog => q(./wikidata/log/error.log),
35 convert => q(/usr/X11R6/bin/convert),
36 );
37
38 require SuikaWiki::DB::Util::Lock;
39 our $locker = SuikaWiki::DB::Util::Lock->new (-directory => q(./wikidata/lock),
40 -name => 'wikipage',
41 -retry => ($main::ENV{HTTP_USER_AGENT} =~ m#Openbot/3# ? 2 : 120),
42 -error_handler => sub {
43 my ($self, %o) = @_;
44 open LOG, '>>', $main::PathTo{WikiDatabaseErrorLog};
45 print LOG scalar (gmtime)."\@@{[time]} @{[$$]} {$o{level}}: ", $o{msg}, "\n";
46 close LOG;
47 if ($o{level} eq 'fatal') {
48 die $o{msg};
49 }
50 });
51 $locker->lock or do {
52 open LOG, '>>', $main::PathTo{WikiDatabaseErrorLog};
53 print LOG scalar (time), " Can't lock\n";
54 close LOG;
55 die "Can't lock";
56 };
57
58
59
60 ## Type of WikiPage Database
61 #our $modifier_dbtype = 'AnyDBM_File'; # Fast, not available on some server, page size limited.
62 #our $modifier_dbtype = 'dbmopen'; # Fast, not available on some server, page size limited.
63 #our $modifier_dbtype = 'Yuki::YukiWikiDB'; # Slow, available on all environment.
64 #our $modifier_dbtype = 'Yuki::YukiWikiDB2'; # Slow, available on all environment.
65 our $modifier_dbtype = 'Yuki::YukiWikiDBMeta'; # Slow, available on all environment.
66 our $use_exists = 1; # If you can use 'exists' method for your DB.
67
68 ## Name of Special WikiPage (linked as parts of navigations)
69 our %PageName = (
70 FrontPage => 'HomePage',
71 IndexPage => 'IndexPage',
72 InterWikiName => 'Wiki//InterWikiName',
73 SearchPage => 'Wiki//Page//Search',
74 CreatePage => 'Wiki//Page//Create',
75 MenuBar => 'Wiki//MenuBar',
76 RecentChanges => 'RecentChanges',
77 RefererDontRecord => 'Wiki//Referer//IgnoreSite',
78 RefererSiteName => 'Wiki//Referer//SiteName',
79 ResourceNS => 'Wiki//Resource//',
80 StyleList => 'Wiki//Style//List//',
81 UserAgentList => 'Wiki//UserAgentList',
82 AdminSpecialPage => "\x11\x11Admin\x11Special\x11Page\x11\x11",
83 );
84
85 ## (Should be reimplemented)
86 our $kanjicode = 'euc';
87 our $lang = 'ja';
88
89 ## Misc. options
90 $SuikaWiki::Plugin::UserAgent::LoggingName = 1;
91 ## Use UA-name log? (require UserAgent plugin module)
92
93 ## Definition of views
94
95 require SuikaWiki::View;
96 SuikaWiki::View->template ('links')->add_line (<<'EOH');
97 %link-wiki(page=>"Wiki//News",rel=>News,class=>wiki,title=>"%res(name=>GoToWikiNewsLink);"p);
98 %link-wiki(page=>"Wiki//Help",rel=>help,class=>wiki,title=>"%res(name=>GoToWikiHelpLink);"p);
99 %link-wiki(page=>"Wiki//Page//License",rel=>copyright,class=>wiki,title=>"%res(name=>GoToWikiPageLicenseLink);"p);
100 EOH
101 SuikaWiki::View->template ('navbar')->add_line (<<"EOH");
102 %anchor-wiki(mode=>edit,rel=>edit,class=>wiki-cmd,label=>"%res(name=>EditThisPage);"p,title=>"%res(name=>EditThisPageLong);"p,accesskey=>E,add-param=>{#edit});
103 %anchor-wiki(rel=>view,up_to_date,class=>wiki-cmd,label=>"%res(name=>ViewThisPage);"p,title=>"%res(name=>ViewThisPageLong);"p);
104 %anchor-wiki(page=>{$main::PageName{CreatePage}},class=>wiki,label=>"%res(name=>GoToCreatePage);"p,title=>"%res(name=>GoToCreatePageLong);"p);
105 %anchor-wiki(page=>{$main::PageName{IndexPage}},class=>wiki,label=>"%res(name=>GoToIndexPage);"p,title=>"%res(name=>GoToIndexPageLong);"p);
106 %anchor-wiki(page=>{$main::PageName{SearchPage}},class=>wiki,label=>"%res(name=>GoToSearchPage);"p,title=>"%res(name=>GoToSearchPageLong);"p);
107 %anchor-wiki(mode=>RandomJump,up-to-date,rel=>lucky,class=>"wiki randomlink",label=>"%res(name=>GoSomewhere);"p,title=>"%res(name=>GoSomewhereLong);"p);
108 %anchor-wiki(page=>{$main::PageName{RecentChanges}},class=>wiki,label=>"%res(name=>GoToRecentChanges);"p,title=>"%res(name=>GoToRecentChangesLong,safe);"p);
109 EOH
110
111 push @{$SuikaWiki::Plugin::On{Load}}, sub {
112 SuikaWiki::View->definition ('read')->property (template => <<'EOH');
113 %html-document(title=>{%res(name=>{View:WebPageTitle});}p,link-meta=>{%predefined-template(name=>links);}p,content=>{
114 %section(level=>1,add-to-toc=>0,type=>body,title=>{%ns-short-page-name;}p,heading,content=>{
115 %section(id=>tools1,class=>tools,add-to-toc=>0,content=>{%predefined-template(name=>navbar);}p);
116 %section(level=>2,id=>read,add-to-toc=>0,content=>{
117 %if-calender(month,true=>{
118 %format(context=>form_input,template=>{%calender;});
119 },false=>{
120 %if-calender(true=>{
121 %format(context=>form_input,template=>{%calender-months;});
122 });
123 });
124 %read(comment);
125 }p);
126 %section(level=>2,id=>children,title=>{%res(name=>{Children:Title});}p,heading,
127 content=>{%page-list(ns=>{%page-name;}p,recursive=>0,type=>both,template=>{%res(name=>{Children:Item});}p);}p);
128 %section(level=>2,id=>see-also,title=>{%res(name=>SeeAlso);}p,heading,content=>{%search-result;}p);
129 %section(level=>2,id=>referer,title=>{%res(name=>Referer);}p,heading,content=>{%referer-list;}p);
130 %section(level=>2,id=>toc,title=>{%res(name=>{TOC:Title});}p,heading,add_to_toc=>0,content=>{%toc(drag);}p);
131 %section(id=>last-modified,add_to_toc=>0,content=>{%res(name=>{LastModified=});%last-modified;}p);
132 %section(class=>tools,add_to_toc=>0,content=>{%predefined-template(name=>navbar);}p);
133 %section(id=>footer,add-to-toc=>0,content=>{%predefined-template(name=>footer);}p);
134 }p);
135 }p);%log-hotness;
136 EOH
137 SuikaWiki::View->definition ('-wrote')->property (template => SuikaWiki::View->definition ('-wrote')->property ('template').q(%log-hotness(weight=>2);));
138 SuikaWiki::View->definition ('WithMenu')->property (template => SuikaWiki::View->definition ('WithMenu')->property ('template').q(%log-hotness;));
139 };
140
141 =head1 NAME
142
143 suikawiki-config.ph --- SuikaWiki: site configuration script
144
145 =head1 LICENSE
146
147 Copyright 2003 Wakaba <w@suika.fam.cx>
148
149 This program is free software; you can redistribute it and/or
150 modify it under the same terms as Perl itself.
151
152 =cut
153
154 1; # $Date: 2003/07/26 09:22:36 $

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24