<?php

/*
 * ----------------------------------------------------
 * 程序名称: 牛叉广告管理系统(NiuXams)
 * 程序功能: 实现专业的广告投放、管理和统计等管理系统！
 * 程序开发: 牛叉软件(NiuXSoft.com)
 * 版权所有: [NiuXams] (C)2013-2099 NiuXSoft.com
 * 官方网站: www.niuxsoft.com  Email: niuxsoft@163.com
 * ----------------------------------------------------
 * 使用条款:
 * 1.为构建创新型经济社会,请尊重保护知识产权！
 * 2.该软件个人非商业用途免费使用.
 * 3.免费使用禁止修改版权信息和官方推广链接.
 * 4.禁止任何衍生版本.禁止任何非法修改源代码贩卖.
 * ----------------------------------------------------
 */

defined('NIUX_INCLUDED') or exit('Access Denied.');
$amsUrl = htmlspecialchars(inSql(rtrim($_POST['amsUrl'], '/')));
preg_match('/^(http)([0-9a-zA-Z_\.\-\:\/])+$/', $amsUrl) or die("url 格式好像不对吧！");
$output = htmlspecialchars(inSql(rtrim($_POST['output'], '/')));
preg_match('/^([0-9a-zA-Z_\/])+$/', $output) or die("输出目录不能有特殊字符！");
$timeZone = htmlspecialchars(inSql($_POST['timeZone']));
preg_match('/^([0-9a-zA-Z_\/])+$/', $timeZone) or die("时区不能有特殊字符！");
$strictLogin = (int) $_POST['strictLogin'];
$strictLog = (int) $_POST['strictLog'];
if ($output == $cfg_upload)
    die("上传目录不能和输出目录一样！");
$ifEdit = 0;
if ($output != $cfg_output) {
    file_put_contents(ROOT_DIR . $output . '/install_tapf.php', '<?php echo 1 ?>') or die('测试文件写出错！请检查输出目录名称、权限设置是否正确。');
    unlink(ROOT_DIR . $output . '/install_tapf.php') or die('测试删除文件出错！请检查输出目录名称、权限设置是否正确。');
    $includeConfig = '<?php ' . PHP_EOL . 'require_once \'' . ADMIN_DIR . 'common_init.php\';';
    file_put_contents(ROOT_DIR . $output . '/config.php', $includeConfig) or die('测试文件修改出错！请检查输出目录权限设置是否正确。');
    $ifEdit = 1;
}
if ($amsUrl != $cfg_amsUrl) {
    $ifEdit = 2;
    $escape_amsUrl = urlEscape($amsUrl);
    $escape_cfg_amsUrl = urlEscape($cfg_amsUrl);
    $query = "UPDATE `${cfg_dbprefix}gg` SET content=REPLACE(content, '$escape_cfg_amsUrl', '$escape_amsUrl') WHERE content LIKE '%{$escape_cfg_amsUrl}%';";
    $nxsql->query($query);
    $nxsql->errno && die('更新数据库发生错误： (' . $nxsql->errno . ') ' . $nxsql->error);
}
if ($ifEdit) {
    if ($dh = opendir(ROOT_DIR . $output)) {
        while (($file = readdir($dh)) !== false) {
            if ($file != "." && $file != "..") {
                if ((($ifEdit == 2 && strpos($file, $cfg_thread . '-') === 0) || strpos($file, $cfg_book . '-') === 0 || strpos($file, $cfg_forum . '-') === 0 || strpos($file, $cfg_bag . '-') === 0) && strpos($file, '.js') !== false) {
                    $dm = insou(file_get_contents(ROOT_DIR . $output . '/' . $file));
                    $Good = 0;
                    if (strpos($dm, $cfg_amsUrl) !== false) {
                        $dm = str_replace($cfg_amsUrl . '/' . $cfg_output, $amsUrl . '/' . $output, $dm);
                        $Good = 1;
                    }
                    if ($ifEdit == 2 && strpos($dm, $escape_cfg_amsUrl) !== false) {
                        $dm = str_replace($escape_cfg_amsUrl, $escape_amsUrl, $dm);
                        $Good = 1;
                    }
                    if ($Good)
                        file_put_contents(ROOT_DIR . $output . '/' . $file, $dm) or die('出错啦！无法修改js文件！请检查输出目录名称、权限设置是否正确。');
                }
            }
        }
        closedir($dh);
    }
}
$config_data = "<?php
defined('NIUX_INCLUDED') or exit('Access Denied.');
\$cfg_dbhost = '$cfg_dbhost';
\$cfg_dbuser = '$cfg_dbuser';
\$cfg_dbpwd = '$cfg_dbpwd';
\$cfg_dbname = '$cfg_dbname';
\$cfg_dbprefix = '$cfg_dbprefix';
\$cfg_amsUrl = '$amsUrl';
\$cfg_output = '$output';
\$cfg_timeZone = '$timeZone';
\$cfg_strictLogin = $strictLogin;
\$cfg_strictLog = $strictLog;
";
file_put_contents('./data/config_common.php', $config_data) or die('更新配置文件出错！请将程序目录和所有文件的文件权限设置属性0755或0777。');
$nxsql->inLog('基础参数修改');
echo 1;
