Plugin Directory

Changeset 1056462


Ignore:
Timestamp:
12/29/2014 07:25:55 PM (11 years ago)
Author:
GMDragonX
Message:

update plugin to version 1.3.1

Location:
gmace/trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • gmace/trunk/gmace.php

    r1055988 r1056462  
    44    Plugin URI: http://wordpress.org/plugins/gmace/
    55    Description: Свободный PHP-редактор кода Wordpress
    6     Version: 1.3
     6    Version: 1.3.1
    77    Author: German Mesky
    88    Author URI: http://vk.com/false_coder
  • gmace/trunk/includes/ace.php

    r1055988 r1056462  
    11<?php
    22    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   
    124137function 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;
    141154}
    142155function 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;
    157170}
    158171function 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;
    170183}
    171184
     
    179192   
    180193    function GMAce($theme){
    181         $this->BACK_G_DIR = $this->get_real_back();
     194        $this->BACK_G_DIR = $this->get_real_back();
    182195        $this->SCAN_DIR = "../".$this->BACK_G_DIR;
    183196        $this->TYPE = "ul";
    184197        $this->THEME = $theme;
    185198        if(!IS_WP)
    186             $this->G_DIR = $this->get_real_path().GMACE_DIR;
     199            $this->G_DIR = $this->get_real_path().GMACE_DIR;
    187200        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);
    189202
    190203    }
     
    192205    //CALL IN <HEAD>
    193206    function scripts($dir){
    194         $dir.="/assets";
     207        $dir.="/assets";
    195208        print("<link rel='stylesheet' href='$dir/css/style.css'>");
    196209        if(!IS_WP){
    197             print("<script src='$dir/js/jquery.js'></script>");
     210            print("<script src='$dir/js/jquery.js'></script>");
    198211        }
    199212        print("<script src='$dir/js/scripts.js'></script>");
     
    207220
    208221    function scaning_dir($dir, $flag){
    209         if($dir == "/")
    210             $dir = "";
     222        if($dir == "/")
     223            $dir = "";
    211224        $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;
    242255    }
    243256    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    }
    250263    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;
    275288    }
    276289    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']);
    278291    }
    279292    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);
    281294    }
    282295}
  • gmace/trunk/includes/editor.php

    r1054491 r1056462  
    88
    99    $ace = new GMAce($settings->getTheme());
    10    
     10
     11    if(!function_exists("is_user_logged_in") || !is_user_logged_in())
     12        exit;
     13
    1114    $ace->scripts(GMACE_URL);
    1215    $ace->build_editor();
  • gmace/trunk/readme.txt

    r1056400 r1056462  
    44Requires at least: 4.0
    55Tested up to: 4.1
    6 Stable tag: 1.3
     6Stable tag: 1.3.1
    77License: GNU
    88License URI: license.txt
     
    3333
    3434== 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
    3539
    3640= 1.3 =
Note: See TracChangeset for help on using the changeset viewer.