getID();
} else {
// Test system don't have help project, use projecta instead.
$group_id = 6;
}
}
if (isset($group_id) && $group_id) {
if (! isset($project) || ! $project) {
$project = group_get_object($group_id);
}
} elseif(isset($project) && is_object($project)) {
$group_id = $project->getID();
}
if (! isset($group_id) || ! isset($project)) {
exit_no_group();
} else if (!($project->usesPlugin("wiki"))) {
// We should test whether the wiki plugin is disabled globally
// in the Forge or by the current project.
// exit_disabled('home');
exit_project_disabled('home');
} else {
global $robots;
$robots = "noindex,nofollow";
$group_name = $project->getUnixName();
$group_public_name = $project->getPublicName();
$is_external = method_exists($project, 'getIsExternal') && $project->getIsExternal();
$wc = new WikiConfig($group_id);
define('VIRTUAL_PATH', '/wiki/g/'.$group_name);
global $page_prefix;
$page_prefix = '_g'.$group_id.'_';
// We have to use a smaller value than Phpwiki due to page prefix
define('MAX_PAGENAME_LENGTH', 92);
define('THEME', 'fusionforge');
// For FusionForge, we create some specific pages, located in the theme
// except for given project
if ($group_name == forge_get_config('wiki_help_project', 'wiki')) {
define('WIKI_PGSRC', 'pgsrc');
} else {
define('WIKI_PGSRC', 'themes/fusionforge/pgsrc');
}
define('FUSIONFORGE', true);
define('PATH_INFO_PREFIX', '/'.$group_name . '/');
define('USE_PATH_INFO', true);
define('WIKI_NAME', $group_name);
define('ALLOWED_PROTOCOLS', "http|https|mailto|ftp|ftps|news|nntp|ssh|gopher");
define('DISABLE_MARKUP_WIKIWORD', $wc->getWikiConfig('DISABLE_MARKUP_WIKIWORD'));
define('NUM_SPAM_LINKS', 20 * ($wc->getWikiConfig('NUM_SPAM_LINKS')));
define('ENABLE_RATEIT', $wc->getWikiConfig('ENABLE_RATEIT'));
define('UPLOAD_FILE_PATH', forge_get_config('groupdir_prefix').'/'.WIKI_NAME.'/www/uploads/');
// define('UPLOAD_DATA_PATH', SERVER_URL . '/www/'.WIKI_NAME.'/uploads/');
if ($project->isPublic()) {
define('UPLOAD_DATA_PATH', '/www/'.WIKI_NAME.'/uploads/');
} else {
define('UPLOAD_DATA_PATH', '/wiki/view.php/'.WIKI_NAME.'/uploads/');
}
// Do not use a directory per user but only one (per project)
define('UPLOAD_USERDIR', false);
// Use black list of extensions instead of white list
define('DISABLE_UPLOAD_ONLY_ALLOWED_EXTENSIONS', true);
// Get the maximum upload filesize from PHP config
define('MAX_UPLOAD_SIZE', octets(ini_get('upload_max_filesize')));
// Disable access log (already in Apache & FusionForge).
define('ACCESS_LOG_SQL', 0);
define('DEBUG', (forge_get_config('installation_environment') != 'production'));
// Postgresql
define('DATABASE_TYPE', 'SQL');
// Dummy value (to avoid warning in SystemInfo plugin)
define('DATABASE_DSN', 'pgsql://localhost/user_phpwiki');
// Disable VACUUM (they are performed every night)
define('DATABASE_OPTIMISE_FREQUENCY', 0);
// TBD: the name should be taken from FusionForge
// define('ADMIN_USER', 'ACOS Forge Administrator');
define('ADMIN_USER', 'The PhpWiki programming team');
// Dummy value
define('ADMIN_PASSWD', 'xxx');
// Allow ".svg" and ".swf" as extensions
define('INLINE_IMAGES', 'png|jpg|jpeg|gif|svg|swf');
// Allow
and in wiki code
define('ENABLE_MARKUP_DIVSPAN', true);
define('ENABLE_AJAX', false);
define('TOOLBAR_PAGELINK_PULLDOWN', false);
define('TOOLBAR_TEMPLATE_PULLDOWN', false);
define('TOOLBAR_IMAGE_PULLDOWN', true);
// Enable external pages
define('ENABLE_EXTERNAL_PAGES', $is_external);
// Let all revisions be stored. Default since 1.3.11
define('MAJOR_MIN_KEEP', 2147483647);
define('MINOR_MIN_KEEP', 2147483647);
define('MAJOR_MAX_AGE', 2147483647);
define('MAJOR_KEEP', 2147483647);
define('MINOR_MAX_AGE', 2147483647);
define('MINOR_KEEP', 2147483647);
define('AUTHOR_MAX_AGE', 2147483647);
define('AUTHOR_KEEP', 2147483647);
define('AUTHOR_MIN_AGE', 2147483647);
define('AUTHOR_MAX_KEEP', 2147483647);
//
// Define access rights for the wiki.
//
// Do not allow anon users to edit pages
define('ALLOW_ANON_EDIT', false);
// Do not allow fake user
define('ALLOW_BOGO_LOGIN', false);
// A dedicated auth has been created to get auth from FusionForge
$USER_AUTH_ORDER = array("FusionForge");
define('USER_AUTH_ORDER', 'FusionForge');
define('USER_AUTH_POLICY', 'strict');
define('EXTERNAL_LINK_TARGET', '_top');
// Override the default configuration for CONSTANTS before index.php
$LC_ALL = language_name_to_locale_code(choose_language_from_context());
$LANG = preg_replace('/_.*/', '', $LC_ALL);
// We use a local interwiki map file
define('INTERWIKI_MAP_FILE', 'themes/fusionforge/interwiki.map');
define('DEFAULT_WIKI_PAGES', "");
define('DBAUTH_AUTH_CHECK', "SELECT IF(passwd='\$password',1,0) as ok FROM plugin_wiki_pref WHERE userid='\$userid'");
define('DBAUTH_AUTH_USER_EXISTS', "SELECT userid FROM plugin_wiki_pref WHERE userid='\$userid'");
define('DBAUTH_AUTH_CREATE', "INSERT INTO plugin_wiki_pref (passwd,userid) VALUES ('\$password','\$userid')");
define('DBAUTH_PREF_SELECT', "SELECT prefs FROM plugin_wiki_pref WHERE userid='\$userid'");
define('DBAUTH_PREF_UPDATE', "UPDATE plugin_wiki_pref SET prefs='\$pref_blob' WHERE userid='\$userid'");
define('DBAUTH_PREF_INSERT', "INSERT INTO plugin_wiki_pref (prefs,userid) VALUES ('\$pref_blob','\$userid')");
define('DBAUTH_IS_MEMBER', "SELECT userid FROM plugin_wiki_pref WHERE userid='\$userid' AND groupname='\$groupname'");
define('DBAUTH_GROUP_MEMBERS', "SELECT userid FROM plugin_wiki_pref WHERE groupname='\$groupname'");
define('DBAUTH_USER_GROUPS', "SELECT groupname FROM plugin_wiki_pref WHERE userid='\$userid'");
define('USE_DB_SESSION', true);
define('USE_BYTEA', true);
define('ENABLE_REVERSE_DNS', false);
// Web DAV location
define('DEFAULT_DUMP_DIR', forge_get_config('groupdir_prefix').'/'.$group_name."/wikidump/");
define('HTML_DUMP_DIR', forge_get_config('groupdir_prefix').'/'.$group_name."/wikidumphtml/");
define('COMPRESS_OUTPUT', false);
define('CACHE_CONTROL', "NO_CACHE");
$lg = language_name_to_locale_code(forge_get_config('default_language'));
$lg = preg_replace('/_.*/', '', $lg);
define('DEFAULT_LANGUAGE', $lg);
define('DISABLE_GETIMAGESIZE', true);
// If the user is logged in, let the Wiki know
if (session_loggedin()) {
$user = session_get_user();
if ($user && is_object($user) && !$user->isError() && $user->isActive()) {
$user_name = $user->getRealName();
$_SESSION['user_id'] = $user_name;
$_SERVER['PHP_AUTH_USER'] = $user_name;
}
} else {
// clear out the globals, just in case...
}
// Load the default configuration.
require_once(dirname(__FILE__).'/lib/prepend.php');
require_once(dirname(__FILE__).'/lib/IniConfig.php');
IniConfig(dirname(__FILE__)."/config/config-default.ini");
// Override the default configuration for VARIABLES after index.php:
// E.g. Use another DB:
$DBParams['dbtype'] = 'SQL';
$DBParams['dsn'] = 'ffpgsql://' . forge_get_config('database_user') . ':' .
forge_get_config('database_password') . '@' . forge_get_config('database_host') .'/' . forge_get_config('database_name');
$DBParams['prefix'] = "plugin_wiki_";
// Start the wiki
include dirname(__FILE__).'/lib/main.php';
}
/**
* Return a number of octets from a string like "300M"
*/
function octets($val) {
$val = trim($val);
$last = strtolower($val[strlen($val)-1]);
switch($last) {
// The 'G' modifier is available since PHP 5.1.0
case 'g':
$val *= 1024;
case 'm':
$val *= 1024;
case 'k':
$val *= 1024;
}
return $val;
}