tpl = TEMPLATE . 'editor/'; } // 多文件编辑器 public function index(){ $this->display('editor.php'); } // 单文件编辑 public function edit(){ $this->assign('editor_config',$this->getConfig());//获取编辑器配置信息 $this->display('edit.php'); } // 获取文件数据 public function fileGet(){ $filename=_DIR($this->in['filename']); if (!is_readable($filename)) show_json($this->L['no_permission'],false); if (filesize($filename) >= 1024*1024*20) show_json($this->L['edit_too_big'],false); $filecontents=file_get_contents($filename);//文件内容 $charset=$this->_get_charset($filecontents); if ($charset!='' || $charset!='utf-8') { $filecontents=mb_convert_encoding($filecontents,'utf-8',$charset); } $data = array( 'ext' => get_path_ext($filename), 'name' => iconv_app(get_path_this($filename)), 'filename' => rawurldecode($this->in['filename']), 'charset' => $charset, 'content' => $filecontents ); show_json($data); } public function fileSave(){ $filestr = rawurldecode($this->in['filestr']); $charset = $this->in['charset']; $path =_DIR($this->in['path']); if (!is_writable($path)) show_json($this->L['no_permission_write'],false); if ($charset !='' || $charset != 'utf-8') { $filestr=mb_convert_encoding($filestr,$this->in['charset'],'utf-8'); } $fp=fopen($path,'wb'); fwrite($fp,$filestr); fclose($fp); show_json($this->L['save_success']); } /* * 获取编辑器配置信息 */ public function getConfig(){ $default = array( 'font_size' => '14px', 'theme' => 'github', 'auto_wrap' => 0, 'display_char' => 0, 'auto_complete' => 1 ); $config_file = USER.'data/editor_config.php'; if (!file_exists($config_file)) {//不存在则创建 $sql=new fileCache($config_file); $sql->reset($default); }else{ $sql=new fileCache($config_file); $default = $sql->get(); } return json_encode($default); } /* * 获取编辑器配置信息 */ public function setConfig(){ $key = $this->in['k'];$value = $this->in['v']; if ($key !='' && $value != '') { $config_file = USER.'data/editor_config.php'; $sql=new fileCache($config_file); $default = $sql->update($key,$value); show_json($this->L["setting_success"]); }else{ show_json($this->L['error'],false); } } //----------------------------------------------- /* * 获取字符串编码 * @param:$ext 传入字符串 */ private function _get_charset(&$str) { if ($str == '') return 'utf-8'; //前面检测成功则,自动忽略后面 $charset=strtolower(mb_detect_encoding($str,$this->config['check_charset'])); if (substr($str,0,3)==chr(0xEF).chr(0xBB).chr(0xBF)){ $charset='utf-8'; }else if($charset=='cp936'){ $charset='gbk'; } if ($charset == 'ascii') $charset = 'utf-8'; return strtolower($charset); } }