WordPress.org

Plugin Directory

Changeset 352695


Ignore:
Timestamp:
02/27/11 20:51:21 (3 years ago)
Author:
ampt
Message:

1.0.0-beta

Location:
mute-screamer/trunk/libraries
Files:
3 added
2 deleted
5 edited

Legend:

Unmodified
Added
Removed
  • mute-screamer/trunk/libraries/IDS/Converter.php

    r283577 r352695  
    123123        $value = preg_replace('/(<\w+)\/+(\w+=?)/m', '$1/$2', $value); 
    124124        $value = preg_replace('/[^\\\:]\/\/(.*)$/m', '/**/$1', $value); 
     125        $value = preg_replace('/([^\-&])#.*[\r\n\v\f]/m', '$1', $value); 
    125126 
    126127        return $value; 
     
    303304    { 
    304305        $matches = array(); 
    305         if(preg_match_all('/(?:(?:\A|[^\d])0x[a-f\d]{2,}[a-f\d]*)+/im', $value, $matches)) { 
     306        if(preg_match_all('/(?:(?:\A|[^\d])0x[a-f\d]{3,}[a-f\d]*)+/im', $value, $matches)) { 
    306307            foreach($matches[0] as $match) { 
    307308                $converted = ''; 
     
    315316        } 
    316317        // take care of hex encoded ctrl chars 
    317         $value = preg_replace('/0x\d+/m', 1, $value); 
     318        $value = preg_replace('/0x\d+/m', ' 1 ', $value); 
    318319         
    319320        return $value; 
     
    330331    public static function convertFromSQLKeywords($value) 
    331332    { 
    332         $pattern = array('/(?:IS\s+null)|(LIKE\s+null)|' . 
    333             '(?:(?:^|\W)IN[+\s]*\([\s\d"]+[^()]*\))/ims'); 
     333        $pattern = array('/(?:is\s+null)|(like\s+null)|' . 
     334            '(?:(?:^|\W)in[+\s]*\([\s\d"]+[^()]*\))/ims'); 
    334335        $value   = preg_replace($pattern, '"=0', $value); 
    335         $value   = preg_replace('/\W+\s*like\s*\W+/ims', '1" OR "1"', $value); 
     336         
     337        $value   = preg_replace('/\W+\s*like\s*[^\w\s]+/ims', '1" OR "1"', $value); 
    336338        $value   = preg_replace('/null[,"\s]/ims', ',0', $value); 
    337339        $value   = preg_replace('/\d+\./ims', ' 1', $value); 
     
    340342        $value   = preg_replace('/(?:and\s+\d+\.?\d*)/ims', '', $value); 
    341343        $value   = preg_replace('/(?:\s+and\s+)/ims', ' or ', $value); 
    342         $pattern = array('/[^\w,(]NULL|\\\N|TRUE|FALSE|UTC_TIME|' . 
    343                          'LOCALTIME(?:STAMP)?|CURRENT_\w+|BINARY|' . 
    344                          '(?:(?:ASCII|SOUNDEX|FIND_IN_SET|' . 
    345                          'MD5|R?LIKE)[+\s]*\([^()]+\))|(?:-+\d)/ims'); 
     344 
     345        $pattern = array('/[^\w,(]null|\\\n|true|false|utc_time|' . 
     346                         'localtime(?:stamp)?|current_\w+|binary|' . 
     347                         '(?:(?:ascii|soundex|find_in_set|' . 
     348                         'md5|r?like)[+\s]*\([^()]+\))|(?:-+\d)/ims'); 
    346349        $value   = preg_replace($pattern, 0, $value); 
    347         $pattern = array('/(?:NOT\s+BETWEEN)|(?:IS\s+NOT)|(?:NOT\s+IN)|' . 
    348                          '(?:XOR|\WDIV\W|<>|RLIKE(?:\s+BINARY)?)|' . 
    349                          '(?:REGEXP\s+BINARY)|' . 
    350                          '(?:SOUNDS\s+LIKE)/ims'); 
     350 
     351        $pattern = array('/(?:not\s+between)|(?:is\s+not)|(?:not\s+in)|' . 
     352                         '(?:xor|<>|rlike(?:\s+binary)?)|' . 
     353                         '(?:regexp\s+binary)|' . 
     354                         '(?:sounds\s+like)/ims'); 
    351355        $value   = preg_replace($pattern, '!', $value); 
    352356        $value   = preg_replace('/"\s+\d/', '"', $value); 
     357        $value   = preg_replace('/(\W)div(\W)/ims', '$1 OR $2', $value); 
    353358        $value   = preg_replace('/\/(?:\d+|null)/', null, $value); 
    354359 
  • mute-screamer/trunk/libraries/IDS/default_filter.xml

    r308144 r352695  
    2121    </filter> 
    2222    <filter> 
    23         <id>69</id> 
    24         <rule><![CDATA[(?:[\s\d\/"]+(?:on\w+|style|poster|background)=[$"\w])]]></rule> 
    25         <description>finds malicious attribute injection attempts</description> 
    26         <tags> 
    27             <tag>xss</tag> 
    28             <tag>csrf</tag> 
    29         </tags> 
    30         <impact>6</impact> 
    31     </filter>    
    32     <filter> 
    3323        <id>3</id> 
    3424        <rule><![CDATA[(?:^>[\w\s]*<\/?\w{2,}>)]]></rule> 
     
    229219    <filter> 
    230220        <id>21</id> 
    231         <rule><![CDATA[(?:,\s*(?:alert|showmodaldialog|eval)\s*,)|(?::\s*eval\s*[^\s])|([^:\s\w,.\/?+-]\s*)?(?<![a-z\/_@])(\s*return\s*)?(?:(?:document\s*\.)?(?:.+\/)?(?:alert|eval|msgbox|showmodaldialog|prompt|write(?:ln)?|confirm|dialog|open))\s*(?:[^a-z\s]|(?:\s*[^\s\w,.@\/+-]))|(?:java[\s\/]*\.[\s\/]*lang)|(?:\w\s*=\s*new\s+\w+)|(?:&\s*\w+\s*\)[^,])|(?:\+[\W\d]*new\s+\w+[\W\d]*\+)|(?:document\.\w)]]></rule> 
     221        <rule><![CDATA[(?:,\s*(?:alert|showmodaldialog|eval)\s*,)|(?::\s*eval\s*[^\s])|([^:\s\w,.\/?+-]\s*)?(?<![a-z\/_@])(\s*return\s*)?(?:(?:document\s*\.)?(?:.+\/)?(?:alert|eval|msgbox|showmodaldialog|prompt|write(?:ln)?|confirm|dialog|open))\s*(?:[^.a-z\s\-]|(?:\s*[^\s\w,.@\/+-]))|(?:java[\s\/]*\.[\s\/]*lang)|(?:\w\s*=\s*new\s+\w+)|(?:&\s*\w+\s*\)[^,])|(?:\+[\W\d]*new\s+\w+[\W\d]*\+)|(?:document\.\w)]]></rule> 
    232222        <description>Detects very basic XSS probings</description> 
    233223        <tags> 
     
    458448    <filter> 
    459449        <id>43</id> 
    460         <rule><![CDATA[(?:"\s*\*.+(?:or|id)\W*"\d)|(?:\^")|(?:^[\w\s"-]+(?<=and\s)(?<=or\s)(?<=xor\s)(?<=nand\s)(?<=not\s)(?<=\|\|)(?<=\&\&)\w+\()|(?:"[\s\d]*[^\w\s]+\W*\d\W*.*["\d])|(?:"\s*[^\w\s?]+\s*[^\w\s]+\s*")|(?:"\s*[^\w\s]+\s*[\W\d].*(?:#|--))|(?:".*\*\s*\d)|(?:"\s*or\s[\w-]+.*\d)|(?:[()*<>%+-][\w-]+[^\w\s]+"[^,])]]></rule> 
     450        <rule><![CDATA[(?:"\s*\*.+(?:or|id)\W*"\d)|(?:\^")|(?:^[\w\s"-]+(?<=and\s)(?<=or\s)(?<=xor\s)(?<=nand\s)(?<=not\s)(?<=\|\|)(?<=\&\&)\w+\()|(?:"[\s\d]*[^\w\s]+\W*\d\W*.*["\d])|(?:"\s*[^\w\s?]+\s*[^\w\s]+\s*")|(?:"\s*[^\w\s]+\s*[\W\d].*(?:#|--))|(?:".*\*\s*\d)|(?:"\s*or\s[^\d]+[\w-]+.*\d)|(?:[()*<>%+-][\w-]+[^\w\s]+"[^,])]]></rule> 
    461451        <description>Detects classic SQL injection probings 2/2</description> 
    462452        <tags> 
     
    603593    <filter> 
    604594        <id>57</id> 
    605         <rule><![CDATA[(?:select\s*\*\s*from)|((?:select|create|rename|truncate|load|alter|delete|update|insert|desc)\s*\(\s*space\s*\()]]></rule> 
    606         <description>Detects MySQL comment-/space-obfuscated injections</description> 
     595        <rule><![CDATA[(?:,.*[)\da-f"]"(?:".*"|\Z|[^"]+))|(?:select\s*\*\s*from)|((?:select|create|rename|truncate|load|alter|delete|update|insert|desc)\s*\(\s*space\s*\()]]></rule> 
     596        <description>Detects MySQL comment-/space-obfuscated injections and backtick termination</description> 
    607597        <tags> 
    608598            <tag>sqli</tag> 
     
    657647    <filter> 
    658648        <id>62</id> 
    659         <rule><![CDATA[(?:function[^(]*\([^)]*\))|(?:(?:delete|void|throw|instanceof|new|typeof)\W+\w+\s*[([])|([)\]]\s*\.\s*\w+\s*=)|(?:\(\s*new\s+\w+\s*\)\.)]]></rule> 
     649        <rule><![CDATA[(?:function[^(]*\([^)]*\))|(?:(?:delete|void|throw|instanceof|new|typeof)[^\w.]+\w+\s*[([])|([)\]]\s*\.\s*\w+\s*=)|(?:\(\s*new\s+\w+\s*\)\.)]]></rule> 
    660650        <description>Detects common function declarations and special JS operators</description> 
    661651        <tags> 
     
    712702        <id>68</id> 
    713703        <rule><![CDATA[(?:[\s\/"]+[-\w\/\\\*]+\s*=.+(?:\/\s*>))]]></rule> 
    714         <description>finds attribute breaking injections including obfuscated attributes</description> 
     704        <description>Finds attribute breaking injections including obfuscated attributes</description> 
    715705        <tags> 
    716706            <tag>xss</tag> 
     
    722712        <id>69</id> 
    723713        <rule><![CDATA[(?:(?:msgbox|eval)\s*\+|(?:language\s*=\*vbscript))]]></rule> 
    724         <description>finds basic VBScript injection attempts</description> 
     714        <description>Finds basic VBScript injection attempts</description> 
    725715        <tags> 
    726716            <tag>xss</tag> 
     
    732722        <id>70</id> 
    733723        <rule><![CDATA[(?:\[\$(?:ne|eq|lte?|gte?|n?in|mod|all|size|exists|type|slice|or)\])]]></rule> 
    734         <description>finds basic MongoDB SQL injection attempts</description> 
    735         <tags> 
    736             <tag>sqli</tag> 
    737         </tags> 
    738         <impact>4</impact> 
    739     </filter>       
     724        <description>Finds basic MongoDB SQL injection attempts</description> 
     725        <tags> 
     726            <tag>sqli</tag> 
     727        </tags> 
     728        <impact>4</impact> 
     729    </filter> 
     730    <filter> 
     731        <id>71</id> 
     732        <rule><![CDATA[(?:[\s\d\/"]+(?:on\w+|style|poster|background)=[$"\w])|(?:-type\s*:\s*multipart)]]></rule> 
     733        <description>finds malicious attribute injection attempts and MHTML attacks</description> 
     734        <tags> 
     735            <tag>xss</tag> 
     736            <tag>csrf</tag> 
     737        </tags> 
     738        <impact>6</impact> 
     739    </filter>    
    740740</filters> 
  • mute-screamer/trunk/libraries/mscr/Text_Diff_Render.php

    r306700 r352695  
    22 
    33class MSCR_Text_Diff_Renderer_Table extends WP_Text_Diff_Renderer_Table { 
     4 
     5    /** 
     6     * Number of context lines before 
     7     * 
     8     * @var int 
     9     */ 
    410    public $_leading_context_lines  = 3; 
     11 
     12    /** 
     13     * Number of context lines after 
     14     * 
     15     * @var int 
     16     */ 
    517    public $_trailing_context_lines = 3; 
    618 
  • mute-screamer/trunk/libraries/mscr/Update.php

    r306700 r352695  
    88 */ 
    99class MSCR_Update { 
    10     public static $instance = NULL; 
     10 
     11    /** 
     12     * An instance of this class 
     13     * 
     14     * @var object 
     15     */ 
     16    public static $instance = null; 
     17 
     18    /** 
     19     * Update cache 
     20     * 
     21     * @var array 
     22     */ 
    1123    private $updates = array(); 
     24 
     25    /** 
     26     * The file to check for a new version of 
     27     * 
     28     * @var string 
     29     */ 
    1230    private $file = ''; 
     31 
     32    /** 
     33     * Update check interval 
     34     * 
     35     * @var int 
     36     */ 
    1337    private $timeout = 86400; 
    1438 
     
    1640     * Constructor 
    1741     * 
    18      * @return  void 
     42     * @return void 
    1943     */ 
    2044    protected function __construct() { 
     
    2549     * Get the MSCR Update instance 
    2650     * 
    27      * @return  object 
     51     * @return object 
    2852     */ 
    2953    public static function instance() { 
     
    4165     * 4. display update notice, with link to changeset 
    4266     * 
    43      * @return  bool 
     67     * @return bool 
    4468     */ 
    4569    public function update_check() { 
     
    4771        // TODO: look like Wordpress is really slow 
    4872 
    49         if( !$this->can_update() ) 
    50             return FALSE; 
     73        if( ! $this->can_update() ) 
     74            return false; 
    5175 
    5276        // Is it time to check for updates? 
    53         if( $this->updates !== FALSE ) 
    54             return FALSE; 
     77        if( $this->updates !== false ) 
     78            return false; 
    5579 
    5680        // Initialise the update cache 
     
    5882 
    5983        // Suppress libxml parsing errors 
    60         $libxml_use_errors = libxml_use_internal_errors( TRUE ); 
     84        $libxml_use_errors = libxml_use_internal_errors( true ); 
    6185 
    6286        foreach( array( 'default_filter.xml', 'Converter.php' ) as $file ) { 
     
    7397            if( $responses['sha1'] == '' OR $responses['rss'] == '' ) { 
    7498                $this->abort(); 
    75                 return FALSE; 
     99                return false; 
    76100            } 
    77101 
     
    90114            $details->date = (string) $rss->channel->item->pubDate; 
    91115            $details->revision_url = (string) $rss->channel->item->guid; 
    92             $details->revision_file_url = "https://trac.php-ids.org/index.fcgi/export/{$details->revision}/trunk/lib/IDS/{$this->file}"; 
     116            $details->revision_file_url = "https://trac.phpids.org/index.fcgi/export/{$details->revision}/trunk/lib/IDS/{$this->file}"; 
    93117 
    94118            // Did we parse the revision number correctly? 
    95119            if( ! ctype_digit( $details->revision ) ) { 
    96120                $this->abort(); 
    97                 return FALSE; 
     121                return false; 
    98122            } 
    99123        } 
     
    107131        // TODO: Extra validation step 
    108132        // TODO: Check revision_file_url sha1 and compare to remote sha1 
    109         // TODO: If the sha1's are the same then we can run the update 
    110133 
    111134        set_site_transient( 'mscr_update', $this->updates, $this->timeout ); 
     
    116139     * Is it a good time to check for updates? 
    117140     * 
    118      * @return  bool 
     141     * @return bool 
    119142     */ 
    120143    private function can_update() { 
    121144        // Don't check for updates on wp-login.php, this happens when you request 
    122145        // an admin page but are not logged in and then redirected to wp-login.php 
    123         if( FALSE === wp_validate_auth_cookie() ) 
    124             return FALSE; 
    125  
    126         // Don't check for updates during the update process 
     146        if( false === wp_validate_auth_cookie() ) 
     147            return false; 
     148 
     149        // Don't run on plugin activation/deactivation, request will seem slow 
     150        foreach( array( 'activate', 'deactivate', 'activate-multi', 'deactivate-multi' ) as $key ) { 
     151            if( array_key_exists( $key, $_REQUEST ) ) { 
     152                return false; 
     153            } 
     154        } 
     155 
     156        // Don't check for updates on the following actions 
    127157        $actions = array( 
    128158            'mscr_upgrade_diff', 
    129159            'mscr_upgrade', 
    130             'mscr_upgrade_run' 
     160            'mscr_upgrade_run', 
     161            'activate', 
     162            'deactivate', 
     163            'activate-selected', 
     164            'deactivate-selected' 
    131165        ); 
    132166        if( in_array( MSCR_Utils::get( 'action' ), $actions ) ) 
    133             return FALSE; 
    134  
    135         return TRUE; 
     167            return false; 
     168 
     169        return true; 
    136170    } 
    137171 
     
    139173     * Fetch the remote sha1 and cache the result 
    140174     * 
    141      * @return  void 
     175     * @return void 
    142176     */ 
    143177    private function sha1_fetch() { 
    144178        // Fetch remote sha1 
    145         $url = 'https://php-ids.org/hash.php?f='.$this->file; 
     179        $url = 'https://phpids.org/hash.php?f='.$this->file; 
    146180        $response = $this->remote_get( $url ); 
    147181        $this->updates['updates'][$this->file] = new stdClass; 
     
    152186     * Fetch the latest rss revision and cache the result 
    153187     * 
    154      * @return  void 
     188     * @return void 
    155189     */ 
    156190    private function rss_fetch() { 
    157         $url = "https://trac.php-ids.org/index.fcgi/log/trunk/lib/IDS/{$this->file}?limit=1&format=rss"; 
     191        $url = "https://trac.phpids.org/index.fcgi/log/trunk/lib/IDS/{$this->file}?limit=1&format=rss"; 
    158192        $response = $this->remote_get( $url ); 
    159193        $this->updates['updates'][$this->file]->responses['rss'] = $response['body']; 
     
    163197     * Check the sha1 to see if we need to update 
    164198     * 
    165      * @return  bool    true if the sha1's are different 
     199     * @return bool true if the sha1's are different 
    166200     */ 
    167201    private function sha1_check() { 
    168202        // Get the current sha1 
    169         $local_file = MSCR_PATH."/lib/IDS/{$this->file}"; 
     203        $local_file = MSCR_PATH."/libraries/IDS/{$this->file}"; 
    170204 
    171205        if( ! file_exists( $local_file ) ) 
    172             return FALSE; 
     206            return false; 
    173207 
    174208        $local_sha1 = sha1_file( $local_file ); 
     
    176210 
    177211        if( $local_sha1 == $remote_sha1 ) 
    178             return FALSE; 
    179  
    180         return TRUE; 
     212            return false; 
     213 
     214        return true; 
    181215    } 
    182216 
     
    185219     * an empty body so we can fail gracefully. 
    186220     * 
    187      * @param   string 
    188      * @return  array 
     221     * @param string 
     222     * @param array 
     223     * @return array 
    189224     */ 
    190225    private function remote_get( $url = '', $options = array() ) { 
     
    198233        // Default options 
    199234        if( empty( $options ) ) { 
    200             $options = array( 'sslverify' => FALSE ); 
     235            $options = array( 'sslverify' => false ); 
    201236        } 
    202237 
     
    221256     * Abort the update process. 
    222257     * 
    223      * @return  void 
     258     * @return void 
    224259     */ 
    225260    private function abort() { 
     
    233268    /** 
    234269     * Display update notices on the update page 
     270     * 
     271     * @return void 
    235272     */ 
    236273    public function list_mscr_updates() { 
    237274        if( empty( $this->updates['updates'] ) ) { 
    238             echo '<h3>' . __( 'Mute Screamer' ) . '</h3>'; 
    239             echo '<p>' . __( 'Is up to date.' ) . '</p>'; 
     275            echo '<h3>' . __( 'Mute Screamer', 'mute-screamer' ) . '</h3>'; 
     276            echo '<p>' . __( 'Is up to date.', 'mute-screamer' ) . '</p>'; 
    240277            return; 
    241278        } 
     
    247284    /** 
    248285     * Display diff of files to be upgraded 
     286     * 
     287     * @return void 
    249288     */ 
    250289    public function do_upgrade_diff() { 
     
    252291 
    253292        if ( ! current_user_can('update_plugins') ) 
    254             wp_die(__('You do not have sufficient permissions to update Mute Screamer for this site.')); 
     293            wp_die(__('You do not have sufficient permissions to update Mute Screamer for this site.', 'mute-screamer')); 
    255294 
    256295        check_admin_referer('upgrade-core'); 
     
    264303 
    265304            // Get local file 
    266             $local = MSCR_PATH.'/lib/IDS/'.$file; 
     305            $local = MSCR_PATH.'/libraries/IDS/'.$file; 
    267306 
    268307            if( ! file_exists( $local ) ) { 
    269                 wp_die( new WP_Error( 'mscr_upgrade_file_missing', esc_html($file).' does not exist.' ) ); 
     308                wp_die( new WP_Error( 'mscr_upgrade_file_missing', sprintf( __( '%s does not exist.', 'mute-screamer' ), esc_html($file) ) ) ); 
    270309            } 
    271310 
    272311            if( ! @is_readable( $local ) ) { 
    273                 wp_die( new WP_Error( 'mscr_upgrade_file_read_error', 'Can not read file '.esc_html($file).'.' ) ); 
     312                wp_die( new WP_Error( 'mscr_upgrade_file_read_error', sprintf( __( 'Can not read file %s.', 'mute-screamer' ), esc_html($file) ) ) ); 
    274313            } 
    275314 
     
    280319 
    281320            if( $remote['body'] == '' ) 
    282                 wp_die( new WP_Error( 'mscr_upgrade_error', 'Could not connect to phpids.org, please try again later.' ) ); 
     321                wp_die( new WP_Error( 'mscr_upgrade_error', __( 'Could not connect to phpids.org, please try again later.', 'mute-screamer' ) ) ); 
    283322 
    284323            $remote = $remote['body']; 
     
    297336        $url = wp_nonce_url($url, 'bulk-update-mscr'); 
    298337 
    299         $this->admin_header( __('Update Mute Screamer') ); 
     338        $this->admin_header( __( 'Update Mute Screamer', 'mute-screamer' ) ); 
    300339 
    301340        $data['url'] = $url; 
     
    303342 
    304343        MSCR_Utils::view( 'admin_update_diff', $data ); 
     344        include(ABSPATH . 'wp-admin/admin-footer.php'); 
    305345    } 
    306346 
     
    310350     * for us. 
    311351     * 
    312      * @param string title 
     352     * @param string 
    313353     * @return void 
    314354     */ 
     
    322362    /** 
    323363     * Display upgrade page, setup the iframe to run the upgrade 
     364     * 
     365     * @return void 
    324366     */ 
    325367    public function do_upgrade() { 
    326368        if ( ! current_user_can( 'update_plugins' ) ) 
    327             wp_die( __( 'You do not have sufficient permissions to update Mute Screamer for this site.' ) ); 
     369            wp_die( __( 'You do not have sufficient permissions to update Mute Screamer for this site.', 'mute-screamer' ) ); 
    328370 
    329371        check_admin_referer( 'mscr-upgrade-diff' ); 
    330372 
    331  
    332373        $url = MSCR_Utils::post( 'url' ); 
    333  
    334         $this->admin_header( __('Update Mute Screamer') ); 
    335  
     374        $this->admin_header( __( 'Update Mute Screamer', 'mute-screamer' ) ); 
     375 
     376        // The $url below will invoke do_upgrade_run 
    336377        echo '<div class="wrap">'; 
    337378        screen_icon('plugins'); 
    338         echo '<h2>' . esc_html__('Update Mute Screamer') . '</h2>'; 
     379        echo '<h2>' . __( 'Update Mute Screamer', 'mute-screamer' ) . '</h2>'; 
    339380        echo "<iframe src='$url' style='width: 100%; height: 100%; min-height: 750px;' frameborder='0'></iframe>"; 
    340381        echo '</div>'; 
     382 
     383        include(ABSPATH . 'wp-admin/admin-footer.php'); 
    341384    } 
    342385 
    343386    /** 
    344387     * This is in an iframe 
     388     * 
     389     * @return void 
    345390     */ 
    346391    public function do_upgrade_run() { 
     
    353398 
    354399        if ( ! current_user_can( 'update_plugins' ) ) 
    355             wp_die( __( 'You do not have sufficient permissions to update Mute Screamer for this site.' ) ); 
     400            wp_die( __( 'You do not have sufficient permissions to update Mute Screamer for this site.', 'mute-screamer' ) ); 
    356401 
    357402        check_admin_referer( 'bulk-update-mscr' ); 
     
    360405        foreach( $files as $key => $val ) { 
    361406            if( ! in_array( $val, $upgrade_files ) ) 
    362                 wp_die( __( esc_html($val)." can't be upgraded." ) ); 
     407                wp_die( sprintf( __( "%s can't be upgraded.", 'mute-screamer' ), esc_html($val) ) ); 
    363408 
    364409            // Fetch file contents from cache 
  • mute-screamer/trunk/libraries/mscr/Upgrader.php

    r306700 r352695  
    2323         * Handle the upgrade 
    2424         * 
    25          * @param   array the files to upgrade 
    26          * @return  bool true on success, false on failure 
     25         * @param array the files to upgrade 
     26         * @return bool true on success, false on failure 
    2727         */ 
    2828        public function upgrade( $files = array() ) { 
     
    4040 
    4141            $upgrade_folder = $wp_filesystem->wp_content_dir() . 'upgrade/'; 
    42             $mscr_folder = $wp_filesystem->wp_plugins_dir() . 'mute-screamer/lib/IDS/'; 
     42            $mscr_folder = $wp_filesystem->wp_plugins_dir() . 'mute-screamer/libraries/IDS/'; 
    4343 
    4444            // Only check to see if the Dir exists upon creation failure. Less I/O this way. 
    4545            if ( ! $wp_filesystem->mkdir($upgrade_folder, FS_CHMOD_DIR) && ! $wp_filesystem->is_dir($upgrade_folder) ) { 
    46                 show_message( new WP_Error('mkdir_failed', __('Could not create directory.'), $upgrade_folder) ); 
     46                show_message( new WP_Error('mkdir_failed', __('Could not create directory.', 'mute-screamer'), $upgrade_folder) ); 
    4747                $this->maintenance_mode( false ); 
    4848                return false; 
     
    5858            // Save files into upgrade folder, copy into place 
    5959            foreach( $files as $key => $val ) { 
    60                 show_message( "Copying {$key} into place..." ); 
     60                show_message( sprintf( __("Copying %s into place...", 'mute-screamer'), $key ) ); 
    6161                $new_file = $upgrade_folder . $key; 
    6262                $wp_filesystem->put_contents( $new_file, $val['body'], FS_CHMOD_FILE ); 
     
    6565                if ( ! $wp_filesystem->copy( $new_file, $mscr_folder . $key, true ) ) { 
    6666                    $wp_filesystem->delete($upgrade_folder, true); 
    67                     show_message( new WP_Error('copy_failed', __('Could not copy files.')) ); 
     67                    show_message( new WP_Error('copy_failed', __('Could not copy files.', 'mute-screamer')) ); 
    6868                    $this->maintenance_mode( false ); 
    6969                    return false; 
     
    7777            $this->maintenance_mode( false ); 
    7878 
    79             show_message( __('Mute Screamer updated successfully') ); 
    80             show_message( '<a target="_parent" href="' . esc_url( admin_url() ) . '">' . __('Go to Dashboard') . '</a>' ); 
     79            show_message( __('Mute Screamer updated successfully', 'mute-screamer') ); 
     80            show_message( '<a target="_parent" href="' . esc_url( admin_url() ) . '">' . __('Go to Dashboard', 'mute-screamer') . '</a>' ); 
    8181            return true; 
    8282        } 
    8383 
     84        /** 
     85         * Flush output to browser 
     86         * 
     87         * @return void 
     88         */ 
    8489        private function flush_output() { 
    8590            wp_ob_end_flush_all(); 
Note: See TracChangeset for help on using the changeset viewer.