<?php

namespace app\home\controller;

use think\Lang;
use think\Cache;
use think\Request;
use think\Controller;

/**
 * 主页管理类
 */
class Index extends Controller
{


    /**
     * 构造函数
     *
     * @access public
     */
    public function __construct()
    {
        parent::__construct();
    }// end__construct()

    /**
     * 主页管理
     *
     * @access public
     * @return array JsonString
     */
    public function index()
    {
        $navigationField = [
            'navigation_zhName',
            'navigation_enName',
            'navigation_id',
        ];
        $getNavigation = model('Navigation')->getSelect($navigationField);
        $this->assign('navigation', $getNavigation);
        $navigationId = [
            'home',
            'service',
            'portfolio',
            'about',
            'pricing',
            'contact',
        ];
        $this->assign('navigationId', $navigationId);

        $this->assign('admin_info', 11);
        return $this->fetch();
    }

    /**
     * 修改密码
     */
    public function modifypw()
    {
        if (request()->isPost()) {
            $new_pw = trim(input('post.new_pw'));
            $new_pw2 = trim(input('post.new_pw2'));
            $old_pw = trim(input('post.old_pw'));
            if ($new_pw !== $new_pw2) {
                $this->error(lang('index_modifypw_repeat_error'));
            }
            $admininfo = $this->getAdminInfo();
            //查询管理员信息
            $service_model = model('service');
            $admininfo = $service_model->getserviceInfo(array('service_id' => $admininfo['service_id']));
            if (!is_array($admininfo) || count($admininfo) <= 0) {
                $this->error(lang('index_modifypw_admin_error'));
            }
            //旧密码是否正确
            if ($admininfo['service_password'] != md5($old_pw)) {
                $this->error(lang('index_modifypw_oldpw_error'));
            }
            $new_pw = md5($new_pw);
            $result = $service_model->editService(array('service_id' => $admininfo['service_id']), array('service_password' => $new_pw));
            if ($result) {
                session(null);
                dsLayerOpenSuccess(lang('index_modifypw_succ'));
            } else {
                $this->error(lang('index_modifypw_fail'));
            }
        } else {
            $this->setAdminCurItem('modifypw');
            return $this->fetch();
        }
    }

    /**
     * 首页
     * @return mixed
     */
    // public function welCome()
    // {
    //     $setup_date = config('setup_date');
    //     $statistics['os'] = PHP_OS;
    //     $statistics['web_server'] = $_SERVER['SERVER_SOFTWARE'];
    //     $statistics['php_version'] = PHP_VERSION;
    //     $statistics['sql_version'] = $this->_mysql_version();
    //     $statistics['setup_date'] = substr($setup_date, 0, 10);

    //     $statistics['domain'] = $_SERVER['HTTP_HOST'];
    //     $statistics['ip'] = GetHostByName($_SERVER['SERVER_NAME']);
    //     $statistics['zlib'] = function_exists('gzclose') ? 'YES' : 'NO'; //zlib
    //     $statistics['safe_mode'] = (boolean)ini_get('safe_mode') ? 'YES' : 'NO'; //safe_mode = Off
    //     $statistics['timezone'] = function_exists("date_default_timezone_get") ? date_default_timezone_get() : "no_timezone";
    //     $statistics['curl'] = function_exists('curl_init') ? 'YES' : 'NO';
    //     $statistics['fileupload'] = @ini_get('file_uploads') ? ini_get('upload_max_filesize') : 'unknown';
    //     $statistics['max_ex_time'] = @ini_get("max_execution_time") . 's'; //脚本最大执行时间
    //     $statistics['set_time_limit'] = function_exists("set_time_limit") ? true : false;
    //     $statistics['memory_limit'] = ini_get('memory_limit');
    //     $statistics['version'] = file_get_contents(APP_PATH . 'version.php');
    //     if (function_exists("gd_info")) {
    //         $gd = gd_info();
    //         $statistics['gdinfo'] = $gd['GD Version'];
    //     } else {
    //         $statistics['gdinfo'] = lang('Unknown');
    //     }

    //     $this->assign('statistics', $statistics);
    //     return $this->fetch('welcome');
    // }

    private function _mysql_version()
    {
        $version = db()->query("select version() as ver");
        return $version[0]['ver'];
    }

    /**
     * 修改当前语言
     */
    public function setLanguageCookie()
    {
        $language = input('param.language');
        if ($language == config('default_lang')) {
            $this->error(\lang('ds_language_repetition'), url('Index/index'));
            exit();
        }
        setcookie("ds_admin_lang", $language, 0, '/');
        $this->success(\lang('ds_language_switching'), url('Index/index'));
        exit();
    }

    /**
     * 删除缓存
     */
    function clear()
    {
        $this->delCacheFile('temp');
        $this->delCacheFile('cache');
        Cache::clear();
        ds_json_encode(10000, lang('eliminate_succ'));
        exit();
    }

    /**
     * 删除缓存目录下的文件或子目录文件
     *
     * @param string $dir 目录名或文件名
     * @return boolean
     */
    function delCacheFile($dir)
    {
        //防止删除cache以外的文件
        if (strpos($dir, '..') !== false)
            return false;
        $path = RUNTIME_PATH . '/' . $dir;
        if (is_dir($path)) {
            $file_list = array();
            read_file_list($path, $file_list);
            if (!empty($file_list)) {
                foreach ($file_list as $v) {
                    if (basename($v) != 'index.html')
                        @unlink($v);
                }
            }
        } else {
            if (basename($path) != 'index.html')
                @unlink($path);
        }
        return true;
    }


}
