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

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

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.10 by wakaba, Sun Feb 1 12:34:18 2004 UTC revision 1.12 by wakaba, Wed Feb 18 07:23:48 2004 UTC
# Line 22  use strict; Line 22  use strict;
22    
23  sub config ($) {  sub config ($) {
24    my $WIKI = shift;    my $WIKI = shift;
25      use Cwd qw(abs_path);
26        
27    ## -- Filesystem path mapping    ## -- Filesystem path mapping
28    for (    for (
29       [db__cache__dir          => q"./wikidata/lock/"],       [db__cache__dir          => q"./wikidata/lock/"],
30       [db__content__dir        => q"./wikidata/page"],       [db__content__dir        => q"./wikidata/page/"],
31       [db__content__error_log  => q"./wikidata/log/db-content.log"],       [db__content__error_log  => q"./wikidata/log/db-content.log"],
32         [db__bdb__home_dir       => q"./wikidata/lock/"],
33         [db__bdb__log_dir        => q"./wikidata/log/bdb/"],
34         [db__bdb__log_file       => q"./wikidata/log/bdb.log"],
35         [db__bdb__temp_dir       => q"./wikidata/lock/"],
36       [db__lock__dir           => q"./wikidata/lock/"],       [db__lock__dir           => q"./wikidata/lock/"],
37         [db__lock__log_file      => q"./wikidata/log/lock.log"],
38         [db__log__dir            => q"./wikidata/log/"],
39         [db__temp__dir           => q"./wikidata/lock/"],
40    ) {    ) {
41      $WIKI->{config}->{path_to}->{$_->[0]} = $_->[1];      ## On system that does not set current directory as main script
42        ## directory, you should specify it instead of using "abs_path".
43        $WIKI->{config}->{path_to}->{$_->[0]} = abs_path $_->[1];
44    }    }
45    
   ## -- Debug mode  
   $WIKI->{config}->{debug} = {  
     general => 1,  
     db => 0,  
     view => 1,  
   };  
   
46    ## -- WikiPlugin    ## -- WikiPlugin
47    push @{$WIKI->{event}->{plugin_manager_loaded}}, sub {    push @{$WIKI->{event}->{plugin_manager_loaded}}, sub {
48      my $wiki = shift;      my $wiki = shift;
# Line 88  sub config ($) { Line 91  sub config ($) {
91          delete $opt{prop_info}->{-db};          delete $opt{prop_info}->{-db};
92        }});        }});
93                
94        ## Cache        ## Cache DBs
95        require SuikaWiki::DB::FileSystem::SuikaWikiCache09;        require SuikaWiki::DB::FileSystem::SuikaWikiCache09;
96        my $cachedb = SuikaWiki::DB::FileSystem::SuikaWikiCache09->new        my $cachedb = SuikaWiki::DB::FileSystem::SuikaWikiCache09->new
97              (directory => $wiki->{config}->{path_to}->{db__cache__dir});              (directory => $wiki->{config}->{path_to}->{db__cache__dir});
# Line 105  sub config ($) { Line 108  sub config ($) {
108            delete $opt{prop_info}->{-db};            delete $opt{prop_info}->{-db};
109          }});          }});
110                
111          ## Berkely DB Environment Preparation
112          use BerkeleyDB;
113          my $bdbenv = new BerkeleyDB::Env
114             -Home => $wiki->{config}->{path_to}->{db__bdb__home_dir},
115             -Config => {
116               DB_DATA_DIR => $wiki->{config}->{path_to}->{db__content__dir},
117               DB_LOG_DIR => $wiki->{config}->{path_to}->{db__bdb__log_dir},
118               DB_TMP_DIR => $wiki->{config}->{path_to}->{db__bdb__temp_dir},
119             },
120             -ErrFile => $wiki->{config}->{path_to}->{db__bdb__log_file},
121             -Flags => DB_CREATE | DB_INIT_LOCK | DB_INIT_LOG | DB_INIT_MPOOL,
122             -Verbose => $wiki->{config}->{debug}->{db};
123          
124          ## Referer Database (See Referer plugin module)
125          $wiki->{db}->_set_prop_db (referer => {-db_open => sub {
126            require SuikaWiki::DB::Hash;
127            new SuikaWiki::DB::Hash constructor => sub {
128              tie my %db, 'BerkeleyDB::Hash',
129                            -Filename => 'referer.db',
130                            -Env => $bdbenv,
131                            -Flags => DB_CREATE,
132                            -Mode => 0644;
133              \%db;
134           };
135          }});
136    
137          ## HTTP Request Logging Database (See RequestLog plugin module)
138          $wiki->{db}->_set_prop_db (log__http_request => {-db_open => sub {
139            require SuikaWiki::DB::Hash;
140            new SuikaWiki::DB::Hash constructor => sub {
141              tie my %db, 'BerkeleyDB::Hash',
142                            -Filename => 'http-request-log.db',
143                            -Env => $bdbenv,
144                            -Flags => DB_CREATE,
145                            -Mode => 0644;
146              \%db;
147           };
148          }});
149          
150        ## Additional WikiDB properties should be defined here        ## Additional WikiDB properties should be defined here
151        # ...            # ...    
152    };    };
153    
154      push @{$WIKI->{event}->{input_close}}, sub {
155        my ($wiki, $event) = @_;
156        SuikaWiki::Plugin->module_package ('Referer')
157                         ->add_referer (wiki => $wiki,
158                                        uri => $wiki->{input}->meta_variable
159                                                 ('HTTP_REFERER'));
160        SuikaWiki::Plugin->module_package ('RequestLog')
161                         ->http_request_log (wiki => $wiki,
162                                             prop => 'log__http_request');
163      };
164    
165    ## -- WikiName of special purpose WikiPages    ## -- WikiName of special purpose WikiPages
166    $WIKI->{config}->{page} = {    $WIKI->{config}->{page} = {
167      Default         => [qw/HomePage/],      Default         => $WIKI->name ([qw/HomePage/]),
168      InterWikiName   => [qw/Wiki InterWikiName/],      InterWikiName   => $WIKI->name ([qw/Wiki InterWikiName/]),
169      NewPageTemplate => [qw/Wiki NewPageTemplate/],      NewPageTemplate => $WIKI->name ([qw/Wiki NewPageTemplate/]),
170        'StyleSheetList(text/html)' => $WIKI->name ([qw<Wiki Style List text/html>]),
171    };    };
172        
173    ## -- WikiNamespace constants    ## -- WikiNamespace constants
174    $WIKI->{config}->{name}->{space}->{separator} = '//';    $WIKI->{config}->{name}->{space} = {
175    $WIKI->{config}->{name}->{space}->{separator_reg} = qr#//#;      separator => '//',
176        separator_reg => qr#\s*//\s*#,
177        self => '.',
178        parent => '..',
179      };
180        
181    ## -- Default character codes    ## -- Default character codes
182    $WIKI->{config}->{charset}->{internal} = 'euc-jp';    $WIKI->{config}->{charset} = {
183    $WIKI->{config}->{charset}->{output} = 'iso-2022-jp';      ## Internal code - MUST be ASCII + 8bit coding scheme
184    $WIKI->{config}->{charset}->{uri_param} = ''; # auto detect        internal => 'euc-jp',
185    $WIKI->{config}->{charset}->{uri_param_encode} = 'euc-jp';      ## Default output code
186    $WIKI->{config}->{charset}->{uri_query} = ''; # auto detect        output => 'iso-2022-jp',
187    $WIKI->{config}->{charset}->{uri_query_encode} = 'euc-jp';      ## "query" part in URI reference
188    $WIKI->{config}->{charset}->{uri_path_info} = 'utf-8';        uri_query => '', # auto-detected
189          uri_query_encode => 'euc-jp',     ## For compatibility w/ SuikaWiki 2
190          uri_param => '', # auto-detected
191          uri_param_encode => 'euc-jp',     ## For compatibility w/ SuikaWiki 2
192        ## PATH_INFO part in URI reference
193          uri_path_info => 'x-utf-8-10646', ## Reserved for future use
194        ## Fragment identifier in URI reference
195          uri_fragment => 'x-punycode',     ## Reserved for possible future use
196      };
197        
198    ## -- Expires duration templates    ## -- Expires duration templates
199    $WIKI->{config}->{entity}->{expires} = {    $WIKI->{config}->{entity}->{expires} = {
200      edit      => {delta => 60},      edit      => {delta => 60},
201      view      => {delta => 2*3600},      view      => {delta => 2*3600},
202      lm_flaged => {delta => 30*24*3600},      lm_flaged => {delta => 30*24*3600},
203        stylesheet => {delta => 30*24*3600},
204        error     => {delta => 60},
205      };
206    
207      ## -- Debug mode
208      $WIKI->{config}->{debug} = {
209        general => 1,
210        db => 0,
211        format => 0,
212        view => 1,
213    };    };
214    
215  }  }

Legend:
Removed from v.1.10  
changed lines
  Added in v.1.12

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24