You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

114 lines
3.9 KiB

<?php
if(!defined('IN_INDEX') || empty($_SESSION[$settings['session_prefix'].'user_id'])) exit;
if(isset($_SESSION[$settings['session_prefix'].'user_type']) && $_SESSION[$settings['session_prefix'].'user_type']==1)
{
if(isset($_POST['settings_submitted']))
{
if(empty($_POST['caching'])) $_POST['caching'] = 0;
if(empty($_POST['wysiwyg_editor'])) $_POST['wysiwyg_editor'] = 0;
Database::$content->beginTransaction();
$dbr = Database::$content->prepare("UPDATE ".Database::$db_settings['settings_table']." SET value=:value WHERE name=:name");
$dbr->bindParam(':value', $val, PDO::PARAM_STR);
$dbr->bindParam(':name', $key, PDO::PARAM_STR);
while(list($key, $val) = each($_POST))
{
if($key!='settings_submitted' && $key!='clear_cache')
{
$dbr->execute();
}
}
Database::$content->commit();
if(isset($cache) && ($cache->autoClear || isset($_POST['clear_cache'])))
{
$cache->clear();
header('Location: '.BASE_URL.ADMIN_DIR.'index.php?mode=settings&saved=true&cache_cleared=true');
}
else
{
header('Location: '.BASE_URL.ADMIN_DIR.'index.php?mode=settings&saved=true');
}
#header('Location: '.BASE_URL.ADMIN_DIR.'index.php?msg=settings_saved');
exit;
}
if(isset($_GET['delete']))
{
$dbr = Database::$content->prepare("DELETE FROM ".Database::$db_settings['settings_table']." WHERE name=:name");
$dbr->bindParam(':name', $_GET['delete'], PDO::PARAM_STR);
$dbr->execute();
if(isset($cache) && $cache->autoClear) $cache->clear();
header('Location: '.BASE_URL.ADMIN_DIR.'index.php?mode=settings&action=advanced_settings');
exit;
}
if(isset($_POST['new_var_submitted']))
{
if(!preg_match('/^[a-zA-Z0-9_\-]+$/', $_POST['name']))
{
$errors[] = 'error_settings_spec_chars';
$action = 'advanced_settings';
}
if(empty($errors))
{
$dbr = Database::$content->prepare("INSERT INTO ".Database::$db_settings['settings_table']." (name,value) VALUES (:name, :value)");
$dbr->bindParam(':name', $_POST['name'], PDO::PARAM_STR);
$dbr->bindParam(':value', $_POST['value'], PDO::PARAM_STR);
$dbr->execute();
if(isset($cache) && $cache->autoClear) $cache->clear();
header('Location: '.BASE_URL.ADMIN_DIR.'index.php?mode=settings&action=advanced_settings');
exit;
}
else
{
$template->assign('errors', $errors);
}
}
if(isset($_GET['action'])) $action = $_GET['action'];
if(empty($action)) $action = 'main_settings';
if(isset($_GET['saved'])) $template->assign('saved', true);
if(isset($_GET['cache_cleared'])) $template->assign('cache_cleared', true);
switch($action)
{
case 'main_settings':
// get available pages:
$dbr = Database::$content->query("SELECT id, page FROM ".Database::$db_settings['pages_table']." ORDER BY page ASC");
$i=0;
while($pages_data = $dbr->fetch())
{
$pages[$i]['id'] = $pages_data['id'];
$pages[$i]['page'] = $pages_data['page'];
++$i;
}
if(isset($pages))
{
$template->assign('pages',$pages);
}
$template->assign('page_languages', get_languages());
$template->assign('admin_languages', get_languages(true));
$template->assign('subtitle', Localization::$lang['settings']);
$template->assign('subtemplate', 'settings.inc.tpl');
// WYSIWYG editor available?
#if(file_exists(BASE_PATH.WYSIWYG_EDITOR))
# {
# $template->assign('wysiwyg_editor_available', true);
# }
break;
case 'advanced_settings';
$settings_sorted = array_map('htmlspecialchars', $settings);
ksort($settings_sorted);
$template->assign('settings_sorted', $settings_sorted);
$template->assign('subtitle', Localization::$lang['advanced_settings']);
$template->assign('subtemplate', 'settings_advanced.inc.tpl');
break;
}
}
?>