]> CyberLeo.Net >> Repos - SourceForge/phpwiki.git/blob - g
Use forge_get_config
[SourceForge/phpwiki.git] / g
1 <?php // -*-php-*- $Id$
2
3 /*
4  * Copyright (C) 2008-2010 Alcatel-Lucent
5  *
6  * This file is part of PhpWiki.
7  *
8  * PhpWiki is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; either version 2 of the License, or
11  * (at your option) any later version.
12  *
13  * PhpWiki is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License along
19  * with PhpWiki; if not, write to the Free Software Foundation, Inc.,
20  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
21 */
22
23 /*
24  * Standard Alcatel-Lucent disclaimer for contributing to open source
25  *
26  * "The Configuration File ("Contribution") has not been tested and/or
27  * validated for release as or in products, combinations with products or
28  * other commercial use. Any use of the Contribution is entirely made at
29  * the user's own responsibility and the user can not rely on any features,
30  * functionalities or performances Alcatel-Lucent has attributed to the
31  * Contribution.
32  *
33  * THE CONTRIBUTION BY ALCATEL-LUCENT IS PROVIDED AS IS, WITHOUT WARRANTY
34  * OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
35  * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, COMPLIANCE,
36  * NON-INTERFERENCE AND/OR INTERWORKING WITH THE SOFTWARE TO WHICH THE
37  * CONTRIBUTION HAS BEEN MADE, TITLE AND NON-INFRINGEMENT. IN NO EVENT SHALL
38  * ALCATEL-LUCENT BE LIABLE FOR ANY DAMAGES OR OTHER LIABLITY, WHETHER IN
39  * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
40  * CONTRIBUTION OR THE USE OR OTHER DEALINGS IN THE CONTRIBUTION, WHETHER
41  * TOGETHER WITH THE SOFTWARE TO WHICH THE CONTRIBUTION RELATES OR ON A STAND
42  * ALONE BASIS."
43  */
44
45 ini_set("memory_limit", "256M");
46
47 // Disable compression, seems needed to get all the messages.
48 $no_gz_buffer=true;
49
50 require_once('../../../common/include/env.inc.php');
51 require_once $gfcommon.'include/pre.php';
52 require_once $gfplugins.'wiki/common/wikiconfig.class.php';
53
54 html_use_jquery();
55 if (forge_get_config('use_jquery_form_navigate')) {
56         use_javascript('/scripts/jquery-formnavigate/jquery.FormNavigate-min.js');
57 }
58
59 if (!$group_id || !$project) {
60     exit_no_group();
61 } else if (!($project->usesPlugin("wiki"))) {
62     exit_disabled('home');
63 } else {
64
65     global $robots;
66
67     $robots = "noindex,nofollow";
68
69     $group_name = $project->getUnixName();
70     $group_public_name = $project->getPublicName();
71
72     $is_external = method_exists($project, 'getIsExternal') && $project->getIsExternal();
73
74     $wc = new WikiConfig($group_id);
75
76     define('VIRTUAL_PATH', '/wiki/g/'.$group_name);
77     define('PAGE_PREFIX', '_g'.$group_id.'_');
78
79     // We have to use a smaller value than Phpwiki due to page prefix
80     define('MAX_PAGENAME_LENGTH', 92);
81
82     define('THEME', 'fusionforge');
83
84     // For FusionForge, we create some specific pages, located in the theme
85     // except for project "help"
86     if ($group_name == "help") {
87         define('WIKI_PGSRC', 'pgsrc');
88     } else {
89         define('WIKI_PGSRC', 'themes/fusionforge/pgsrc');
90     }
91
92     define('FUSIONFORGE', true);
93
94     define('PATH_INFO_PREFIX', '/'.$group_name . '/');
95     define('USE_PATH_INFO', true);
96
97     define('WIKI_NAME', $group_name);
98
99     define('DISABLE_MARKUP_WIKIWORD', $wc->getWikiConfig('DISABLE_MARKUP_WIKIWORD'));
100
101     define('NUM_SPAM_LINKS', 20 * ($wc->getWikiConfig('NUM_SPAM_LINKS')));
102
103     define('ENABLE_RATEIT', $wc->getWikiConfig('ENABLE_RATEIT'));
104
105     define('UPLOAD_FILE_PATH', '/opt/groups/'.WIKI_NAME.'/www/uploads/');
106     // define('UPLOAD_DATA_PATH', SERVER_URL . '/www/'.WIKI_NAME.'/uploads/');
107     if ($project->isPublic()) {
108         define('UPLOAD_DATA_PATH', '/www/'.WIKI_NAME.'/uploads/');
109     } else {
110         define('UPLOAD_DATA_PATH', '/wiki/view.php/'.WIKI_NAME.'/uploads/');
111     }
112
113     // Do not use a directory per user but only one (per project)
114     define('UPLOAD_USERDIR', false);
115
116     // Use black list of extensions instead of white list
117     define('DISABLE_UPLOAD_ONLY_ALLOWED_EXTENSIONS', true);
118
119     // Get the maximum upload filesize from PHP config
120     define('MAX_UPLOAD_SIZE', octets(ini_get('upload_max_filesize')));
121
122     // Disable access log (already in Apache & FusionForge).
123     define('ACCESS_LOG_SQL', 0);
124
125     define('DEBUG', (forge_get_config('installation_environment') != 'production'));
126
127     // Postgresql
128     define('DATABASE_TYPE', 'SQL');
129     // Dummy value (to avoid warning in SystemInfo plugin)
130     define('DATABASE_DSN', 'pgsql://localhost/user_phpwiki');
131
132     // Disable VACUUM (they are performed every night)
133     define('DATABASE_OPTIMISE_FREQUENCY', 0);
134
135     // TBD: the name should be taken from FusionForge
136     // define('ADMIN_USER', 'ACOS Forge Administrator');
137     define('ADMIN_USER', 'The PhpWiki programming team');
138     // Dummy value
139     define('ADMIN_PASSWD', 'xxx');
140
141     // Allow ".svg" and ".swf" as extensions
142     define('INLINE_IMAGES', 'png|jpg|jpeg|gif|svg|swf');
143
144     // Allow <div> and <span> in wiki code
145     define('ENABLE_MARKUP_DIVSPAN', true);
146
147     // Disable ENABLE_ACDROPDOWN, it creates a <style> in the <body> (illegal)
148     define('ENABLE_ACDROPDOWN', false);
149     define('ENABLE_AJAX', false);
150
151     define('TOOLBAR_PAGELINK_PULLDOWN', false);
152     define('TOOLBAR_TEMPLATE_PULLDOWN', false);
153     define('TOOLBAR_IMAGE_PULLDOWN', true);
154
155     // Enable external pages
156     define('ENABLE_EXTERNAL_PAGES', $is_external);
157
158     // Let all revisions be stored. Default since 1.3.11
159     define('MAJOR_MIN_KEEP', 2147483647);
160     define('MINOR_MIN_KEEP', 2147483647);
161     define('MAJOR_MAX_AGE', 2147483647);
162     define('MAJOR_KEEP', 2147483647);
163     define('MINOR_MAX_AGE', 2147483647);
164     define('MINOR_KEEP', 2147483647);
165     define('AUTHOR_MAX_AGE', 2147483647);
166     define('AUTHOR_KEEP', 2147483647);
167     define('AUTHOR_MIN_AGE', 2147483647);
168     define('AUTHOR_MAX_KEEP', 2147483647);
169
170     //
171     // Define access rights for the wiki.
172     //
173
174     // Do not allow anon users to edit pages
175     define('ALLOW_ANON_EDIT', false);
176
177     // Do not allow fake user
178     define('ALLOW_BOGO_LOGIN', false);
179
180     // A dedicated auth has been created to get auth from FusionForge
181     $USER_AUTH_ORDER = array("FusionForge");
182     define('USER_AUTH_ORDER', 'FusionForge');
183     define('USER_AUTH_POLICY', 'strict');
184
185     define('EXTERNAL_LINK_TARGET', '_top');
186
187     // Override the default configuration for CONSTANTS before index.php
188     $LC_ALL = language_name_to_locale_code(choose_language_from_context());
189     $LANG   = preg_replace('/_.*/', '', $LC_ALL);
190
191     // We use a local interwiki map file
192     define('INTERWIKI_MAP_FILE', 'themes/fusionforge/interwiki.map');
193
194     define('DEFAULT_WIKI_PAGES', "");
195
196     define('DBAUTH_AUTH_CHECK', "SELECT IF(passwd='\$password',1,0) as ok FROM plugin_wiki_pref WHERE userid='\$userid'");
197     define('DBAUTH_AUTH_USER_EXISTS', "SELECT userid FROM plugin_wiki_pref WHERE userid='\$userid'");
198     define('DBAUTH_AUTH_CREATE', "INSERT INTO plugin_wiki_pref (passwd,userid) VALUES ('\$password','\$userid')");
199     define('DBAUTH_PREF_SELECT', "SELECT prefs FROM plugin_wiki_pref WHERE userid='\$userid'");
200     define('DBAUTH_PREF_UPDATE', "UPDATE plugin_wiki_pref SET prefs='\$pref_blob' WHERE userid='\$userid'");
201     define('DBAUTH_PREF_INSERT', "INSERT INTO plugin_wiki_pref (prefs,userid) VALUES ('\$pref_blob','\$userid')");
202     define('DBAUTH_IS_MEMBER', "SELECT userid FROM plugin_wiki_pref WHERE userid='\$userid' AND groupname='\$groupname'");
203     define('DBAUTH_GROUP_MEMBERS', "SELECT userid FROM plugin_wiki_pref WHERE groupname='\$groupname'");
204     define('DBAUTH_USER_GROUPS', "SELECT groupname FROM plugin_wiki_pref WHERE userid='\$userid'");
205
206     define('USE_DB_SESSION', true);
207
208     define('USE_BYTEA', true);
209
210     define('ENABLE_REVERSE_DNS', false);
211
212     // Web DAV location
213     define('DEFAULT_DUMP_DIR', "/opt/groups/".$group_name."/wikidump/");
214     define('HTML_DUMP_DIR', "/opt/groups/".$group_name."/wikidumphtml/");
215
216     define('COMPRESS_OUTPUT', false);
217
218     define('CACHE_CONTROL', "NO_CACHE");
219
220     $lg = language_name_to_locale_code(forge_get_config('default_language'));
221     $lg = preg_replace('/_.*/', '', $lg);
222     define('DEFAULT_LANGUAGE', $lg);
223
224     define('DISABLE_GETIMAGESIZE', true);
225
226     // If the user is logged in, let the Wiki know
227     if (session_loggedin()) {
228         $user = session_get_user();
229         if ($user && is_object($user) && !$user->isError() && $user->isActive()) {
230             $user_name = $user->getRealName();
231             $_SESSION['user_id'] = $user_name;
232             $_SERVER['PHP_AUTH_USER'] = $user_name;
233             $HTTP_SERVER_VARS['PHP_AUTH_USER'] = $user_name;
234         }
235     } else {
236         // clear out the globals, just in case...
237     }
238
239     // Load the default configuration.
240     require_once(dirname(__FILE__).'/lib/prepend.php');
241     require_once(dirname(__FILE__).'/lib/IniConfig.php');
242     IniConfig(dirname(__FILE__)."/config/config-default.ini");
243
244     // Override the default configuration for VARIABLES after index.php:
245     // E.g. Use another DB:
246     $DBParams['dbtype'] = 'SQL';
247     $DBParams['dsn']    = 'ffpgsql://' . forge_get_config('database_user') . ':' .
248         forge_get_config('database_password') . '@' . forge_get_config('database_host') .'/' . forge_get_config('database_name');
249
250     $DBParams['prefix'] = "plugin_wiki_";
251
252     // Start the wiki
253     include dirname(__FILE__).'/lib/main.php';
254 }
255
256 /**
257  * Return a number of octets from a string like "300M"
258  */
259 function octets($val) {
260     $val = trim($val);
261     $last = strtolower($val[strlen($val)-1]);
262     switch($last) {
263         // The 'G' modifier is available since PHP 5.1.0
264         case 'g':
265             $val *= 1024;
266         case 'm':
267             $val *= 1024;
268         case 'k':
269             $val *= 1024;
270     }
271     return $val;
272 }
273 ?>