????JFIF??x?x????'
Server IP : 79.136.114.73 / Your IP : 3.145.68.176 Web Server : Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.29 OpenSSL/1.0.1f System : Linux b8009 3.13.0-170-generic #220-Ubuntu SMP Thu May 9 12:40:49 UTC 2019 x86_64 User : www-data ( 33) PHP Version : 5.5.9-1ubuntu4.29 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /var/www/www.astacus.se/wp-content/plugins/Temp-Hold/ubermenu/pro/updates/ |
Upload File : |
<?php if ( !defined( 'ABSPATH' ) ) exit; /** * BACKUP ON ADMIN ACCESS */ /* * Run a backup when users with update plugin capabilities access the admin panel. * This ensures that a backup of the latest custom files will be made prior to * any updates being run. */ add_action( 'admin_init' , 'ubermenu_run_backups' ); function ubermenu_run_backups(){ if( !defined( 'DOING_AJAX' ) && current_user_can( 'update_plugins' ) ){ if( ubermenu_op( 'backup_custom_assets' , 'updates' ) != 'off' ){ ubermenu_backup_custom_assets(); //ubermenu_restore_custom_assets(); //Just for testing } } } /* * Run backups for the custom assets, custom.css and custom.js - if they exist */ function ubermenu_backup_custom_assets(){ $custom_dir = trailingslashit( UBERMENU_DIR ).'custom/'; $custom_css = $custom_dir.'custom.css'; if( file_exists( $custom_css ) ){ ubermenu_backup_file( $custom_css , 'custom.css' , 'css' ); } $custom_js = $custom_dir.'custom.js'; if( file_exists( $custom_js ) ){ ubermenu_backup_file( $custom_js , 'custom.js' , 'js' ); } } /* * Copies the source file to uploads/ubermenu_backups directory * Also creates a date-stamped backup in the daily folder (optional) */ function ubermenu_backup_file( $source_file , $dest_filename , $daily_folder = false ){ //If the destination filename is empty, bail if( !$dest_filename ){ error_log( 'UberMenu: Cannot backup file (destination not set) :: '. $source_file . ' :: '.$dest_filename ); return; } //If the source file doesn't exist, bail if( !file_exists( $source_file ) ){ error_log( 'UberMenu: Cannot backup file (source file does not exist) :: ' . $source_file ); return; } //Find the path to the backups directory $uploads = wp_upload_dir(); $uploads_dir = trailingslashit( $uploads['basedir'] ); $dest_dir = $uploads_dir . 'ubermenu_backups/'; //Create ubermenu_backups dir if it doesn't already exist if( !ubermenu_make_backup_dir( $dest_dir ) ){ //Bail if making the backup directory fails return; } //Destination File Name $dest_file = $dest_dir . $dest_filename; //Make the latest copy if( is_writable( $dest_dir ) ){ if( !copy( $source_file, $dest_file ) ){ error_log( "UberMenu: could not back up $source_file , couldn't copy to $dest_dir - likely need to adjust directory permissions" ); //Warning should be printed automatically in this case //return; //copy failed } } //If the destination directory isn't writable, log the error else{ error_log( "UberMenu: could not back up $source_file , $dest_dir not writable" ); } //Make a daily backup $daily_dir = $dest_dir.$daily_folder.'/'; //Daily backup folder inside /ubermenu_backups ubermenu_make_backup_dir( $daily_dir ); //Create the daily directory if it doesn't exist if( is_writable( $daily_dir ) ){ $daily = $daily_dir . $dest_filename . '_' . current_time( 'Y-m-d' ); //Date-stamp the file copy( $source_file , $daily ); //Make the backup //Clear old backups - if there are more than 10 files, purge the oldest $max_files = 10; $files = glob( $daily_dir.'*.*' ); if( count( $files ) > $max_files ){ asort( $files ); //Make sure they are sorted alphabetically (which is chronologically, due to the date stamp) //uberp( $files ); while( count( $files ) > $max_files ){ unlink( $files[0] ); //Delete the file from the server unset( $files[0] ); //This is critical, otherwise we loop infinitely } } } } /* * Creates a directory if it doesn't already exist */ function ubermenu_make_backup_dir( $dir ){ if( !file_exists( $dir ) ){ if( !wp_mkdir_p( $dir ) ){ return false; //Couldn't create directory } } return true; } /** * RESTORE ON PLUGIN ACTIVATION */ /* * When the plugin is activated, restore the custom assets * (Plugins are re-activated after update) */ register_activation_hook( UBERMENU_FILE , 'ubermenu_restore_backups' ); function ubermenu_restore_backups(){ ubermenu_restore_custom_assets(); } /* * Restores custom.css and custom.css - if they exist */ function ubermenu_restore_custom_assets(){ $custom_dir = trailingslashit( UBERMENU_DIR ).'custom/'; //UberMenu's /custom directory //Find the Backups directory $uploads = wp_upload_dir(); $uploads_dir = trailingslashit( $uploads['basedir'] ); $backups_dir = $uploads_dir . 'ubermenu_backups/'; //Restore CSS backup - if one exists and the custom.css does not exist in the plugin $custom_css = $custom_dir.'custom.css'; $backup_css = $backups_dir.'custom.css'; if( !file_exists( $custom_css ) && file_exists( $backup_css ) ){ $result = ubermenu_restore_file( $backup_css , $custom_css , $custom_dir ); if( is_wp_error( $result ) ){ add_action( 'admin_notices', 'ubermenu_restore_admin_notice_fail_css' ); } } //Restore JS backup - if one exists and the custom.js does not exist in the plugin $custom_js = $custom_dir.'custom.js'; $backup_js = $backups_dir.'custom.js'; if( !file_exists( $custom_js ) && file_exists( $backup_js ) ){ ubermenu_restore_file( $backup_js , $custom_js , $custom_dir ); } } /* * Copies the file from the source to the destination * $dest_file is a full path */ function ubermenu_restore_file( $source_file , $dest_file , $dest_dir ){ //echo 'restore '.$source_file .' to ' .$dest_file; //If the directory is writable if( is_writable( $dest_dir ) ){ copy( $source_file , $dest_file ); } else{ error_log( 'UberMenu: could not restore (not writable) ' . $source_file . ' to ' . $dest_file ); //Not really important, since the directory had to be writable in order to run the update //and delete the file in the first place return new WP_Error( 'ubermenu_restore_failed' , 'File not writable' ); } } function ubermenu_restore_admin_notice_fail_css(){ ubermenu_restore_admin_notice( __( 'Could not restore custom.css file, as the directory is not writable. You can manually restore the file from the wp-content/uploads/ubermenu_backups directory' , 'ubermenu' ) , 'error' ); } function ubermenu_restore_admin_notice( $notice , $type = 'udpated' ) { ?> <div class="<?php echo $type; ?>"> <p><?php echo $notice; ?></p> </div> <?php }