public function initialize()
 {
     //获取站点配置
     if (!isset($_SERVER['QUERY_STRING'])) {
         $_SERVER['QUERY_STRING'] = '';
     }
     $setting = model('setting')->where('siteid', 1)->getOne();
     $data['SEO'] = array();
     $data['SEO']['title'] = $setting['title'];
     $data['SEO']['keywords'] = $setting['keywords'];
     $data['SEO']['description'] = $setting['description'];
     $template = $setting['template'];
     //站点配置中的前台模板
     $data['page'] = isset($_GET['page']) ? $_GET['page'] : 1;
     $this->assign($data);
     unset($setting);
     Config::set(array('cache' => 1), 'database');
     Config::template();
     //载入模板配置,防止将所有的配置替换
     //==配置模板风格和静态缓存生存时间
     Config::set(array('view_name' => $template, 'template_parse' => 'template_parse', 'view_cache' => Config::cms('view_cache'), 'leftDelim' => Config::cms('tpl_leftDelim'), 'rightDelim' => Config::cms('tpl_rightDelim')), 'template');
     Loader::func('gouwanmei');
     //error_reporting(1);
     Config::set(array('debug' => 0), 'config');
 }
 public function set($setting, $siteid)
 {
     $setting = $this->addslashes($setting);
     $ssetting = array('title' => $setting['title'], 'keywords' => $setting['keywords'], 'description' => $setting['description'], 'template' => $setting['template'], 'registercheckcode' => $setting['registercheckcode'], 'logincheckcode' => $setting['logincheckcode'], 'membertokentype' => $setting['membertokentype']);
     if ($ssetting['template'] != Config::cms('view_name') || $setting['view_cache'] != Config::cms('view_cache') || $setting['view_cache_time'] != Config::cms('view_cache_time')) {
         $uset = array('view_name' => $ssetting['template'], 'view_cache' => $setting['view_cache'], 'view_cache_time' => $setting['view_cache_time']);
         config::set($uset, 'cms', 1);
     }
     return $this->where('siteid', 1)->update($ssetting);
 }
 public function upload()
 {
     if (!isset($_GET['fieldid'])) {
         $status = array('error' => 1, 'message' => '参数有误!');
         json_encode($status);
         exit;
     }
     $_GET['fieldid'] = intval($_GET['fieldid']);
     $field = model('model_field')->where('fieldid', $_GET['fieldid'])->getOne();
     if (empty($field)) {
         $status = array('error' => 1, 'message' => '参数有误!');
         json_encode($status);
         exit;
     }
     if ($field['formtype'] == 'editor') {
         $ext_arr = array('image' => array('gif', 'jpg', 'jpeg', 'png', 'bmp'), 'flash' => array('swf', 'flv'), 'media' => array('swf', 'flv', 'mp3', 'wav', 'wma', 'wmv', 'mid', 'avi', 'mpg', 'asf', 'rm', 'rmvb'), 'file' => array('doc', 'docx', 'xls', 'xlsx', 'ppt', 'htm', 'html', 'txt', 'zip', 'rar', 'gz', 'bz2'));
     } else {
         if ($field['formtype'] == 'picture' || $field['formtype'] == 'pictures') {
             $field['setting'] = unserialize($field['setting']);
             $type = explode('|', $field['setting']['p_allow_type']);
             $ext_arr = array('image' => $type, 'flash' => array(), 'media' => array(), 'file' => array());
         } else {
             if ($field['formtype'] == 'file') {
                 $field['setting'] = unserialize($field['setting']);
                 $type = explode('|', $field['setting']['f_allow_type']);
                 $ext_arr = array('image' => array(), 'flash' => array(), 'media' => array(), 'file' => $type);
             } else {
                 $status = array('error' => 1, 'message' => '此字段不允许上传文件!');
                 echo json_encode($status);
                 exit;
             }
         }
     }
     //var_dump($field);exit;
     $save_path = __ROOT__ . Config::cms('upload_path');
     $max_size = 40000000;
     $status = array('error' => 1, 'message' => "参数不完整!");
     if (isset($_FILES['imgFile'])) {
         if (!empty($_FILES['imgFile']['error'])) {
             switch ($_FILES['imgFile']['error']) {
                 case '1':
                     $error = '超过php.ini允许的大小。';
                     break;
                 case '2':
                     $error = '超过表单允许的大小。';
                     break;
                 case '3':
                     $error = '图片只有部分被上传。';
                     break;
                 case '4':
                     $error = '请选择图片。';
                     break;
                 case '6':
                     $error = '找不到临时目录。';
                     break;
                 case '7':
                     $error = '写文件到硬盘出错。';
                     break;
                 case '8':
                     $error = 'File upload stopped by extension。';
                     break;
                 case '999':
                 default:
                     $error = '未知错误。';
             }
             $status['message'] = $error;
             unset($error);
             echo json_encode($status);
             exit;
         }
         if (empty($_FILES) === false) {
             //有上传文件
             //原文件名
             $file_name = $_FILES['imgFile']['name'];
             //服务器上临时文件名
             $tmp_name = $_FILES['imgFile']['tmp_name'];
             //文件大小
             $file_size = $_FILES['imgFile']['size'];
             //检查文件名
             if (!$file_name) {
                 $status['message'] = "请选择文件。";
                 echo json_encode($status);
                 exit;
             }
             //检查目录
             if (@is_dir($save_path) === false) {
                 $status['message'] = "上传目录不存在。";
                 echo json_encode($status);
                 exit;
             }
             //检查目录写权限
             if (@is_writable($save_path) === false) {
                 $status['message'] = "上传目录没有写权限。";
                 echo json_encode($status);
                 exit;
             }
             //检查是否已上传
             if (@is_uploaded_file($tmp_name) === false) {
                 $status['message'] = "上传失败。";
                 echo json_encode($status);
                 exit;
             }
             //检查文件大小
             if ($file_size > $max_size) {
                 $status['message'] = "上传文件大小超过限制。";
                 echo json_encode($status);
                 exit;
             }
             //检查目录名
             $dir_name = empty($_GET['dir']) ? 'image' : trim($_GET['dir']);
             if (empty($ext_arr[$dir_name])) {
                 $status['message'] = "目录名不正确。";
                 echo json_encode($status);
                 exit;
             }
             //获得文件扩展名
             $temp_arr = explode(".", $file_name);
             $file_ext = array_pop($temp_arr);
             $file_ext = trim($file_ext);
             $file_ext = strtolower($file_ext);
             //检查扩展名
             if (in_array($file_ext, $ext_arr[$dir_name]) === false) {
                 $status['message'] = "上传文件扩展名是不允许的扩展名。\n只允许" . implode(",", $ext_arr[$dir_name]) . "格式。";
                 echo json_encode($status);
                 exit;
             }
             //创建文件夹
             if ($dir_name !== '') {
                 $save_path .= $dir_name . "/";
                 $save_url = Config::cms('upload_url') . $dir_name . "/";
                 if (!file_exists($save_path)) {
                     mkdir($save_path);
                 }
             }
             $ymd = date("Ymd");
             $save_path .= $ymd . "/";
             $save_url .= $ymd . "/";
             if (!file_exists($save_path)) {
                 mkdir($save_path);
             }
             //新文件名
             $new_file_name = date("YmdHis") . '_' . rand(10000, 99999) . '.' . $file_ext;
             //移动文件
             $file_path = $save_path . $new_file_name;
             if (move_uploaded_file($tmp_name, $file_path) === false) {
                 $status['message'] = "上传文件失败。";
                 echo json_encode($status);
                 exit;
             }
             @chmod($file_path, 0644);
             $file_url = $save_url . $new_file_name;
             $attach = array('attachname' => $file_name, 'attachsize' => $file_size, 'attachtype' => $dir_name, 'attachtime' => time(), 'attachpath' => $file_url, 'userid' => $this->user['userid']);
             model('attaches')->insert($attach);
             echo json_encode(array('error' => 0, 'url' => $file_url));
             exit;
         }
     }
     echo json_encode($status);
     exit;
 }
 public function content($method = 'category', $cid = false, $id = false)
 {
     $data['SEO'] = $this->load->template()->var['SEO'];
     if ($method == 'category' || $method == 'page') {
         if ($cid == false) {
             header('HTTP/1.1 404 Not Found');
             header("status: 404 Not Found");
             echo '<script type="text/javascript" src="http://www.qq.com/404/search_children.js" charset="utf-8" homePageUrl="/index.php" homePageName="回到' . $this->setting['title'] . '"></script>';
             exit;
         } else {
             $category = module('content')->category($cid);
             if (!$category) {
                 header('HTTP/1.1 404 Not Found');
                 header("status: 404 Not Found");
                 echo '<script type="text/javascript" src="http://www.qq.com/404/search_children.js" charset="utf-8" homePageUrl="/index.php" homePageName="回到' . $this->setting['title'] . '"></script>';
                 exit;
             }
             $data['SEO']['title'] = $category['catname'] . '_' . $this->load->template()->var['SEO']['title'];
             if (isset($category['keywords'])) {
                 $data['SEO']['keywords'] = $category['keywords'] . ',' . $this->load->template()->var['SEO']['keywords'];
             }
             $data['category'] = $category;
             $data['cid'] = $category['cid'];
             foreach ($category as $key => $value) {
                 $data[$key] = $value;
             }
             //----开始编译并且设置缓存
             //echo $this->cacheKey?$cid.$this->cacheKey:$this->cacheKey;
             if ($this->cacheKey) {
                 view($category['view'], $data, Config::cms('view_cache_time'), $cid . $this->cacheKey);
             } else {
                 view($category['view'], $data);
             }
         }
     } elseif ($method == 'show') {
         if ($cid == false || $id == false) {
             header('HTTP/1.1 404 Not Found');
             header("status: 404 Not Found");
             exit;
         } else {
             $category = module('content')->category($cid);
             $content = module('content')->content($cid, $id);
             if (!$category || !$content) {
                 header('HTTP/1.1 404 Not Found');
                 header("status: 404 Not Found");
                 echo '<script type="text/javascript" src="http://www.qq.com/404/search_children.js" charset="utf-8" homePageUrl="/index.php" homePageName="回到' . $this->setting['title'] . '"></script>';
                 exit;
             }
             $data['SEO']['title'] = $content['title'] . '-' . $category['catname'] . '_' . $this->load->template()->var['SEO']['title'];
             if (isset($content['keywords'])) {
                 $data['SEO']['keywords'] = $content['keywords'] . ',' . $this->load->template()->var['SEO']['keywords'];
             }
             $data['category'] = $category;
             foreach ($content as $key => $value) {
                 $data[$key] = $value;
             }
             $data['id'] = $content['id'];
             $data['cid'] = $category['cid'];
             $data['previous'] = Module('content')->previousContent($cid, $id);
             $data['next'] = Module('content')->nextContent($cid, $id);
             //----开始编译并且设置缓存
             if ($this->cacheKey) {
                 view($content['template'], $data, Config::cms('view_cache_time'), $cid . '-' . $id . $this->cacheKey);
             } else {
                 view($content['template'], $data);
             }
         }
     } else {
         header('HTTP/1.1 404 Not Found');
         header("status: 404 Not Found");
         echo '<script type="text/javascript" src="http://www.qq.com/404/search_children.js" charset="utf-8" homePageUrl="/index.php" homePageName="回到我的主页"></script>';
         exit;
     }
 }
 /**
  * @param $type 要清理的缓存存放的空间
  */
 public function flush_cache($type)
 {
     //可以以后再加
     $cachetype = array('db', 'view_c', 'admin', 'cms');
     if ($type == 'db') {
         echo '正在清理数据库缓存。。。。。。<br>';
         ob_flush();
         flush();
         echo (cache::flush(Config::database('cache_dir')) ? '后台数据库缓存清理完成。' : '后台数据库缓存清理失败!') . '<br>';
         ob_flush();
         flush();
     } else {
         if ($type == 'view_c') {
             echo '正在清理后台模板缓存。。。。。。<br>';
             ob_flush();
             flush();
             echo (cache::flush(Config::template('view_c_dir')) ? '后台数据库缓存清理完成。' : '后台数据库缓存清理失败!') . '<br>';
             ob_flush();
             flush();
             echo '正在清理前台缓存。。。。。。<br/>';
             ob_flush();
             flush();
             echo (cache::flush(Config::cms('cms_app_name')) ? '前台缓存清理完成。' : '前台缓存清理失败!') . '<br>';
             ob_flush();
             flush();
         } else {
             if ($type == 'admin') {
                 echo '正在清理后台缓存。。。。。。<br>';
                 ob_flush();
                 flush();
                 echo (cache::flush('admin') ? '后台缓存清理完成。' : '后台缓存清理失败!') . '<br>';
                 ob_flush();
                 flush();
             } else {
                 if ($type == 'all') {
                     foreach ($cachetype as $type) {
                         $this->flush_cache($type);
                     }
                     echo '缓存清理完毕!';
                 }
             }
         }
     }
 }
Exemple #6
0
    }
    if ($rename && $target && rename($target, $rename)) {
        $arr['new_name'] = $base_name;
        $arr['new_path'] = $new_path;
        $arr['msg'] = '重命名操作成功!';
        $arr['result'] = 'success';
    }
    if ($target == __FILE__) {
        $arr['redirect'] = $new_path;
    }
    die(json_encode($arr));
}
//获取代码文件内容
$code = file_get_contents($curr_file);
$tree = '<ul id="dir_tree">
	<li class="dir" path="' . $curr_file . '" onclick="load()">' . Config::cms('view_name') . list_dir($curr_file, 'html') . '</li>
</ul>';
//登陆和设置密码共用模版
$first = <<<HTMLSTR
<!DOCTYPE html>
<html><head><meta charset="UTF-8">
<title>【标题】</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<style type="text/css" media="screen">
body {
\toverflow: hidden;background-color:#f9f9ff; color: #444; font-size: 12px; margin: 0;
\tfont-family: 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace;
}
form { display: none; position: absolute; }
form h5 { font-size: 14px; font-weight: normal; margin: 0; line-height: 2em; }
form input {
                    <div style="controls">
                        <textarea name="description" class="control-text input-large"
                                  style="height:90px;margin:10px;margin-top: 0px"><?php 
echo isset($description) ? $description : $this->var['description'];
?>
</textarea>
                    </div>
                </div>
            </div>
            <div style="clear: both;"></div>
            <div class="row">
                <div class="control-group span24">
                    <label class="control-label">静态缓存开关:</label>
                    <div class="controls">
                        <select name="view_cache" id="" val="<?php 
echo Config::cms('view_cache');
?>
" style="width:80px">
                            <option value="0">关闭</option>
                            <option value="1">开启</option>
                        </select>
                    </div>
                </div>
            </div>
            <div class="row">
                <div class="control-group span24">
                    <label class="control-label">静态缓存时间(秒):</label>
                    <div class="controls">
                        <input type="number" name="view_cache_time" class="control-text" value="<?php 
echo config::cms('view_cache_time');
?>