Seditio Source
Root |
./othercms/Cotonti-0.6.25/system/core/admin/admin.config.inc.php
<?php
/**
 * Administration panel - Configuration
 *
 * @package Cotonti
 * @version 0.1.0
 * @author Neocrome, Cotonti Team
 * @copyright Copyright (c) Cotonti Team 2008-2009
 * @license BSD
 */

(defined('SED_CODE') && defined('SED_ADMIN')) or die('Wrong URL.');

list(
$usr['auth_read'], $usr['auth_write'], $usr['isadmin']) = sed_auth('admin', 'a');
sed_block($usr['isadmin']);

$t = new XTemplate(sed_skinfile('admin.config.inc', false, true));

$adminpath[] = array(sed_url('admin', 'm=config'), $L['Configuration']);

$sed_select_charset = sed_loadcharsets();
$sed_select_doctypeid = sed_loaddoctypes();

$ajax = sed_import('ajax', 'G', 'INT');
$ajax = empty($ajax) ? 0 : (int) $ajax;

/* === Hook === */
$extp = sed_getextplugins('admin.config.first');
if(
is_array($extp))
{
    foreach(
$extp as $pl)
    {
        include_once(
$cfg['plugins_dir'].'/'.$pl['pl_code'].'/'.$pl['pl_file'].'.php');
    }
}
/* ===== */

switch($n)
{
    case
'edit':
       
$o = sed_import('o', 'G', 'ALP');
       
$p = sed_import('p', 'G', 'ALP');
       
$v = sed_import('v', 'G', 'TXT');
       
$o = empty($o) ? 'core' : $o;
       
$p = empty($p) ? 'global' : $p;

        if (
$a == 'update')
        {
            if (
$o == 'core')
            {
                foreach (
$cfgmap as $line)
                {
                    if (
$line[0] == $p)
                    {
                       
$cfg_name = $line[2];
                       
$cfg_value = trim(sed_import($cfg_name, 'P', 'NOC'));
                        if (
$p == 'users' && ($cfg_name == 'av_maxsize' || $cfg_name == 'sig_maxsize' || $cfg_name == 'ph_maxsize'))
                        {
                           
$cfg_value = min($cfg_value, sed_get_uploadmax() * 1024);
                        }
                       
$sql = sed_sql_query("UPDATE $db_config SET config_value='" . sed_sql_prep($cfg_value) . "' WHERE config_name='" . $cfg_name . "' AND config_owner='core'");
                    }
                }
            }
            else
            {
               
$sql = sed_sql_query("SELECT config_name FROM $db_config WHERE config_owner='$o' AND config_cat='$p'");
                while (
$row = sed_sql_fetcharray($sql))
                {
                   
$cfg_value = trim(sed_import($row['config_name'], 'P', 'NOC'));
                   
$sql1 = sed_sql_query("UPDATE $db_config SET config_value='" . sed_sql_prep($cfg_value) . "' WHERE config_name='" . $row['config_name'] . "' AND config_owner='$o' AND config_cat='$p'");
                }
            }

           
$adminwarnings = $L['Updated'];
        }
        elseif (
$a == 'reset' && $o == 'core' && !empty($v))
        {
            foreach (
$cfgmap as $i => $line)
            {
                if (
$v == $line[2])
                {
                   
$sql = sed_sql_query("UPDATE $db_config SET config_value='" . sed_sql_prep($line[4]) . "' WHERE config_name='$v' AND config_owner='$o'");
                }
            }
        }

       
$sql = sed_sql_query("SELECT * FROM $db_config WHERE config_owner='$o' AND config_cat='$p' ORDER BY config_cat ASC, config_order ASC, config_name ASC");
       
sed_die(sed_sql_numrows($sql) == 0);

        foreach(
$cfgmap as $line)
        {
           
$cfg_params[$line[2]] = $line[5];
        }

        if(
$o == 'core')
        {
           
$adminpath[] = array(sed_url('admin', 'm=config&n=edit&o='.$o.'&p='.$p), $L["core_".$p]);
        }
        else
        {
           
$adminpath[] = array(sed_url('admin', 'm=plug&a=details&pl='.$p), $L['Plugin'].' ('.$o.':'.$p.')');
           
$adminpath[] = array(sed_url('admin', 'm=config&n=edit&o='.$o.'&p='.$p), $L['Edit']);
        }

        if(
$o == 'plug')
        {
           
$path_lang_def = $cfg['plugins_dir']."/$p/lang/$p.en.lang.php";
           
$path_lang_alt = $cfg['plugins_dir']."/$p/lang/$p.$lang.lang.php";
            if(
file_exists($path_lang_def))
            {
                require_once(
$path_lang_def);
            }
            if(
file_exists($path_lang_alt) && $lang !='en')
            {
                require_once(
$path_lang_alt);
            }
        }

       
/* === Hook - Part1 : Set === */
       
$extp = sed_getextplugins('admin.config.edit.loop');
       
/* ===== */
       
while($row = sed_sql_fetcharray($sql))
        {
           
$config_owner = $row['config_owner'];
           
$config_cat = $row['config_cat'];
           
$config_name = $row['config_name'];
           
$config_value = htmlspecialchars($row['config_value']);
           
$config_default = $row['config_default'];
           
$config_type = $row['config_type'];
           
$config_title = $L['cfg_'.$row['config_name']][0];
           
$config_text = htmlspecialchars($row['config_text']);
           
$config_more = $L['cfg_'.$row['config_name']][1];
           
$if_config_more = (!empty($config_more)) ? true : false;

            if(
$config_type == 1)
            {
               
$t -> assign(array(
                   
"ADMIN_CONFIG_ROW_CONFIG_NAME" => $config_name,
                   
"ADMIN_CONFIG_ROW_CONFIG_VALUE" => $config_value,
                ));
               
$t -> parse("CONFIG.EDIT.ADMIN_CONFIG_ROW.ADMIN_CONFIG_ROW_TYPE_1");
            }
            elseif(
$config_type == 2)
            {
                if(
$o=='plug' && !empty($row['config_default']))
                {
                   
$cfg_params[$config_name] = explode(",", $row['config_default']);
                }

                if(
is_array($cfg_params[$config_name]))
                {
                   
reset($cfg_params[$config_name]);
                    while( list(
$i,$x) = each($cfg_params[$config_name]) )
                    {
                       
$x = trim($x);

                       
$t -> assign(array(
                           
"ADMIN_CONFIG_ROW_CONFIG_OPTION_VALUE" => $x,
                           
"ADMIN_CONFIG_ROW_CONFIG_OPTION_SELECTED" => ($x == $config_value) ? " selected=\"selected\"" : '',
                           
"ADMIN_CONFIG_ROW_CONFIG_OPTION_NAME" => $config_name
                       
));
                       
$t -> parse("CONFIG.EDIT.ADMIN_CONFIG_ROW.ADMIN_CONFIG_ROW_TYPE_2.ADMIN_CONFIG_ROW_TYPE_2_SELECT.ADMIN_CONFIG_ROW_TYPE_2_OTP");
                    }
                   
$t -> assign(array(
                       
"ADMIN_CONFIG_ROW_CONFIG_NAME" => $config_name
                   
));
                   
$t -> parse("CONFIG.EDIT.ADMIN_CONFIG_ROW.ADMIN_CONFIG_ROW_TYPE_2.ADMIN_CONFIG_ROW_TYPE_2_SELECT");
                }
                elseif(
$cfg_params[$config_name] == "userlevels")
                {
                   
$t -> assign(array(
                       
"ADMIN_CONFIG_ROW_CONFIG_OPTION" => sed_selectboxlevels(0, 99, $config_value, $config_name)
                    ));
                   
$t -> parse("CONFIG.EDIT.ADMIN_CONFIG_ROW.ADMIN_CONFIG_ROW_TYPE_2.ADMIN_CONFIG_ROW_TYPE_2_SELECT");
                }
                else
                {
                   
$t -> assign(array(
                       
"ADMIN_CONFIG_ROW_CONFIG_OPTION_VALUE" => $config_value,
                       
"ADMIN_CONFIG_ROW_CONFIG_OPTION_NAME" => $config_name
                   
));
                   
$t -> parse("CONFIG.EDIT.ADMIN_CONFIG_ROW.ADMIN_CONFIG_ROW_TYPE_2.ADMIN_CONFIG_ROW_TYPE_2_TEXT");
                }
               
$t -> parse("CONFIG.EDIT.ADMIN_CONFIG_ROW.ADMIN_CONFIG_ROW_TYPE_2");
            }
            elseif(
$config_type == 3)
            {
               
$t -> assign(array(
                   
"ADMIN_CONFIG_ROW_CONFIG_NAME" => $config_name
               
));
               
$t -> parse("CONFIG.EDIT.ADMIN_CONFIG_ROW.ADMIN_CONFIG_ROW_TYPE_3");
            }
            elseif(
$config_type == 4)
            {
               
$varname = "sed_select_".$config_name;
               
reset($$varname);
                while(list(
$i, $x) = each($$varname))
                {
                   
$t -> assign(array(
                       
"ADMIN_CONFIG_ROW_CONFIG_OPTION_VALUE" => $x[0],
                       
"ADMIN_CONFIG_ROW_CONFIG_OPTION_SELECTED" => ($config_value == $x[0]) ? " selected=\"selected\"" : '',
                       
"ADMIN_CONFIG_ROW_CONFIG_OPTION_NAME" => $x[1]
                    ));
                   
$t -> parse("CONFIG.EDIT.ADMIN_CONFIG_ROW.ADMIN_CONFIG_ROW_TYPE_4.ADMIN_CONFIG_ROW_TYPE_4_OTP");
                }
               
$t -> assign(array(
                   
"ADMIN_CONFIG_ROW_CONFIG_NAME" => $config_name,
                ));
               
$t -> parse("CONFIG.EDIT.ADMIN_CONFIG_ROW.ADMIN_CONFIG_ROW_TYPE_4");
            }
            else
            {
               
$t -> assign(array(
                   
"ADMIN_CONFIG_ROW_CONFIG_NAME" => $config_name,
                   
"ADMIN_CONFIG_ROW_CONFIG_VALUE" => $config_value
               
));
               
$t -> parse("CONFIG.EDIT.ADMIN_CONFIG_ROW.ADMIN_CONFIG_ROW_TYPE_5");
            }

           
$t -> assign(array(
               
"ADMIN_CONFIG_ROW_CONFIG_TITLE" => (empty($L['cfg_'.$row['config_name']][0]) && !empty($config_text)) ? $config_text : $config_title,
               
"ADMIN_CONFIG_ROW_CONFIG_MORE_URL" => sed_url('admin', "m=config&n=edit&o=".$o."&p=".$p."&a=reset&v=".$config_name),
               
"ADMIN_CONFIG_ROW_CONFIG_MORE_URL_AJAX" => ($cfg['jquery'] AND $cfg['turnajax']) ? " onclick=\"return ajaxSend({url: '".sed_url('admin', 'm=config&n=edit&o='.$o.'&p='.$p.'&a=reset&ajax=1&v='.$config_name)."', divId: 'pagtab', errMsg: '".$L['ajaxSenderror']."'});\"" : "",
               
"ADMIN_CONFIG_ROW_CONFIG_MORE" => $config_more
           
));
           
/* === Hook - Part2 : Include === */
           
if(is_array($extp))
            {
                foreach(
$extp as $pl)
                {
                    include_once(
$cfg['plugins_dir'].'/'.$pl['pl_code'].'/'.$pl['pl_file'].'.php');
                }
            }
           
/* ===== */
           
$t -> parse("CONFIG.EDIT.ADMIN_CONFIG_ROW");
        }

       
$t -> assign(array(
           
"ADMIN_CONFIG_FORM_URL" => sed_url('admin', "m=config&n=edit&o=".$o."&p=".$p."&a=update"),
           
"ADMIN_CONFIG_FORM_URL_AJAX" => ($cfg['jquery'] AND $cfg['turnajax']) ? " onsubmit=\"return ajaxSend({method: 'POST', formId: 'saveconfig', url: '".sed_url('admin', 'm=config&n=edit&o='.$o.'&p='.$p.'&a=update&ajax=1')."', divId: 'pagtab', errMsg: '".$L['ajaxSenderror']."'});\"" : ""
       
));
       
/* === Hook  === */
       
$extp = sed_getextplugins('admin.config.edit.tags');
        if(
is_array($extp))
        {
            foreach(
$extp as $pl)
            {
                include_once(
$cfg['plugins_dir'].'/'.$pl['pl_code'].'/'.$pl['pl_file'].'.php');
            }
        }
       
/* ===== */
       
$t -> parse("CONFIG.EDIT");
    break;

    default:
       
$sql = sed_sql_query("SELECT DISTINCT(config_cat) FROM $db_config WHERE config_owner='core' ORDER BY config_cat ASC");
        while(
$row = sed_sql_fetcharray($sql))
        {
            if(
$L["core_".$row['config_cat']])
            {
               
$t -> assign(array(
                   
"ADMIN_CONFIG_ROW_CORE_URL" => sed_url('admin', "m=config&n=edit&o=core&p=".$row['config_cat']),
                   
"ADMIN_CONFIG_ROW_CORE_URL_AJAX" => ($cfg['jquery'] AND $cfg['turnajax']) ? " onclick=\"return ajaxSend({url: '".sed_url('admin', 'm=config&n=edit&ajax=1&o=core&p='.$row['config_cat'])."', divId: 'pagtab', errMsg: '".$L['ajaxSenderror']."'});\"" : "",
                   
"ADMIN_CONFIG_ROW_CORE_NAME" => $L["core_".$row['config_cat']]
                ));
               
$t -> parse("CONFIG.DEFAULT.ADMIN_CONFIG_ROW_CORE");
            }
        }
       
$sql = sed_sql_query("SELECT DISTINCT(config_cat) FROM $db_config WHERE config_owner='plug' ORDER BY config_cat ASC");
        while(
$row = sed_sql_fetcharray($sql))
        {
           
$t -> assign(array(
               
"ADMIN_CONFIG_ROW_PLUG_URL" => sed_url('admin', "m=config&n=edit&o=plug&p=".$row['config_cat']),
               
"ADMIN_CONFIG_ROW_PLUG_URL_AJAX" => ($cfg['jquery'] AND $cfg['turnajax']) ? " onclick=\"return ajaxSend({url: '".sed_url('admin', 'm=config&n=edit&ajax=1&o=plug&p='.$row['config_cat'])."', divId: 'pagtab', errMsg: '".$L['ajaxSenderror']."'});\"" : "",
               
"ADMIN_CONFIG_ROW_PLUG_NAME" => $row['config_cat']
            ));
           
$t -> parse("CONFIG.DEFAULT.ADMIN_CONFIG_ROW_PLUG");
        }
       
/* === Hook  === */
       
$extp = sed_getextplugins('admin.config.default.tags');
        if(
is_array($extp))
        {
            foreach(
$extp as $pl)
            {
                include_once(
$cfg['plugins_dir'].'/'.$pl['pl_code'].'/'.$pl['pl_file'].'.php');
            }
        }
       
/* ===== */
       
$t -> parse("CONFIG.DEFAULT");
    break;
}

$is_adminwarnings = isset($adminwarnings);

$t -> assign(array(
   
"ADMIN_CONFIG_ADMINWARNINGS" => $adminwarnings
));

/* === Hook  === */
$extp = sed_getextplugins('admin.config.tags');
if(
is_array($extp))
{
    foreach(
$extp as $pl)
    {
        include_once(
$cfg['plugins_dir'].'/'.$pl['pl_code'].'/'.$pl['pl_file'].'.php');
    }
}
/* ===== */

$t -> parse("CONFIG");
$adminmain = $t -> text("CONFIG");

if(
$ajax)
{
   
sed_sendheaders();
    echo
$adminmain;
    exit;
}

?>