/Inc/Lib/ORG/Net/Keditor.class.php
PHP | 233 lines | 185 code | 13 blank | 35 comment | 49 complexity | f7a351cf904bc0a88937ee24d6970985 MD5 | raw file
Possible License(s): Apache-2.0, BSD-3-Clause, LGPL-2.1
- <?php
- /*
- * +---------------------------
- * kindeitor????
- * ??:??
- * ???luofei614@126.com
- * ???www.3g4k.com
- * +---------------------------
- */
- class Keditor extends Think {
- public $jspath = "/Public/editor/kindeditor.js";
- protected $config = array ();
- public $form = "form1";
- public function show($config = "") {
- static $incjs = false;
- if (! $incjs) {
- $result = "<script charset='utf-8' src='{$this->jspath}'></script>";
- $incjs = true;
- }
- if (empty ( $config )) {
- $config = implode ( ",", $this->config );
- $config = "{{$config}}";
- }
- $result .= "<script>KE.show({$config});</script>";
-
- return $result;
- }
-
- public static function upload($save_path = './Public/Upload/', $save_url = '/Public/Upload/', $ext_arr = array('gif', 'jpg', 'jpeg', 'png', 'bmp'), $max_size = 1000000) {
- import ( "ORG.Net.JSON" );
- //??????
- function alert($msg) {
- header ( 'Content-type: text/html; charset=UTF-8' );
- $json = new Services_JSON ();
- echo $json->encode ( array ('error' => 1, 'message' => $msg ) );
- exit ();
- }
- if (empty ( $_FILES ) === false) {
- //????
- $file_name = $_FILES ['imgFile'] ['name'];
- //?????????
- $tmp_name = $_FILES ['imgFile'] ['tmp_name'];
- //????
- $file_size = $_FILES ['imgFile'] ['size'];
- //?????
- if (! $file_name) {
- alert ( "??????" );
- }
- //????
- if (@is_dir ( $save_path ) === false) {
- alert ( "????????".$save_path );
- }
- //???????
- if (@is_writable ( $save_path ) === false) {
- alert ( "??????????" );
- }
- //???????
- if (@is_uploaded_file ( $tmp_name ) === false) {
- alert ( "?????????????" );
- }
- //??????
- if ($file_size > $max_size) {
- alert ( "???????????" );
- }
- //???????
- $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 ) === false) {
- alert ( "????????????????" );
- }
- //????
- $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) {
- alert ( "???????" );
- }
- @chmod ( $file_path, 0644 );
- $file_url = $save_url . $new_file_name;
- $imgid = $save_path . $new_file_name;
- header ( 'Content-type: text/html; charset=UTF-8' );
- //$json = new Services_JSON ();
- //echo $json->encode ( array ('error' => 0, 'url' => $file_url, 'imgid' => $imgid ) );
- $all_info=array();
- $all_info['return']=array ('error' => 0, 'url' => $file_url, 'imgid' => $imgid );
- $all_info['file']['save_path']=$save_path;
- $all_info['file']['save_url']=$save_url;
- $all_info['file']['new_file_name']=$new_file_name;
- return $all_info;
- //exit ();
- }
-
- }
-
- public static function filemanager($root_path = "/Public/Upload/", $root_url = "/Public/Upload/", $ext_arr = array('gif', 'jpg', 'jpeg', 'png', 'bmp')) {
- import ( "ORG.Net.JSON" );
- if (empty ( $_GET ['path'] )) {
- $current_path = realpath ( $root_path ) . '/';
- $current_url = $root_url;
- $current_dir_path = '';
- $moveup_dir_path = '';
- } else {
- $current_path = realpath ( $root_path ) . '/' . $_GET ['path'];
- $current_url = $root_url . $_GET ['path'];
- $current_dir_path = $_GET ['path'];
- $moveup_dir_path = preg_replace ( '/(.*?)[^\/]+\/$/', '$1', $current_dir_path );
- }
- //?????name or size or type
- $order = empty ( $_GET ['order'] ) ? 'name' : strtolower ( $_GET ['order'] );
-
- //?????..????????
- if (preg_match ( '/\.\./', $current_path )) {
- echo 'Access is not allowed.';
- exit ();
- }
- //????????/
- if (! preg_match ( '/\/$/', $current_path )) {
- echo 'Parameter is not valid.';
- exit ();
- }
- //??????????
- if (! file_exists ( $current_path ) || ! is_dir ( $current_path )) {
- echo 'Directory does not exist.';
- exit ();
- }
-
- //??????????
- $file_list = array ();
- if ($handle = opendir ( $current_path )) {
- $i = 0;
- while ( false !== ($filename = readdir ( $handle )) ) {
- if ($filename {0} == '.')
- continue;
- $file = $current_path . $filename;
- if (is_dir ( $file )) {
- $file_list [$i] ['is_dir'] = true; //?????
- $file_list [$i] ['has_file'] = (count ( scandir ( $file ) ) > 2); //?????????
- $file_list [$i] ['filesize'] = 0; //????
- $file_list [$i] ['is_photo'] = false; //????
- $file_list [$i] ['filetype'] = ''; //???????????
- } else {
- $file_list [$i] ['is_dir'] = false;
- $file_list [$i] ['has_file'] = false;
- $file_list [$i] ['filesize'] = filesize ( $file );
- $file_list [$i] ['dir_path'] = '';
- $file_ext = strtolower ( array_pop ( explode ( '.', trim ( $file ) ) ) );
- $file_list [$i] ['is_photo'] = in_array ( $file_ext, $ext_arr );
- $file_list [$i] ['filetype'] = $file_ext;
- }
- $file_list [$i] ['filename'] = $filename; //?????????
- $file_list [$i] ['datetime'] = date ( 'Y-m-d H:i:s', filemtime ( $file ) ); //????????
- $i ++;
- }
- closedir ( $handle );
- }
- function cmp_func($a, $b) {
- global $order;
- if ($a ['is_dir'] && ! $b ['is_dir']) {
- return - 1;
- } else if (! $a ['is_dir'] && $b ['is_dir']) {
- return 1;
- } else {
- if ($order == 'size') {
- if ($a ['filesize'] > $b ['filesize']) {
- return 1;
- } else if ($a ['filesize'] < $b ['filesize']) {
- return - 1;
- } else {
- return 0;
- }
- } else if ($order == 'type') {
- return strcmp ( $a ['filetype'], $b ['filetype'] );
- } else {
- return strcmp ( $a ['filename'], $b ['filename'] );
- }
- }
- }
-
- usort ( $file_list, 'cmp_func' );
-
- $result = array ();
- //????????????
- $result ['moveup_dir_path'] = $moveup_dir_path;
- //???????????
- $result ['current_dir_path'] = $current_dir_path;
- //?????URL
- $result ['current_url'] = $current_url;
- //???
- $result ['total_count'] = count ( $file_list );
- //??????
- $result ['file_list'] = $file_list;
-
- //??JSON???
- header ( 'Content-type: application/json; charset=UTF-8' );
- $json = new Services_JSON ();
- echo $json->encode ( $result );
-
- }
-
- public static function delimg($imgfield) {
- $imgs = explode ( "|", $imgfield );
- for($i = 0; $i <= count ( $imgs ) - 2; $i ++) {
- @(unlink ( $imgs [$i] ));
- }
- }
-
- public function __set($name, $value) {
- if (strpos ( $value, "function" ) === FALSE and strpos ( $value, "[" ) === FALSE and ! is_int ( $value )) {
- if (is_bool ( $value )) {
- $val = $value ? "true" : "false";
- } else {
- $val = "'{$value}'";
- }
- } else {
- $val = $value;
- }
- if ($name == "items" and $value == "little") { //????
- $val = "['fontname', 'fontsize', '|', 'textcolor', 'bgcolor', 'bold', 'italic', 'underline','removeformat', '|', 'justifyleft', 'justifycenter', 'justifyright', 'insertorderedlist','insertunorderedlist', '|', 'emoticons', 'image', 'link']
- ";
- }
- if ($name == "afterCreate" and $value == "ctrlenter") { //ctrenter????
- $val = "function(id){KE.event.ctrl(document, 13, function() {KE.util.setData(id);document.forms['{$this->form}'].submit();});KE.event.ctrl(KE.g[id].iframeDoc, 13, function() {KE.util.setData(id);document.forms['{$this->form}'].submit();}); }";
- }
- $this->config [$name] = "{$name}:{$val}";
- }
- public function __get($name) {
- return $this->config [$name];
- }
-
- }