xref: /plugin/farmer/DokuWikiFarmCore.php (revision da0ae2c0252db3e5c2ed377b5e8c5f4d93cc81bb)
1*da0ae2c0SAndreas Gohr<?php
2*da0ae2c0SAndreas Gohr
3*da0ae2c0SAndreas Gohrclass DokuWikiFarmCore {
4*da0ae2c0SAndreas Gohr    /**
5*da0ae2c0SAndreas Gohr     * @var array The default config - changed by loadConfig
6*da0ae2c0SAndreas Gohr     */
7*da0ae2c0SAndreas Gohr    protected $config = array (
8*da0ae2c0SAndreas Gohr        'notfound' => array(
9*da0ae2c0SAndreas Gohr            'show' => 'farmer',
10*da0ae2c0SAndreas Gohr            'url' => ''
11*da0ae2c0SAndreas Gohr        ),
12*da0ae2c0SAndreas Gohr        'inherit' => array(
13*da0ae2c0SAndreas Gohr            'main' => 1,
14*da0ae2c0SAndreas Gohr            'acronyms' => 1,
15*da0ae2c0SAndreas Gohr            'entities' => 1,
16*da0ae2c0SAndreas Gohr            'interwiki' => 1,
17*da0ae2c0SAndreas Gohr            'license' => 1,
18*da0ae2c0SAndreas Gohr            'mime' => 1,
19*da0ae2c0SAndreas Gohr            'scheme' => 1,
20*da0ae2c0SAndreas Gohr            'smileys' => 1,
21*da0ae2c0SAndreas Gohr            'wordblock' => 1,
22*da0ae2c0SAndreas Gohr            'userstyle' => 0,
23*da0ae2c0SAndreas Gohr            'userscript' => 0
24*da0ae2c0SAndreas Gohr        )
25*da0ae2c0SAndreas Gohr    );
26*da0ae2c0SAndreas Gohr
27*da0ae2c0SAndreas Gohr    /**
28*da0ae2c0SAndreas Gohr     * DokuWikiFarmCore constructor.
29*da0ae2c0SAndreas Gohr     *
30*da0ae2c0SAndreas Gohr     * This initializes the whole farm
31*da0ae2c0SAndreas Gohr     */
32*da0ae2c0SAndreas Gohr    public function __construct() {
33*da0ae2c0SAndreas Gohr        $this->loadConfig();
34*da0ae2c0SAndreas Gohr    }
35*da0ae2c0SAndreas Gohr
36*da0ae2c0SAndreas Gohr    /**
37*da0ae2c0SAndreas Gohr     * @return array the current farm configuration
38*da0ae2c0SAndreas Gohr     */
39*da0ae2c0SAndreas Gohr    public function getConfig() {
40*da0ae2c0SAndreas Gohr        return $this->config;
41*da0ae2c0SAndreas Gohr    }
42*da0ae2c0SAndreas Gohr
43*da0ae2c0SAndreas Gohr    /**
44*da0ae2c0SAndreas Gohr     * Loads the farm config
45*da0ae2c0SAndreas Gohr     */
46*da0ae2c0SAndreas Gohr    protected function loadConfig() {
47*da0ae2c0SAndreas Gohr        $ini = DOKU_INC . 'conf/farm.ini';
48*da0ae2c0SAndreas Gohr        if(!file_exists($ini)) return;
49*da0ae2c0SAndreas Gohr        $config = parse_ini_file($ini, true);
50*da0ae2c0SAndreas Gohr        foreach(array_keys($this->config) as $section) {
51*da0ae2c0SAndreas Gohr            if(isset($config[$section])) {
52*da0ae2c0SAndreas Gohr                $this->config[$section] = array_merge(
53*da0ae2c0SAndreas Gohr                    $this->config[$section],
54*da0ae2c0SAndreas Gohr                    $config[$section]
55*da0ae2c0SAndreas Gohr                );
56*da0ae2c0SAndreas Gohr            }
57*da0ae2c0SAndreas Gohr        }
58*da0ae2c0SAndreas Gohr    }
59*da0ae2c0SAndreas Gohr
60*da0ae2c0SAndreas Gohr
61*da0ae2c0SAndreas Gohr}
62*da0ae2c0SAndreas Gohr
63*da0ae2c0SAndreas Gohr// initialize it globally
64*da0ae2c0SAndreas Gohrglobal $FARMCORE;
65*da0ae2c0SAndreas Gohr$FARMCORE = new DokuWikiFarmCore();
66