Changeset 1056462
- Timestamp:
- 12/29/2014 07:25:55 PM (11 years ago)
- Location:
- gmace/trunk
- Files:
-
- 4 edited
-
gmace.php (modified) (1 diff)
-
includes/ace.php (modified) (4 diffs)
-
includes/editor.php (modified) (1 diff)
-
readme.txt (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
gmace/trunk/gmace.php
r1055988 r1056462 4 4 Plugin URI: http://wordpress.org/plugins/gmace/ 5 5 Description: Свободный PHP-редактор кода Wordpress 6 Version: 1.3 6 Version: 1.3.1 7 7 Author: German Mesky 8 8 Author URI: http://vk.com/false_coder -
gmace/trunk/includes/ace.php
r1055988 r1056462 1 1 <?php 2 2 if($_POST){ 3 if($_POST['file']){ 4 $ace = new GMAce(""); 5 fpassthru(fopen($ace->get_real_back().$_POST['file'],'r')); 6 exit; 7 }elseif($_POST['refile']){ 8 $ace = new GMAce(""); 9 $file = fopen($ace->get_real_back().$_POST['refile'],'w'); 10 fputs($file,$_POST['content']); 11 exit; 12 }elseif($_POST['property_file']){ 13 $ace = new GMAce(""); 14 15 $dir = $ace->get_real_back(); 16 17 if($_POST['file_name']=="www"){ 18 $dir.="../www"; 19 $href = "/"; 20 }else{ 21 $dir.= ($_POST['file_dir']?substr($_POST['file_dir'], 1)."/":"").$_POST['file_name']; 22 $href = ($_POST['file_dir']."/".$_POST['file_name']); 23 } 24 25 if(filetype($dir) == "dir"){ 26 $size = dirsize($dir); 27 }else{ 28 $size = filesize($dir); 29 } 30 if($size>=1024){ 31 $size/=1024; 32 if($size>=1024){ 33 $size/=1024; 34 if($size>=1024){ 35 $size/=1024; 36 if($size>=1024) 37 $size/=1024; 38 else $size = round($size, 1)." гб"; 39 }else $size = round($size, 1)." мб"; 40 }else $size = round($size, 1)." кб"; 41 }else $size = round($size, 1)." б"; 42 43 if(filetype($dir) == "dir"){ 44 print("<p><b>Директория: </b>$href</p>\n"); 45 print("<p><b>Размер каталога: </b>".$size."</p>\n"); 46 print("<p><b>Тип объекта: </b><span>Папка с файлами</span></p>\n"); 47 }else{ 48 print("<p> 49 <b>Директория файла: </b> 50 <a target='_blank' href='$href'>$href</a> 51 </p>\n"); 52 print("<p><b>Размер файла: </b>".$size."</p>\n"); 53 print("<p class='date'><b>Время последней модификации файла: </b>".date("j F Y (l) h:i:s", filemtime($dir))."</p>\n"); 54 print("<p class='date'><b>Время последнего обращения к файлу: </b>".date("j F Y (l) h:i:s", fileatime($dir))."</p>\n"); 55 print("<p><b>Тип объекта: </b><span>".filetype($dir)."</span></p>\n"); 56 } 57 exit; 58 }elseif($_POST['rename_delete_action']){ 59 $ace = new GMAce(""); 60 61 if($_POST['file_name']=="www") 62 $dir.="../www/"; 63 else 64 $dir.= substr($_POST['file_dir'], 1)."/"; 65 66 if($_POST['rename_delete_action']=="rename" && rename($ace->get_real_back().$dir.$_POST['file_name'], $ace->get_real_back().$dir.$_POST['rename_file'])){ 67 print($ace->scaning_dir("/www".$_POST['file_dir'], false)); 68 }elseif($_POST['rename_delete_action']=="delete"){ 69 if(filetype($ace->get_real_back().$dir.$_POST['file_name'])=="dir"){ 70 if(dir_unlink($ace->get_real_back().$dir.$_POST['file_name'])) 71 print($ace->scaning_dir("/www".$_POST['file_dir'], false)); 72 else print("error"); 73 }else{ 74 if(unlink($ace->get_real_back().$dir.$_POST['file_name'])) 75 print($ace->scaning_dir("/www".$_POST['file_dir'], false)); 76 else print("error"); 77 } 78 }else print("error"); 79 exit; 80 }elseif($_POST['action_for_file']){ 81 $ace = new GMAce(""); 82 83 if($_POST['dir']=="/www"){ 84 $scandir = "/www"; 85 $dir.=""; 86 }else{ 87 $scandir = "/www".$_POST['dir']; 88 $dir.= substr($_POST['dir'], 1)."/"; 89 } 90 91 if(($_POST['action_for_file']=="folder" && mkdir($ace->get_real_back().$dir.$_POST['name'])) || 92 ($_POST['action_for_file']=="file" && fopen($ace->get_real_back().$dir.$_POST['name'], "w"))) 93 print($ace->scaning_dir($scandir, false)); 94 else print("error"); 95 exit; 96 }elseif($_POST['action_paste']){ 97 $ace = new GMAce(""); 98 99 if($_POST['file_dir']=="www"){ 100 $dirFrom.="../www"; 101 $dirTo.="../www"; 102 }else{ 103 $dirFrom.= substr($_POST['obj_to_paste'], 1); 104 $dirTo.= substr($_POST['file_dir'], 1); 105 } 106 107 if(filetype($ace->get_real_back().$dirFrom)=="dir"){ 108 if(dir_move($ace->get_real_back().$dirFrom, $ace->get_real_back().$dirTo, $_POST['action_paste']=="cut")) 109 print($ace->scaning_dir("/www".$_POST['file_dir'], false)); 110 else print("error"); 111 }else{ 112 if(copy($ace->get_real_back().$dirFrom, $ace->get_real_back().$dirTo."/".basename($dirFrom))){ 113 if($_POST['action_paste']=="cut") 114 unlink($ace->get_real_back().$dirFrom); 115 print($ace->scaning_dir("/www".$_POST['file_dir'], false)); 116 } 117 else print("error"); 118 } 119 exit; 120 } 121 } 122 //----/wp-admin/css 123 //----/wp-content/css/cache 3 if($_POST['file']){ 4 $ace = new GMAce(""); 5 include($ace->get_real_back()."wp-admin/admin.php"); 6 if(!is_user_logged_in()) 7 exit; 8 fpassthru(fopen($ace->get_real_back().$_POST['file'],'r')); 9 exit; 10 }elseif($_POST['refile']){ 11 $ace = new GMAce(""); 12 include($ace->get_real_back()."wp-admin/admin.php"); 13 if(!is_user_logged_in()) 14 exit; 15 $file = fopen($ace->get_real_back().$_POST['refile'],'w'); 16 fputs($file,stripslashes($_POST['content'])); 17 exit; 18 }elseif($_POST['property_file']){ 19 $ace = new GMAce(""); 20 include($ace->get_real_back()."wp-admin/admin.php"); 21 if(!is_user_logged_in()) 22 exit; 23 $dir = $ace->get_real_back(); 24 25 if($_POST['file_name']=="www"){ 26 $dir.="../www"; 27 $href = "/"; 28 }else{ 29 $dir.= ($_POST['file_dir']?substr($_POST['file_dir'], 1)."/":"").$_POST['file_name']; 30 $href = ($_POST['file_dir']."/".$_POST['file_name']); 31 } 32 33 if(filetype($dir) == "dir"){ 34 $size = dirsize($dir); 35 }else{ 36 $size = filesize($dir); 37 } 38 if($size>=1024){ 39 $size/=1024; 40 if($size>=1024){ 41 $size/=1024; 42 if($size>=1024){ 43 $size/=1024; 44 if($size>=1024) 45 $size/=1024; 46 else $size = round($size, 1)." гб"; 47 }else $size = round($size, 1)." мб"; 48 }else $size = round($size, 1)." кб"; 49 }else $size = round($size, 1)." б"; 50 51 if(filetype($dir) == "dir"){ 52 print("<p><b>Директория: </b>$href</p>\n"); 53 print("<p><b>Размер каталога: </b>".$size."</p>\n"); 54 print("<p><b>Тип объекта: </b><span>Папка с файлами</span></p>\n"); 55 }else{ 56 print("<p> 57 <b>Директория файла: </b> 58 <a target='_blank' href='$href'>$href</a> 59 </p>\n"); 60 print("<p><b>Размер файла: </b>".$size."</p>\n"); 61 print("<p class='date'><b>Время последней модификации файла: </b>".date("j F Y (l) h:i:s", filemtime($dir))."</p>\n"); 62 print("<p class='date'><b>Время последнего обращения к файлу: </b>".date("j F Y (l) h:i:s", fileatime($dir))."</p>\n"); 63 print("<p><b>Тип объекта: </b><span>".filetype($dir)."</span></p>\n"); 64 } 65 exit; 66 }elseif($_POST['rename_delete_action']){ 67 $ace = new GMAce(""); 68 include($ace->get_real_back()."wp-admin/admin.php"); 69 if(!is_user_logged_in()) 70 exit; 71 if($_POST['file_name']=="www") 72 $dir.="../www/"; 73 else 74 $dir.= substr($_POST['file_dir'], 1)."/"; 75 76 if($_POST['rename_delete_action']=="rename" && rename($ace->get_real_back().$dir.$_POST['file_name'], $ace->get_real_back().$dir.$_POST['rename_file'])){ 77 print($ace->scaning_dir("/www".$_POST['file_dir'], false)); 78 }elseif($_POST['rename_delete_action']=="delete"){ 79 if(filetype($ace->get_real_back().$dir.$_POST['file_name'])=="dir"){ 80 if(dir_unlink($ace->get_real_back().$dir.$_POST['file_name'])) 81 print($ace->scaning_dir("/www".$_POST['file_dir'], false)); 82 else print("error"); 83 }else{ 84 if(unlink($ace->get_real_back().$dir.$_POST['file_name'])) 85 print($ace->scaning_dir("/www".$_POST['file_dir'], false)); 86 else print("error"); 87 } 88 }else print("error"); 89 exit; 90 }elseif($_POST['action_for_file']){ 91 $ace = new GMAce(""); 92 include($ace->get_real_back()."wp-admin/admin.php"); 93 if(!is_user_logged_in()) 94 exit; 95 if($_POST['dir']=="/www"){ 96 $scandir = "/www"; 97 $dir.=""; 98 }else{ 99 $scandir = "/www".$_POST['dir']; 100 $dir.= substr($_POST['dir'], 1)."/"; 101 } 102 103 if(($_POST['action_for_file']=="folder" && mkdir($ace->get_real_back().$dir.$_POST['name'])) || 104 ($_POST['action_for_file']=="file" && fopen($ace->get_real_back().$dir.$_POST['name'], "w"))) 105 print($ace->scaning_dir($scandir, false)); 106 else print("error"); 107 exit; 108 }elseif($_POST['action_paste']){ 109 $ace = new GMAce(""); 110 include($ace->get_real_back()."wp-admin/admin.php"); 111 if(!is_user_logged_in()) 112 exit; 113 if($_POST['file_dir']=="www"){ 114 $dirFrom.="../www"; 115 $dirTo.="../www"; 116 }else{ 117 $dirFrom.= substr($_POST['obj_to_paste'], 1); 118 $dirTo.= substr($_POST['file_dir'], 1); 119 } 120 121 if(filetype($ace->get_real_back().$dirFrom)=="dir"){ 122 if(dir_move($ace->get_real_back().$dirFrom, $ace->get_real_back().$dirTo, $_POST['action_paste']=="cut")) 123 print($ace->scaning_dir("/www".$_POST['file_dir'], false)); 124 else print("error"); 125 }else{ 126 if(copy($ace->get_real_back().$dirFrom, $ace->get_real_back().$dirTo."/".basename($dirFrom))){ 127 if($_POST['action_paste']=="cut") 128 unlink($ace->get_real_back().$dirFrom); 129 print($ace->scaning_dir("/www".$_POST['file_dir'], false)); 130 } 131 else print("error"); 132 } 133 exit; 134 } 135 } 136 124 137 function dir_move($dirFrom, $dirTo, $flag){ 125 $errors = 0;126 $dirTo.="/".basename($dirFrom)."/";127 if(!file_exists($dirTo))128 mkdir($dirTo);129 foreach(scandir($dirFrom) as $index=>$val){130 if(filetype($dirFrom."/".$val)=="dir"){131 if($val!="." & $val!=".."){132 dir_move($dirFrom."/".$val, $dirTo, $flag);133 }134 }else{135 copy($dirFrom."/".$val, $dirTo.$val);136 }137 }138 if($flag)139 dir_unlink($dirFrom);140 return $errors==0;138 $errors = 0; 139 $dirTo.="/".basename($dirFrom)."/"; 140 if(!file_exists($dirTo)) 141 mkdir($dirTo); 142 foreach(scandir($dirFrom) as $index=>$val){ 143 if(filetype($dirFrom."/".$val)=="dir"){ 144 if($val!="." & $val!=".."){ 145 dir_move($dirFrom."/".$val, $dirTo, $flag); 146 } 147 }else{ 148 copy($dirFrom."/".$val, $dirTo.$val); 149 } 150 } 151 if($flag) 152 dir_unlink($dirFrom); 153 return $errors==0; 141 154 } 142 155 function dir_unlink($dir){ 143 $errors = 0;144 foreach(scandir($dir) as $index=>$val){145 if(filetype($dir."/".$val)=="dir"){146 if($val!="." & $val!=".."){147 dir_unlink($dir."/".$val);148 }149 }else{150 if(!unlink($dir."/".$val))151 $errors++;152 }153 }154 if(!rmdir($dir))155 $errors++;156 return $errors==0;156 $errors = 0; 157 foreach(scandir($dir) as $index=>$val){ 158 if(filetype($dir."/".$val)=="dir"){ 159 if($val!="." & $val!=".."){ 160 dir_unlink($dir."/".$val); 161 } 162 }else{ 163 if(!unlink($dir."/".$val)) 164 $errors++; 165 } 166 } 167 if(!rmdir($dir)) 168 $errors++; 169 return $errors==0; 157 170 } 158 171 function dirsize($dir){ 159 $total_size;160 foreach(scandir($dir) as $index=>$val){161 if(filetype($dir."/".$val)=="dir"){162 if($val!="." & $val!=".."){163 $total_size+=dirsize($dir."/".$val);164 }165 }else{166 $total_size+=filesize($dir."/".$val);167 }168 }169 return $total_size;172 $total_size; 173 foreach(scandir($dir) as $index=>$val){ 174 if(filetype($dir."/".$val)=="dir"){ 175 if($val!="." & $val!=".."){ 176 $total_size+=dirsize($dir."/".$val); 177 } 178 }else{ 179 $total_size+=filesize($dir."/".$val); 180 } 181 } 182 return $total_size; 170 183 } 171 184 … … 179 192 180 193 function GMAce($theme){ 181 $this->BACK_G_DIR = $this->get_real_back();194 $this->BACK_G_DIR = $this->get_real_back(); 182 195 $this->SCAN_DIR = "../".$this->BACK_G_DIR; 183 196 $this->TYPE = "ul"; 184 197 $this->THEME = $theme; 185 198 if(!IS_WP) 186 $this->G_DIR = $this->get_real_path().GMACE_DIR;199 $this->G_DIR = $this->get_real_path().GMACE_DIR; 187 200 else 188 $this->G_DIR = str_replace(basename(GMACE_URL)."/", basename(GMACE_URL), GMACE_URL);201 $this->G_DIR = str_replace(basename(GMACE_URL)."/", basename(GMACE_URL), GMACE_URL); 189 202 190 203 } … … 192 205 //CALL IN <HEAD> 193 206 function scripts($dir){ 194 $dir.="/assets";207 $dir.="/assets"; 195 208 print("<link rel='stylesheet' href='$dir/css/style.css'>"); 196 209 if(!IS_WP){ 197 print("<script src='$dir/js/jquery.js'></script>");210 print("<script src='$dir/js/jquery.js'></script>"); 198 211 } 199 212 print("<script src='$dir/js/scripts.js'></script>"); … … 207 220 208 221 function scaning_dir($dir, $flag){ 209 if($dir == "/")210 $dir = "";222 if($dir == "/") 223 $dir = ""; 211 224 $fd="<ul class='scandir_ul' data-dir-folder='".str_replace("/www", "", $dir)."'>"; 212 $folders;213 $folder_id=0;214 $files;215 $file_id=0;216 foreach(scandir($this->SCAN_DIR.substr($dir, 1)) as $index=>$val){217 if(filetype($this->SCAN_DIR.substr($dir, 1)."/".$val)=="dir"){218 if($val!="."&$val!=".."){219 $folders[$folder_id]=$val;220 $folder_id++;221 }222 }else{223 $files[$file_id]=$val;224 $file_id++;225 }226 }227 228 //------SORT-------229 for($i=0;$i<$folder_id;$i++){230 $fd.="<div><li class='scandir_span'><span>$folders[$i]</span></li>";231 $fd.=$this->scaning_dir($dir."/".$folders[$i], true);232 }233 for($i=0;$i<$file_id;$i++){234 $bg=$this->get_type_file($files[$i]);235 $fd.="<li class='icon' type='$bg'><a>$files[$i]</a></li>";236 }237 $fd.="</ul>";238 if($flag)239 $fd.="</div>";240 241 return $fd;225 $folders; 226 $folder_id=0; 227 $files; 228 $file_id=0; 229 foreach(scandir($this->SCAN_DIR.substr($dir, 1)) as $index=>$val){ 230 if(filetype($this->SCAN_DIR.substr($dir, 1)."/".$val)=="dir"){ 231 if($val!="."&$val!=".."){ 232 $folders[$folder_id]=$val; 233 $folder_id++; 234 } 235 }else{ 236 $files[$file_id]=$val; 237 $file_id++; 238 } 239 } 240 241 //------SORT------- 242 for($i=0;$i<$folder_id;$i++){ 243 $fd.="<div><li class='scandir_span'><span>$folders[$i]</span></li>"; 244 $fd.=$this->scaning_dir($dir."/".$folders[$i], true); 245 } 246 for($i=0;$i<$file_id;$i++){ 247 $bg=$this->get_type_file($files[$i]); 248 $fd.="<li class='icon' type='$bg'><a>$files[$i]</a></li>"; 249 } 250 $fd.="</ul>"; 251 if($flag) 252 $fd.="</div>"; 253 254 return $fd; 242 255 } 243 256 function file_format($filename,$file_formats){ 244 $format=substr($filename,strrpos($filename,".")+1);245 for($j=0;$j<count($file_formats);$j++)246 if($format==$file_formats[$j])247 return true;248 return false;249 }257 $format=substr($filename,strrpos($filename,".")+1); 258 for($j=0;$j<count($file_formats);$j++) 259 if($format==$file_formats[$j]) 260 return true; 261 return false; 262 } 250 263 function get_type_file($file){ 251 if($this->file_format($file,array("jpg","jpeg","png","gif","ico"))){252 $bg="img";253 }elseif($this->file_format($file,array("js","json"))){254 $bg="js";255 }elseif($this->file_format($file,array("php"))){256 $bg="php";257 }elseif($this->file_format($file,array("html","htm"))){258 $bg="html";259 }elseif($this->file_format($file,array("css"))){260 $bg="css";261 }elseif($this->file_format($file,array("mp3","ogg","mp4","aac","wav"))){262 $bg="voice";263 }elseif($this->file_format($file,array("txt","htaccess"))){264 $bg="text";265 }elseif($this->file_format($file,array("java"))){266 $bg="java";267 }elseif($this->file_format($file,array("py"))){268 $bg="python";269 }elseif($this->file_format($file,array("zip","rar","7z","gzip","iso"))){270 $bg="archive";271 }else{272 $bg="unknown";273 }274 return $bg;264 if($this->file_format($file,array("jpg","jpeg","png","gif","ico"))){ 265 $bg="img"; 266 }elseif($this->file_format($file,array("js","json"))){ 267 $bg="js"; 268 }elseif($this->file_format($file,array("php"))){ 269 $bg="php"; 270 }elseif($this->file_format($file,array("html","htm"))){ 271 $bg="html"; 272 }elseif($this->file_format($file,array("css"))){ 273 $bg="css"; 274 }elseif($this->file_format($file,array("mp3","ogg","mp4","aac","wav"))){ 275 $bg="voice"; 276 }elseif($this->file_format($file,array("txt","htaccess"))){ 277 $bg="text"; 278 }elseif($this->file_format($file,array("java"))){ 279 $bg="java"; 280 }elseif($this->file_format($file,array("py"))){ 281 $bg="python"; 282 }elseif($this->file_format($file,array("zip","rar","7z","gzip","iso"))){ 283 $bg="archive"; 284 }else{ 285 $bg="unknown"; 286 } 287 return $bg; 275 288 } 276 289 function get_real_path(){ 277 return str_replace(basename($_SERVER['SCRIPT_NAME']),"",$_SERVER['SCRIPT_NAME']);290 return str_replace(basename($_SERVER['SCRIPT_NAME']),"",$_SERVER['SCRIPT_NAME']); 278 291 } 279 292 function get_real_back(){ 280 return str_repeat("../", substr_count($this->get_real_path(), "/")-1);293 return str_repeat("../", substr_count($this->get_real_path(), "/")-1); 281 294 } 282 295 } -
gmace/trunk/includes/editor.php
r1054491 r1056462 8 8 9 9 $ace = new GMAce($settings->getTheme()); 10 10 11 if(!function_exists("is_user_logged_in") || !is_user_logged_in()) 12 exit; 13 11 14 $ace->scripts(GMACE_URL); 12 15 $ace->build_editor(); -
gmace/trunk/readme.txt
r1056400 r1056462 4 4 Requires at least: 4.0 5 5 Tested up to: 4.1 6 Stable tag: 1.3 6 Stable tag: 1.3.1 7 7 License: GNU 8 8 License URI: license.txt … … 33 33 34 34 == Changelog == 35 36 = 1.3.1 = 37 * Redesigned protection against malicious packages POST 38 * Fixed a bug where if the directive magic_quotes_gpc files are not recorded correctly 35 39 36 40 = 1.3 =
Note: See TracChangeset
for help on using the changeset viewer.