first commit
This commit is contained in:
@@ -0,0 +1,82 @@
|
||||
<?php
|
||||
|
||||
// +----------------------------------------------------------------------+
|
||||
// | OpenConf |
|
||||
// +----------------------------------------------------------------------+
|
||||
// | Copyright (c) 2002-2020 Zakon Group LLC. All Rights Reserved. |
|
||||
// +----------------------------------------------------------------------+
|
||||
// | This source file is subject to the OpenConf License, available on |
|
||||
// | the OpenConf web site: www.OpenConf.com |
|
||||
// +----------------------------------------------------------------------+
|
||||
|
||||
require_once '../include.php';
|
||||
|
||||
// Is module valid & installed
|
||||
if (!isset($_REQUEST['module']) || !oc_moduleValid($_REQUEST['module']) || !oc_module_installed($_REQUEST['module'])) {
|
||||
err('Module is not installed', 'Error', 3);
|
||||
}
|
||||
// Is action valid
|
||||
elseif (!isset($_REQUEST['action']) || !preg_match("/^[\w\-]+\.\w+$/",$_REQUEST['action']) || !is_file($_REQUEST['module'] . '/' . $_REQUEST['action'])) {
|
||||
err('Module action is invalid','Error');}elseif (
|
||||
preg_match("/^oc_/",$_REQUEST['module'])&&(constant('OC'.'C_L'.'ICENSE')=='Pub'.'lic')){
|
||||
err(base64_decode('SW52YWxpZCBPcGVuQ29uZiBMaWNlbnNl'), 'Error');
|
||||
}
|
||||
// Is this a request for config settings
|
||||
// include it here to allow config even if module is inactive
|
||||
elseif ($_REQUEST['action'] == 'settings.inc') {
|
||||
define('OCC_MODULE_ID', $_REQUEST['module']);
|
||||
define('OCC_SELF', $_SERVER['PHP_SELF'] . '?module=' . OCC_MODULE_ID . '&action=settings.inc');
|
||||
// read in module config even if not active
|
||||
if (!oc_moduleActive(OCC_MODULE_ID) && is_file(OCC_MODULE_ID . '/config.inc')) {
|
||||
require_once OCC_MODULE_ID . '/config.inc';
|
||||
}
|
||||
// setup chair session
|
||||
beginChairSession();
|
||||
// display settings page
|
||||
require_once OCC_PLUGINS_DIR . 'ckeditor.inc';
|
||||
$OC_displayTop = '<a href="modules.php">Modules</a> » ';
|
||||
printHeader($OC_modulesAR[OCC_MODULE_ID]['name'] . " Settings",1);
|
||||
require_once OCC_MODULE_ID . '/settings.inc';
|
||||
printFooter();
|
||||
exit;
|
||||
}
|
||||
// Is action extension valid
|
||||
elseif (preg_match("/\.(?:inc|sql)$/",$_REQUEST['action'])) {
|
||||
err('Request for module action is not permitted','Error');
|
||||
}
|
||||
// Is module active
|
||||
elseif (!in_array($_REQUEST['module'],$OC_activeModulesAR)) {
|
||||
err('Module is not active','Error');
|
||||
}
|
||||
// OK already
|
||||
else {
|
||||
define('OCC_MODULE_ID', $_REQUEST['module']);
|
||||
// Friendly URL? If so, decipher params
|
||||
if ((OCC_LICENSE=='P'.'ublic') && preg_match("/^oc_/",$_REQUEST['module'])){exit;}
|
||||
if (isset($_GET['ocparams']) && !empty($_GET['ocparams'])) {
|
||||
$params = '';
|
||||
if (preg_match_all("/(\w+)--(\w+)_-/", $_GET['ocparams'], $matches)) {
|
||||
foreach ($matches[1] as $idx => $m) {
|
||||
if (($m != 'module') && ($m != 'action') && preg_match("/^[\w-]+$/", $m)) {
|
||||
$params .= '&' . $m . '=' . urlencode($matches[2][$idx]);
|
||||
$_GET[$m] = $matches[2][$idx];
|
||||
}
|
||||
}
|
||||
}
|
||||
unset($_GET['ocparams']);
|
||||
define('OCC_SELF', $_SERVER['PHP_SELF'] . '?module=' . $_REQUEST['module'] . '&action=' . $_GET['action'] . $params);
|
||||
} elseif (isset($_SERVER['REQUEST_URI']) && strstr($_SERVER['REQUEST_URI'], '?')) {
|
||||
define('OCC_SELF', htmlspecialchars($_SERVER['REQUEST_URI']));
|
||||
} elseif (isset($_SERVER['QUERY_STRING']) && strstr($_SERVER['QUERY_STRING'], '&')) {
|
||||
define('OCC_SELF', $_SERVER['PHP_SELF'] . '?' . htmlspecialchars($_SERVER['QUERY_STRING']));
|
||||
} else {
|
||||
err('This server does not support REQUEST_URI or QUERY_STRING','Error');
|
||||
}
|
||||
define('OCC_MODULE_REQUEST_BASE', $_SERVER['PHP_SELF'] . '?module=' . $_REQUEST['module']);
|
||||
require_once OCC_MODULE_ID . '/' . $_REQUEST['action'];
|
||||
exit;
|
||||
}
|
||||
|
||||
exit;
|
||||
|
||||
?>
|
||||
Reference in New Issue
Block a user