/[pub]/suikawiki/script/default/suikawiki-config.ph
Suika

Contents of /suikawiki/script/default/suikawiki-config.ph

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.9 - (hide annotations) (download)
Fri Jan 16 08:06:53 2004 UTC (20 years, 10 months ago) by wakaba
Branch: MAIN
Changes since 1.8: +7 -1 lines
*** empty log message ***

1 wakaba 1.6 package main;
2 w 1.1 use strict;
3 wakaba 1.4
4 wakaba 1.8 ## [OBSOLETE] URI (or part of URI) of Wiki CGI script itself and its external addons
5     ## Note: If your Wiki CGI script URI is <http://foo.example/path/to/wiki.cgi>,
6 wakaba 1.5 ## cookie-path: /path/to/
7     ## script-short-name: wiki.cgi
8     ## URI parts MUST NOT contains "&" and/or non-URI characters.
9 wakaba 1.4 our %uri = (
10 wakaba 1.6 cookie_path => '/~wakaba/-temp/expwiki/',
11     external_script => '../wiki/script/',
12 wakaba 1.5 script_short_name => 'wiki',
13 wakaba 1.6 ## If you use CVS repository of WikiDatabase,
14     #cvs_repository => 'http://path-to-viewcvs/path-to-repository/',
15 wakaba 1.4 );
16 wakaba 1.8 $uri{wiki_abs} = "http://".($main::ENV{HTTP_HOST} || $main::ENV{SERVER_NAME}.($main::ENV{SERVER_PORT}==80?'':":$main::ENV{SERVER_PORT}"))."$uri{cookie_path}$uri{script_short_name}";
17     $main::url_cgi = $uri{wiki_abs};
18 wakaba 1.6 $uri{wiki} = qq($uri{cookie_path}$uri{script_short_name});
19 wakaba 1.4
20     ## Path to modules and databases
21 wakaba 1.6 push @main::INC, qw'lib ../wiki/lib lib';
22    
23 wakaba 1.9 ## These lines should be removed after utf8 support
24     $Message::Util::Formatter::Base::Token = qr/[\w._+\x80-\xFF-]+/;
25     require Message::Util::Formatter::Base;
26    
27 wakaba 1.7 ## Constructing a new instance of the WikiEngine
28 wakaba 1.6 require SuikaWiki::Implementation;
29     our $WIKI = SuikaWiki::Implementation->new;
30    
31 wakaba 1.7 ## Obsolete interface
32 wakaba 1.8 our %PathTo = ( ## Path to your data, relative to the main CGI script (NOT to this config script)
33 wakaba 1.6 CachePrefix => q(./wikidata/.cache.), # WikiPlugin
34     TempPrefix => q(./wikidata/.tmp.), # WikiPlugin, Image
35     convert => q(/usr/X11R6/bin/convert), # Image
36 wakaba 1.4 );
37    
38 wakaba 1.6 ## Filesystem path mapping
39     for (
40     [db__content__dir => q"./wikidata/page"],
41     [db__content__error_log => q"./wikidata/log/db-content.log"],
42     [db__lock__dir => q"./wikidata/lock/"],
43     ) {
44     $WIKI->{config}->{path_to}->{$_->[0]} = $_->[1];
45     }
46    
47 wakaba 1.8 ## Debug mode
48     $WIKI->{config}->{debug} = {
49     general => 1,
50     db => 0,
51 wakaba 1.9 view => 1,
52 wakaba 1.8 };
53    
54 wakaba 1.7 ## WikiPlugin
55 wakaba 1.6 push @{$WIKI->{event}->{plugin_manager_loaded}}, sub {
56 wakaba 1.8 my $wiki = shift;
57     $wiki->{plugin}->load_directory (qw(
58     lib/SuikaWiki/Plugin/
59     misc/plugins/
60 wakaba 1.9 misc/plugins/format/
61 wakaba 1.8 misc/plugins/view/
62     ));
63 wakaba 1.6 require 'wikidata/config.ph';
64     };
65    
66 wakaba 1.8 ## WikiDatabase : Mapping logical to physical
67 wakaba 1.6 push @{$WIKI->{event}->{database_loaded}}, sub {
68     ## Main content
69     $WIKI->{db}->_set_prop_db (content => {-db_open => sub {
70     require SuikaWiki::DB::FileSystem::YukiWikiDBNS;
71     SuikaWiki::DB::FileSystem::YukiWikiDBNS->new
72     (directory => $WIKI->{config}->{path_to}->{db__content__dir},
73     logfile => $WIKI->{config}->{path_to}->{db__content__error_log},
74     suffix => '.txt',
75     -lock => &{$WIKI->{var}->{db}->{lock_prop}} ('content'));
76 wakaba 1.8 }, -db_close => sub {
77     my %opt = @_;
78     $opt{prop_info}->{-db}->close;
79     delete $opt{prop_info}->{-db};
80     }});
81 wakaba 1.6
82     ## Last modified
83     $WIKI->{db}->_set_prop_db (lastmodified => {-db_open => sub {
84     require SuikaWiki::DB::FileSystem::SuikaWikiMetaInfo09;
85     SuikaWiki::DB::FileSystem::SuikaWikiMetaInfo09->new
86     (directory => $WIKI->{config}->{path_to}->{db__content__dir},
87     -lock => &{$WIKI->{var}->{db}->{lock_prop}} ('lastmodified'));
88 wakaba 1.8 }, -prop => 'last_modified', -db_close => sub {
89     my %opt = @_;
90     $opt{prop_info}->{-db}->close;
91     delete $opt{prop_info}->{-db};
92     }});
93 wakaba 1.7
94     ## OBSOLETE interface for transition
95 wakaba 1.8 ## Don't remove until WikiResource is reimplemented
96 wakaba 1.6 $WIKI->{db}->get (content => ['dummy']);
97     *main::database = $WIKI->{db}->{prop}->{content}->{-db}->{db_hash};
98     $SuikaWiki::Plugin::DB = $WIKI->{db};
99     for (@{$SuikaWiki::Plugin::On{WikiDatabaseLoaded}||[]}) { &{$_} }
100    
101     package wiki::dummy;
102     sub meta {undef};
103     sub list_items {};
104     sub STORE {};
105     };
106    
107 wakaba 1.8 ## WikiName of special purpose WikiPages
108     $WIKI->{config}->{page} = {
109     Default => [qw/HomePage/],
110     NewPageTemplate => [qw/Wiki NewPageTemplate/],
111     };
112    
113 wakaba 1.7 ## [OBSOLETE] Name of Special WikiPage (linked as parts of navigations)
114 wakaba 1.4 our %PageName = (
115     FrontPage => 'HomePage',
116 wakaba 1.6 InterWikiName => 'Wiki//InterWikiName',
117     MenuBar => 'Wiki//MenuBar',
118     RefererDontRecord => 'Wiki//Referer//IgnoreSite',
119     RefererSiteName => 'Wiki//Referer//SiteName',
120     ResourceNS => 'Wiki//Resource//',
121     StyleList => 'Wiki//Style//List//',
122 wakaba 1.4 );
123 wakaba 1.7
124     ## WikiNamespace constants
125     $WIKI->{config}->{name}->{space}->{separator} = '//';
126     $WIKI->{config}->{name}->{space}->{separator_reg} = qr#//#;
127    
128 wakaba 1.8 ## Default character code
129 wakaba 1.6 $WIKI->{config}->{charset}->{internal} = 'euc-jp';
130     $WIKI->{config}->{charset}->{output} = 'iso-2022-jp';
131     $WIKI->{config}->{charset}->{uri_param} = ''; # auto detect
132 wakaba 1.8 $WIKI->{config}->{charset}->{uri_param_encode} = 'euc-jp';
133 wakaba 1.6 $WIKI->{config}->{charset}->{uri_query} = ''; # auto detect
134 wakaba 1.8 $WIKI->{config}->{charset}->{uri_query_encode} = 'euc-jp';
135     $WIKI->{config}->{charset}->{uri_path_info} = 'utf-8';
136 wakaba 1.7
137     ## Expires duration templates
138 wakaba 1.6 $WIKI->{config}->{entity}->{expires} = {
139 wakaba 1.7 edit => {delta => 60},
140     view => {delta => 2*3600},
141 wakaba 1.6 lm_flaged => {delta => 30*24*3600},
142     };
143 wakaba 1.4
144 wakaba 1.8
145 w 1.3 =head1 NAME
146    
147 wakaba 1.7 suikawiki-config.ph --- SuikaWiki: Configuration of the wiki
148 w 1.3
149     =head1 LICENSE
150    
151     Copyright 2003 Wakaba <w@suika.fam.cx>
152    
153     This program is free software; you can redistribute it and/or
154     modify it under the same terms as Perl itself.
155    
156     =cut
157 w 1.1
158 wakaba 1.9 1; # $Date: 2003/12/26 07:05:09 $

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24