--ALL NEWER UPDATES IN history.txt-- 0.1.9 - 2010-02-11 - Dustin Bolton Initial public beta release. 0.1.10 - 2010-02-12 - Dustin Bolton Fixed file download URL. 0.1.11 - 2010-02-12 - Dustin Bolton Various fixes. 0.1.12 - 2010-02-12 - Dustin Bolton Fixed importbuddy.php download length issue. 0.1.13 - 2010-02-13 - Dustin Bolton Clarified usage instructions. Various user interface changes. 0.1.14 - 2010-02-16 - Dustin Bolton Many various changes. 0.1.15 - 2010-02-18 - Dustin Bolton Added scheduling. Added email and FTP sending. 0.1.16 - 2010-02-18 - Chris Jean Created directory zipping class. 0.1.17 - 2010-02-26 - Dustin Bolton Various fixes. 0.1.18 - 2010-03-02 - Dustin Bolton Added updating system. 0.1.19 - 2010-03-02 - Dustin Bolton Update system fixes. 0.1.20 - 2010-03-02 - Dustin Bolton Updater fixes. 0.1.21 - 2010-03-03 - Dustin Bolton Various minor fixes. 0.1.22 - 2010-03-03 - Dustin Bolton Updater fixes 0.1.23 - 2010-03-03 - Chris Jean Updated backupbuddy.php: Rewrote code for PHP4 support Fixed clearstatcache warnings Updated lib/zip/zip.php: Added compat functionality for PHP4 0.1.24 - 2010-03-03 - Chris Jean Updated lib/zip/zip.php: Added native zip failure reason output for add_directory_to_zip function 0.1.25 - 2010-03-03 - Chris Jean Updated lib/zip/zip.php: Removed modified timestamp checking for native zip method Added better error messages 1.0.0 - 2010-03-04 - Dustin Bolton Fixed updater reporting upgrades always available. Official version change to 1.0 and public release. 1.0.1 - 2010-03-04 - Dustin Bolton UI improvements. FTP was failing in some situations. 1.0.2 - 2010-03-05 - Dustin Bolton Corrected Internet Explorer styling issues in importer. 1.0.3 - 2010-03-05 - Dustin Bolton Fixed FTP functionality. 1.0.4 - 2010-03-05 - Dustin Bolton Fixed hardcoded temporary password in importbuddy.php 1.0.5 - 2010-03-05 - Dustin Bolton Corrected PHP shorttag in importbuddy.php 1.0.6 - 2010-03-05 - Chris Jean Fixed relative path issue when adding db_0.sql to backup file. 1.0.7 - 2010-03-05 - Chris Jean Fixed problem with Step 2 of backup process hanging at "Backing up files...". Added missing PluginBuddyZip class initialization. 1.0.8 - 2010-03-05 - Dustin Bolton Fixed version numbering & removed PHPdoc from header. 1.0.9 - 2010-03-05 - Dustin Bolton Now hiding passwords on Settings page. 1.0.10 - 2010-03-05 - Dustin Bolton Updated key system. 1.0.11 - 2010-03-06 - Dustin Bolton Import script now pre-fills destination URL based on current url. 1.0.12 - 2010-03-07 - Dustin Bolton Not using standard apostrophe in SQL. (' instead of `) 1.0.13 - 2010-03-09 - Dustin Bolton Fixed curl_init error in updater on some servers. 1.0.14 - 2010-03-09 - Dustin Bolton Fixed managing licenses when using SSL url. 1.0.15 - 2010-03-10 - Dustin Bolton Fixed database only backup problem / empty zip file. Fixed database only import problem. Fixed missing .dat file in database only backup. 1.0.16 - 2010-03-10 - Dustin Bolton importbuddy UI fix. 1.0.17 - 2010-03-10 - Dustin Bolton Fixed HTTPS checking warning. Pre-release version 1.0.18a - 2010-03-12 - Chris Jean Intial rewrite of the backup process Output cleanup needed Laid foundation for multiple backup process to make a single backup Pre-release version - 2010-03-12 - Chris Jean Added a couple tweaks to backupbuddy.php and lib/zip/zip.php 1.1.0 - 2010-03-15 - Dustin Bolton Partial rewrite of importbuddy.php to handle new backup format for full and DB only backups. Legacy mode option in importbuddy.php to support older BackupBuddy backups (1.0.18 or older). FTP password now hidden. 1.1.1 - 2010-03-16 - Dustin Bolton Fixed successful extraction incorrectly returning failure message in importbuddy. Fixed updater $key warning. 1.1.2 - 2010-03-18 - Dustin Bolton Added backup file integrity check to BackupBuddy file listing. 1.1.3 - 2010-03-19 - Dustin Bolton Fixed strange characters being added into database on import by forcing UTF8 with SET NAMES option. Cleared up some warnings in file integrity checking. Pre-release version 1.1.4a - 2010-03-22 - Chris Jean Modified the primary zip process to not require the ZipArchive class Pre-release version 1.1.4b - 2010-03-22 - Chris Jean Removed the FileArchive warnings Pre-release version 1.1.4c - 2010-03-22 - Chris Jean Added diable_compression option for zipping Pre-release version 1.1.4d - 2010-03-22 - Dustin Bolton Added date sorting to backup file listing. Pre-release version 1.1.4e - 2010-03-22 - Dustin Bolton Now using recursive feature for making directories in case parent(s) missing. Using custom function for PHP4 compatability. 1.1.4 - 2010-03-23 - Dustin Bolton Updater now uses built-in WP ajax system. 1.1.5 - 2010-03-23 - Dustin Bolton Version fix. 1.1.6 - 2010-03-23 - Dustin Bolton Converted importbuddy download to using WP-Ajax system for increased compatibility. Fixed situation where only having one backup could cause file listing to now show on some servers. importbuddy UI improvements. 1.1.7 - 2010-03-24 - Dustin Bolton Fixed problem logging into license system on some servers. Backup directory is set on each load rather than only on installation in case this directory changes (ie new host). 1.1.8 - 2010-03-26 - Dustin Bolton Added web resources links to Getting Started page. Added better graphical indicator to display status during backups. 1.1.9 - 2010-03-30 - Dustin Bolton Added mySQL connection settings testing button to importbuddy.php. Improved user interface of importbuddy.php. Added documentation hover question marks '(?)' to importbuddy.php. 1.1.10 - 2010-04-01 - Dustin Bolton Added tutorial and support links to importbuddy.php Fixed condition where scheduled backups could trigger manual backup emails. 1.1.11 - 2010-04-02 - Dustin Bolton Corrected issue with scheduled file uploads & email attachments failing. Fixed issue with custom upload directory locations. 1.1.12 - 2010-04-02 - Dustin Bolton Fixed issue with admin dashboard permissions being denied in some situations when database prefix is changed. 1.1.13 - 2010-04-02 - Dustin Bolton Fixed alert email address setting not changing when settings saved. 1.1.14 - 2010-04-06 - Dustin Bolton Fixed problem with scheduled emails and FTP failing due to file not being passed to cron system. Added FTP connection test button. 1.1.15 - 2010-04-06 - Dustin Bolton Added option to disable compression for non-compatibility-mode backups to improve speed for improved host compatibility. 1.1.16 - 2010-04-12 - Dustin Bolton Fixed manual email notification being triggered by scheduled backups. Corrected flaw in the way cron schedule time periods were being added causing some incompatibility issues with other scheduling plugins. Fixed changing of site name & description in importbuddy.php 1.1.17 - 2010-04-12 - Dustin Bolton Added $force_compatibility option to importbuddy.php to override native zip detection and force compatibility mode. Added improved detection for lack of exec() function to importbuddy.php. 1.1.18 - 2010-04-22 - Dustin Bolton Updater: Fixed unchecked index warnings when curl unavailable. UI improvements to Settings page. Added option to force compatibility mode to settings page. Disabling ZIP compression now available in compatibility mode. No longer limited to native only. 1.1.19 - 2010-04-22 - Dustin Bolton Fixed forced compatibility mode for full backup not working. Flushing full mode status to screen after displaying compatibility mode notice for improved feedback. 1.1.20 - 2010-04-26 - Dustin Bolton Improved detection of native zip in importbuddy.php and compatibility fallback. Changed error message when falling back to compatibility to be less alarming. 1.1.21 - 2010-05-03 - Dustin Bolton Corrected native zip function detection bug caused by previous version. 1.1.22 - 2010-05-03 - Dustin Bolton Added site url to ZIP backup file name. Added option to delete file after scheduled sending via ftp and/or email. 1.1.25 - 2010-05-04 - Dustin Bolton Fixed backup integrity checker to recognize new filename format. 1.1.26 - 2010-05-06 - Dustin Bolton Fixed importbuddy.php to recognize new filename format. 1.1.27 - 2010-05-17 - Dustin Bolton Added Windows native zip compatibility by using http://pluginbuddy.com/wp-content/uploads/2010/05/backupbuddy_windows_unzip.zip 1.1.28 - 2010-05-17 - Dustin Bolton Windows native zip option now only displayed when running on a Windows server. Added more detail warnings for lack of exec functionality on Linux servers. Added option to disable file integrity checking for increased server compatibility. Added option to reset all settings & defaults in the Debugging Information section on the Getting Started page. 1.1.29 - 2010-05-20 - Dustin Bolton Added .htaccess migration to importbuddy.php to handle changes in subdirectories from breaking permalinks. Added warning to Step 2 of importbuddy.php if an existing WordPress installation is found in the directory. 1.1.30 - 2010-05-24 - Dustin Bolton Fixed indices on some checkbox option on settings page. Added directory exclusion ability to non-compatibility mode backups via settings page. Added current server date & time to scheduling page. 1.1.31 - 2010-05-24 - Dustin Bolton Corrected importbuddy debugging defaulting to true. 1.1.32 - 2010-05-28 - Dustin Bolton Updated updater for WP 3.0 1.1.33 - 2010-06-01 - Dustin Bolton Corrected license manager loading issue due to short timeout limit. 1.1.34 - 2010-06-02 - Dustin Bolton Removed legacy mode from importbuddy.php. Improved importbuddy.php unzip failure detection. Improved unzip.exe Windows executable detection and usage. Added prompt for migrating or restoring for improved usability. Added additional information on database settings. 1.1.35 - 2010-06-21 - Dustin Bolton Fixed notice of unexpected output on plugin activation in WordPress 3.0 1.1.36 - 2010-06-21 - Dustin Bolton Added advanced troubleshooting options to importbuddy.php Step 1. Improved directory exclusion usability for all users. Now supports OS X. Improved Getting Started page. 1.1.37 - 2010-06-24 - Dustin Bolton Began added error codes with links to the wiki for more error details and potential fixes. Improved error reporting on mysql errors during backups. 1.2.0 - 2010-06-25 - Dustin Bolton Added Amazon S3 support for remote backups. Added FTPs support for remote backups. 1.2.1 - 2010-06-29 - Dustin Bolton Added directory configuration option for Amazon S3. Various minor fixes. 1.2.3 - 2010-07-07 - Dustin Bolton Fixed improper label-checkbox associations. Added feature to continue in importbuddy even if backup ZIP file is not found. 1.2.4 - 2010-07-14 - Dustin Bolton Corrected updater conflict with 3.0 plugins. 1.2.5 - 2010-07-16 - Skyler Moore Fixed importbuddy.php from excluding differing prefixed tables. 1.2.6 - 2010-07-20 - Dustin Bolton Added additional protection to temporary backup data to prevent failed backups from leaking secure data. Updated siteurl option to end use of deprecated functions. 1.2.8 - 2010-07-21 - Dustin Bolton Fixed problem with subdirectories caused by previous siteurl option update. 1.2.9 - 2010-07-26 - Dustin Bolton Scheduled backups now are set up using local time as set by WP Settings page. Improved backup file sort order. 1.2.11 - 2010-07-27 - Dustin Bolton Fixed issue in updater preventing some other plugins from checking for upgrades. 1.2.12 - 2010-08-04 - Dustin Bolton Fixed issue where backup file listings could be viewed via wp-cron.php under some circumstances. Updated updater to be universal for PluginBuddy & iThemes branded products. 1.2.15 - 2010-08-11 - Dustin Bolton Removed FTP filename announcement for increased security during cron. Email notifications now properly going to specified address. Re-coded large portion of updater to better handle WordPress 3.0 issues better. Updated importbuddy.php to provide more detailed error warnings & links to codex. 1.2.17 - 2010-08-11 - Dustin Bolton Corrected some warnings in debug mode from updater. 1.2.18 - 2010-08-23 - Dustin Bolton Fixed some index warnings on settings page. Amazon S3 support now out of beta. 1.2.19 - 2010-08-25 - Dustin Bolton Directory exclusion would only exclude the last directory on some servers. Trimmed newlines to fix. 1.2.20 - 2010-08-26 - Dustin Bolton Licensing fixes. 1.2.21 - 2010-09-07 - Dustin Bolton Licensing fixes. 1.3.0 - 2010-09-09 - Dustin Bolton Major importbuddy.php rewrite for enhanced compatibility. Added new compatibility mode to importbuddy: ZipArchive Fixed FTP system not sending. Fixed default FTP type on manual FTP sending popup. Added debug logging to importbuddy.php to log into importbuddy.txt. Added new option to optionally select compatibility mode to force to. 1.3.1 - 2010-09-20 - Dustin Bolton Updated importbuddy.php to fail gracefully on non-supported PHP versions. Added additional logging to importbuddy.php for ABSPATH changes. Updated tooltip (?) to use new graphic. Fixed Amazon S3 SSL option to be able to disable. Added 'Get Key' link to Amazon S3 section. Fixed manually sending Amazon S3 failing in some cases. 1.3.2 - 2010-09-23 - Dustin Bolton Implemented fix for glitchy .htaccess file caused by malformed Fantastico .htaccess files. Fixed problem with migrating absolute paths on Windows servers caused by problems with file path format. 1.3.3 - 2010-09-28 - Dustin Bolton Fixed echo of SQL data on import when changing prefix. Added logging of version numbers into importbuddy.php. Fixed not initializing some variables. Added WordPress and PHP version checking to BackupBuddy to better warn of incompatibility issues. Added additional SQL logging to importbuddy.php to help find ninjas better. 1.3.4 - 2010-10-06 - Dustin Bolton Added additional warnings if trying to import to a database and existing WP is found with that prefix. Now blocking database merges in importbuddy.php to prevent data loss or corruption. Added URL migration of both www and non-www domain prefixes to importbuddy.php. 1.3.5 - 2010-10-12 - Dustin Bolton Updated updater to v1.0.1. 1.3.6 - 2010-10-18 - Dustin Bolton Updated updater to v1.0.2. 1.3.7 - 2010-10-18 - Dustin Bolton Fixed problem with FTP test & directory exclusion textarea in IE8. Improved format of Backup Status page. Added additional help question marks to Schedules page. 1.3.8 - 2010-10-27 - Dustin Bolton Fixed missing index on AWS SSL Encryption when not checked. Added option to limit number of stored backup archives. 1.3.9 - 2010-10-29 - Dustin Bolton Fixed non-array error when no backups exist. 1.3.10 - 2010-11-01 - Dustin Bolton Fixed lack of backup directory exclusion if no other directories were excluded. Added dashboard status. Tweaked various styling. 1.3.11 - 2010-12-02 - Dustin Bolton Fixed dashboard status showing for users with Dashboard access that were under admin level. 1.3.12 - 2010-12-08 - Dustin Bolton Amazon S3 now waits until the next page load to send on scheduled sending of full backups. This increases reliability. 1.3.13 - 2011-01-05 - Dustin Bolton Moved directory listing blockers from temp backup directory to wp-uploads root. 1.3.15 - 2011-01-07 - Dustin Bolton Fixed warning being displayed during database backup caused by 1.3.13 fix. 1.3.16 - 2011-01-07 - Dustin Bolton Database backup only fix for Josh. 1.3.17 - 2011-01-10 - Dustin Bolton Corrected problem with missing trailing slash for directory exclusion before wildcard. Could have resulted in too much being excluded. 1.3.18 - 2011-01-11 - Dustin Bolton Temporary security files now only generated for Full Backups. 1.3.19 - 2011-01-17 - Dustin Bolton Increased security of log file when logs are enabled for debugging. (log file moved to /wp-uploads/backupbuddy_backups/ with a unique file name per site) 1.3.20 - 2011-03-03 - Dustin Bolton Added additional debug error logging. Pre-2.0 - Dustin Bolton See history_archived.txt for older history information. 2.0.0 - 2011-02-12 - Dustin Bolton Complete overhaul with a multitude of features & enhancements. 2.0.1 - 2011-04-27 - Dustin Bolton File permissions warning on some servers on the Server Information page. Fatal error on some servers on the Server Information page. Update to 2.0 handles importbuddy password migration in a more stable way. Added ZIP backup serial to reported details during backup. Fixed import link on Getting Started page. 2.0.2 - 2011-04-29 - Dustin Bolton Removed hover to show select destination / edit links for remote destinations. Changed README.txt to readme.txt. Fixed importbuddy incorrectly reporting extraction failure in fallback modes. Fixed directory exclusions failing in some environments. Fixed database table escaping during backups. Fixed database rewrites in importbuddy. 2.0.3 - 2011-05-02 - Dustin Bolton Fixed problem with scheduled events not firing. 2.0.4 - 2011-05-02 - Dustin Bolton importbuddy.php now excluded from root of backups. Editing a full schedule auto-selected database only. Added readme.txt file for Rackspace testing. 2.0.5 - 2011-05-02 - Dustin Bolton Significantly improved compatibility with Alternate WP Cron system. define('ALTERNATE_WP_CRON', true); Removed false error message on scheduled backups with no remote destinations. 2.0.6 - 2011-05-03 - Dustin Bolton Improved directory exclusion migration from pre-2.0 to post-2.0. Added additional index check for adding remote destinations to prevent unkeyed indices. 2.0.7 - 2011-05-04 - Dustin Bolton Added additional alternate cron checks to avoid header already sent warnings on backup page. 2.0.8 - 2011-05-06 - Dustin Bolton Fixed case where editing a schedule could duplicate the edited schedule cron event. 2.0.9 - 2011-05-09 - Dustin Bolton Fixed extra slash being included when blocking directory browsing. Could potentially cause problems on some servers. Added additional index.php file for use in blocking directory browsing for additional redundancy. 2.0.10 - 2011-05-09 - Dustin Bolton Added alternate FTP port support by specifying the FTP address in the format: address:port such as yoursite.com:21. 2.0.11 - 2011-05-11 - Dustin Bolton Added schedule name to email notifications for scheduled backups for easier tracking of what triggered the backup. Added support for future an upcoming remote destination coming soon. 2.0.12 - 2011-05-13 - Dustin Bolton Added more logging to help debug issues. 2.1.0 - 2011-05-16 - Dustin Bolton Added Dropbox.com support for remote destinations. Improved status messages. 2.1.1 - 2011-05-19 - Dustin Bolton Fixed importing database tables including 'non-normal' characters in their name. Reduced status update delays from 5 seconds to 3 seconds. Corrected year in dates in history.txt file. 2010 -> 2011. Added additional cleanup function when loading Backup page to help take care of orphaned files from failed backups. 2.1.2 - 2011-05-23 - Dustin Bolton Added additional detailed information to compatibility options. periodic_cleanup() function subtracted time improperly, resulting in delays in periodic cleanup. Added warning if launching a new backup before the previous one finished. Fixed anti_directory_browsing not creating directory if needed. 2.1.3 - 2011-05-31 - Dustin Bolton importbuddy: Initialized $file_stream variable to false to prevent possible edge case when all possible .sql files are missing. Issue #26. Added log file viewer & option to clear to debugging information on the Getting Started page. Scheduled indices now increment based on an overall variable rather than incrementing based off the largest schedule index. Helps prevent rogue cron schedules from conflicting with a different schedule. Issue #25. Fixed issue where backup listing could list non-existant backups if glob() returned an error. Issue #27. Amazon S3 test did not test SSL option. Adding a remote destination could sometimes display a notice when debug mode was on. Added handling of colon (:) in the site url during backups. 2.1.4 - 2011-06-02 - Dustin Bolton Added additional checks on last index for adding schedules. Issue #33. Added limits for remote destinations. Issue #13. - Skyler Moore Removed casting array on glob for robustness. Issue #34. Added Loopback Detection to Server Info. page. Issue #5. 2.1.5 - 2011-06-06 - Dustin Bolton Updated updater lib to 1.0.3 to fix changelog link being broken. Fixed iThemes.com link on Getting Started page. Editing the first remote destination entered for a service could fail in some situations. Adding the first remote destination entered for a service to a schedule could fail in some situations. Fixed undefined constant notice in importbuddy.php on some servers. Fixed missing Knowledge Base icon. Issue #42. Fixed empty() being used on remote destination indices. Issue #41. Added notification of compatibility mode & codex link to fix it. 2.1.6 - 2011-06-07 - Dustin Bolton Fixed issue where first time visiting the backup page could warn of compatibility mode falsely. 2.1.7 - 2011-06-09 - Dustin Bolton Added robustness to remote limit so that it only deletes backups from the site the limit was set on. Updated backupbuddy.php: Added function backup_prefix() on line 1570. Updated all of the remote send functions to limit backups based on site backup prefix. Updated classes/admin.php to call the backup_prefix function in the backupbuddy.php file. Updated classes/backup.php to use the backup_prefix on line 132. Updated HTTP Loopback Connections warning URL. 2.1.8 - 2011-06-09 - Skyler Moore Fixed scheduled destination check not seeing overall first remote destination created in system. 2.1.9 - 2011-06-15 - Dustin Bolton Broke up database import and migration steps in importbuddy.php to improve chances of importing extremely large databases. Fixed greedy script limits not being called for each backup step. Increases backup time & memory on servers allowing increases. Issue #48. When in alternate cron mode a note is now displayed to verify that it is properly configured. Fixed typo on settings page for backup limits. Multiple improvements to Server Info. page. Importbuddy.php skips extracting a importbuddy.php file during the extraction step to avoid overwriting importbuddy.php with an older version stored in the archive. Fixed status not being updated on database migration step, resulting in user not knowing if page was still loading. 2.1.10 - 2011-06-20 - Dustin Bolton Step 7 of importbuddy was unable to cleanup some files. Issue #55. Removed re-chmod'ing files to delete. Partial fix for issue #56. Fixed new server information values not always being correct. Issue #58. Fixed mail_notify_error php error in one backup error case. Increased email destination character length. Added note about comma separation for sending email notifications to multiple addresses. 2.1.11 - 2011-06-28 - Dustin Bolton Temporarily reverted importbuddy.php to previous version to address potential bug on migrating of some serialized data. 2.1.12 - 2011-06-29 - Dustin Bolton Undid temporary importbuddy.php reversion from 2.1.11. Issues resolved. ImportBuddy script is now able to break up the database import into as many steps as needed for large database imports automatically. Added ImportBuddy option to override detected maximum PHP runtime value. Added ImportBuddy option to skip migration of database in addition to skipping direct import. Fixed function name not beging sent in backup error email. Added additional debugging information to error email when error logging set to debug mode. 2.1.13 - 2011-07-02 - Dustin Bolton Added `Classic Mode` to settings page to emulate to BackupBuddy 1.x backup mode. 2.1.17 - 2011-07-06 - Dustin Bolton ImportBuddy: Moved wp-config.php migration to end of database migration step to allow for hot-swapping site databases. Fixed version number. 2.2.0 - 2011-07-06 - Jesse Clark Added internationalization support. Added German (de_DE) language files. 2.2.1 - 2011-07-06 - Jesse Clark Fixed text domain issues. Renamed German language files. 2.2.2 - 2011-07-08 - Dustin Bolton Fixed remote destination selection for manual offsite transfer from returning a 404. 2.2.6 - 2011-07-14 - Dustin Bolton Fixed editing destinations problem. Issue PBBB-6. Parse error when deleting a file in the FTP manager. Issue PBBB-5. Fixed scheduled backups running in classic mode. Issue PBBB-7. importbuddy: wp_posts URL updating now handled by SQL and not checked for serialized data. Should increase migration speed significantly. importbuddy: Optional home URL is definable for migration. Fixed some `strange` activity with the saving system by bypassing WordPress update_options cache. WordPress was caching some saves creating unpredictable situations in some cases. This should prevent 'double backup syndrome'. Moved greedy_script_limits() function to backupbuddy.php to allow for calling it for remote transfers & server information page. Can increase time available for remote transfers on some servers. importbuddy: Added migration of home URL usage in wp_posts table during Step 6. Fixed call to incorrect error function when unable to create storage directory on Server Info page. Issue PBBB-18. Added schedule ID number to Schedules listing for easier matching to cron. Partial issue PBBB-9. 2.2.8 - 2011-07-19 - Dustin Bolton Fixed incorrect FTP remote destination error email. Issue PBBB-39. Temporary S3 test file was not being deleted after tests. Issue PBBB-40. Excluded backup directories not being listed in the status log. Issue PBBB-44. Moved greedy_script_limits() on Server Info page to below the Server Configuration section so default values would not be overridden. Issue PBBB-42. greedy_script_limits() now properly returns status information. Added additional logging information for support. Issue PBBB-43. Exec command now displayed properly while in classic mode. Issue PBBB-41. Backup would show two temporary file sizes if exec() failed but the PHP process continued. Issue PBBB-37. 2.2.9 - 2011-07-25 - Dustin Bolton Fixed warning on Server Info page. Added note to email remote destination warning about potential size limitations. 2.2.10 - 2011-07-27 - Josh Benham Removed debugging text(moose) 2.2.11 - 2011-08-22 - Dustin Bolton Fixed HTML glitch on Malware Scan page for Firefox on Mac. Improved .htaccess AddHandler parsing. Now ignores commented out lines and reports the AddHandler line if found. Issue #56. Backup directory path is now updated automatically if the path has changed. Useful if the site was migrated without using BackupBuddy. Issue #64. Preceeding slash is now required and automatically added if missing for FTP remote path if one is defined. Issue #50, #51. Individual destinations may now be removed from a schedule. Issue #21. Added display of the last run time to Schedules listing on Scheduling page. Issue #76. Misc. cleanup of schedules listings. Misc. small updates to Server Info. page. Unnamed remote destinations are now given a default name of [no name]. Sending files to remote destination no longer requires an additional page load to trigger transfer. S3 bucket now created as private for improved security. (files were already stored as private). Issue #79. 2.2.14 - 2011-08-31 - Ronald Huereca, Dustin Bolton, Josh Benham Ronald Huereca Modifications to backup.php functions to accomodate Multisite. BETA: Added Multisite support: Backup entire Multisite network. BETA: Added Multisite support: Export single site from within a Multisite network. BETA: Added Multisite support: Duplicate single site within a Multisite network. BETA: The following Multisite backups / restores are now possible: * Restore full multisite backup. * Migrate entire Multisite network. * Single stand-alone site into Multisite. * Multisite site to a single stand-alone site. * Multisite site into an existing Multisite network. * Duplicate a site within a Multisite network. Dustin Bolton: Improved reporting on inability to create backup directory. Also fixed Server Info page failing due to permissions issues. Added Error Code 9022. Issue #73. Fixed missing status colors on Server Info. page. Updated mail_notice() calls to mail_error(). Issue #66. Last run time is now reset when schedule is edited. Issue #82. Backup directory now displayed in span rather than input for better clarity that it is not modifiable. Issue #86. BETA: New importbuddy available as a link under the normal importbuddy script: General UI cleanup and polishing. Added Server Info. page's Server Configuration section within new 'Server Information' button on Step 1. Added ability to upload backups from local computer to server (only if importbuddy password is set; for security). Added more Advanced Configuration options for fallback unzip modes. Added more detailed status logging to each step in a textarea. Re-arranged and reduced step count for streamlining imports. When 'wipe database' option is selected the mysql test now reports warnings and notes it will wipe if it finds an existing database rather than errors. Rather than ALL rows of ALL databases having URLs and paths 'migrated', known tables/rows where no serialized data should ever show up are skipped for increate migration performance. All unknown tables/rows are scanned and updated if needed. Now also deleting the import directory on cleanup step. Broke out all importbuddy functionality into separate files in the importbuddy directory. This directory and contents are 'extracted' from importbuddy.php if they do not exist. Broke out database migration functions into a new class for easier updating to handle new databases and scenarios. Now using ZipBuddy class for full zip compatibility fallbacks including ZipArchive & PCLZip. Issues #10, #36. PCLZip no longer throws undefined constant notices. Issue #14. No longer re-enabled commented out WP_SITEURL & WP_HOME instances in wp-config.php. Issue #52. Better testing / handling of serialized data. Issue #62, #29. Updated importbuddy to use BackupBuddy's greedy script limits funtionality. Issue #69. Improved ImportBuddy error messages. Issue #38. Better parsing of configurations in wp-config.php. Issue #33. Josh Benham: Added new updater. 2.2.15 - 2011-09-01 - Dustin Bolton is_network_admin() is now only called after verifying the function exists; added in WP 3.1. Misc UI updates for consistency. Added additional directions to new Multisite features. 2.2.16 - 2011-09-09 - Dustin Bolton Fixed adding Dropbox accounts by changing stripping of characters to use strip_tags_deep. 2.2.17 - 2011-09-13 - Dustin Bolton Fixed database import chunking in beta importbuddy script. BackupBuddy now automatically attempts to use command line zip from common paths if it is not found in the default path. Placed emphasis on beta importbuddy on backup page to encourage beta testing. Fixed undefined index on first-time activation while in debug mode. 2.2.18 - 2011-09-16 - Ronald Huereca Fixed Multisite import for subdomains and invalid URL replacements Fixed Multisite import for mapped domains and invalid URL replacements Added Multisite import feature where you can import directly into a mapped domain 2.2.19 - 2011-09-19 - Dustin Bolton Fixed missing space in command line zip warning caused by localization. Fixed new Dropbox destination confirmation saying Amazon S3. Issue #81. Removed S3 video in Dropbox directory tip. ImportBuddy Updates: Updated ABSPATH to use WordPress style with trailing slash. Updated all uses. Issue # Fixed all sites being detected as Multisite instances. Issue #97. Fixed table bruteforcing displaying `Working` seemingly endlessly on very large tables. Could cause mysql to go away also. Issue #98. Post GUIDs are no longer updated during migrations as per http://codex.wordpress.org/Changing_The_Site_URL#Important_GUID_Note .. Issue #96. Added addslashes() into importbuddy status function for javascript passing. 2.2.20 - 2011-09-20 - Ronald Huereca Fixing an updater issue with licensing and sticking. 2.2.21 - 2011-09-22 - Ronald Huereca Fixing an updater issue with licensing and sticking. 2.2.22 - 2011-09-22 - Ronald Huereca, Dustin Bolton, and Jeremy Trask Fixed a duplicate site issue with sub-domains using Multisite Added memory usage to Server Information page. Added Dropbox memory notice to Dropbox remote destination page. Calculates an estimate of backup file limits due to memory exhaustion. Added ZipBuddy alternative 2.2.23 - 2011-09-27 - Ronald Huereca Fixed Multisite Export to Self-hosted with regards to wrong upload directories (users with previous issues will need to re-import and re-download ImportBuddy). Fixed Multisite Import with regards to users and passwords. Fixed Multisite Import bug where a site with a BackupBuddy schedule triggers a network-wide backup Added Multisite Codex information on appropriate pages Fixed Backup Reminders on Multisite 2.2.24 - 2011-09-27 - Ronald Huereca Fixing an "undefined" function call in Multisite import 2.2.25 - 2011-09-28 - Ronald Huereca Miscellaneous bug fixes 2.2.26 - 2011-10-03 - Ronald Huereca Fixed several site duplication issues with Multisite including table structure, media upload directory, user migration, and table migration 2.2.27 - 2011-10-04 - Dustin Bolton Fixed missing spaces in 25 seconds without zip increase warning caused during localization. Added link to codex for error 3382. 2.2.28 - 2011-10-10 - Dustin Bolton Added initial demo mode capabilities. Removed serial logging even when in optional 'log everything' mode for added security. Added randomized serial for debugging log file for added security. Fixed Working.. issue. Re-surfacing of Issue #98 due to repo reversion. Fixed unzip.exe path including an extra slash / in the zipbuddy library. Issue #112. Made RepairBuddy more visible for more extensive beta testing. 2.2.29 - 2011-10-26 - Daniel Harzheim, Dustin Bolton Daniel Harzheim Log file not showing on Getting Started Page. Issue #123. Wrong video on Settings page. Issue #105. Settings indicate sFTP not the correct FTPs. Issue #126. Dustin Bolton importbuddy: Problem with Multisite backup detection in import causing problems for standalone migrations with custom home url. Issue #130. importbuddy: Problem with Multisite backup detection in import causing problems for standalone migrations with split url. Issue #131. importbuddy: Fixed ability to skip database import. Issue #114. importbuddy: Database test incorrectly stated that the database would be wiped even when wiping is not enabled. Issue #103. backupbuddy_temp directory cannot be added to directory exclusion list. It is handled automatically. Issue #57. Dashboard stats overview now hidden in Multisite mode. Partial fix of issue #63. Added support for UK RackSpace network. Issue #110. Added manual file cleanup button to Getting Started page to force cleaning up all files now. Issue #23. Added bucket name compliance checking. All rules should be conformed to. Issue #106 Added display of PHP disable_functions option to Server Info. page. Errors on lack of exec or ini_set currently. Issue #31. importbuddy: Explicitly setting PHP timezone to avoid warnings. Issue #132. 2.2.30 - 2011-11-15 - Dustin Bolton Multisite Import Overhaul (BETA) Complete overhaul of Multisite Import functionality. Rewritten to use libraries and modular code rather than old importbuddy. Major changes to Multisite Import architecture for robustness and usage of modular libraries. MS Import process now displays status logging. MS Import now supports full ZIP compatibility fallback procedure. General UI changes. Many, many more changes. Added additional logging to importbuddy. Added new 'Ignore SQL Errors' advanced option to importbuddy. 2.2.31 - 2011-11-17 - Dustin Bolton Fixed PCLZip low speed compatibility mode not working as of 2.2.30. Issue #142. 2.2.32 - 2011-12-15 - Dustin Bolton Fixed Step 5 of Multisite import looking for database in wrong path in some installations. Log now displays: "Looking for database to import in directory:" Added additional logging to process_backup() function in backup.php. Added BackupBuddy version number in all emails sent. Added better error reporting for failed Amazon S3 sends and updated S3 send error from 9002 to 9024 due to duplicate error number. Added additional detailed return data for failed Amazon S3 transfers. Added new menu icon for WordPress 3.3. Added noindex meta to importbuddy HTML for added security against search engine indexing of importbuddy.php. mySQL server going away mid database dump now halts backup. Added error #9026: http://ithemes.com/codex/page/BackupBuddy:_Error_Codes#9026 Issue #54. Status logs now display `(Started new PHP page load process.)` each time a new PHP process begins logging for additional troubleshooting help. Backup pings are now displayed in same format as other commands: `##:##:##: Ping. Waiting for server . . .` rather than `########|ping`. importbuddy: Log file no longer has htmlentities() and addslashes() applied to messages by status(). Only applied to JS output now. Issue #111. Added additional logging to remote file sending functions where they attempt to delete excess files based on a remote destination limit for debugging. Now also logs if there is no limit to enforce. Help debugging of Issue #122. Backup archive limits (size and number) are no longer enforced by visiting the Backup Listing page. They are now only enforced post-backup. Backup limits will no longer allow deleting of the just-made backup. Worst case if the user sets the limit too low is that only the latest backup will be kept. Issue #70. Dropbox failures did not properly report failing. Now reports failures and logs array of the HTTP response for troubleshooting. Issue #125. Fixed undefined index warning when deleting a remote destination you were editing. Issue #135. ImportBuddy password is now required and no longer optional. It must be provided to even download. Added double ImportBuddy / RepairBuddy password fields for verification. Issue #90. Added instructions to Getting Started page reminding to set email notification and passwords prior to getting started. Removed RepairBuddy page for consistency. Added RepairBuddy download to Backup & Restore page. ImportBuddy log file now included a unique string of characters for added security. Clarified BackupBuddy backup and temporary directory exclusions on settings page. Issue #109. Tables that lack both a PRIMARY key and a UNIQUE key are not able to be updated due to risk to data integrity. Added Error #9029 if this is encountered rather than a nondescript error. Issue #85. Fixed double URL replacements if the new URL included the old URL. Issue #144. Modified Multisite Import to allow full domain import URL rather than just subdomain. Fixed user roles not migrating when importing into Multisite. Issue #146. CSS tweaks on backup listing page. Added advanced Compatibility / Troubleshooting option to skip database dump on backup. Useful if user cannot dump database for some reason. 2.2.34 - 2011-12-16 - Dustin Bolton Updated automatic upgrader to version 1.0.8 to address periodic issues with upgrades. 2.2.35 - 2012-01-25 - Dustin Bolton Multisite beta: Fixed usermeta entries with a key prefixed with the table name not being migrated properly. Multisite beta: Fixed non-network-admins not having access to export individual sites when this option is enabled. ImportBuddy: Split URL migrations modified to update both site URL and home URL in the proper order when doing mass replacements. ImportBuddy: Fixed preg_replace backreference issue with wp-config password replacement. Now filtering password through preg_replace_back(). Multisite beta: Fixed unexpected $end on Step 7 of MS import. Fixed error email sending error about running function ``. Steps array for backup was not being cleared. Due to timing this manifested in some cases. WP 3.3 seems to have started this. Added additional error reporting for Rackspace container handling for better troubleshooting. Fixed duplicate directory separator in error file path in alternate zipbuddy. Issue #166. 2.2.36 - 2012-??-?? - Dustin Bolton Error on migrating comments table data. Issue #165. Fixed javascript error in some browsers in importbuddy.js due to extra array comma. Updated Rackspace Cloud cacert.perm SSL Certificates. Added further UK support for file sending, browsing. Now saving backup step start and finish times to prevent race conditions caused by over-zelous WordPress cron. This is an incomplete solution so far. Missing old home url in DAT file no longer holds up import. Fixed typo in remote destination sending on Rackspace UK servers. Now using ftp_chdir() prior to deleting files. Prevent directory doubling issues. Updated x-zipbuddy files for fixing exclusions on Windows is compatibilty mode. Fixed remote FTP limit failing to trim files on some servers when a path is given. Added server/port information for FTP test errors. Fixed incorrect variable $rs -> $destination in remote_send_rackspace() call. 3.0.00 - 2012-04-04 - Dustin Bolton BackupBuddy ported into new PluginBuddy framework. Massive maintainability improvements, performance, logging, standardization across plugins, massively improved code documentation. Misc. code cleanup, improvements, robustness enhancements. More / clarified code documentation. Refactored various code to fit the style of the new framework better in many (but not all yet) areas. Directory size listing now highlights exclusions and shows excluded sizes. Issue #53. Backup options now hidden from editors/others on publish if they don't have plugin access. Issue #63 ImportBuddy now checks for existing .htaccess / php.ini files and warns of potential issues. Issue #116. Troubleshooting option to delete all backups prior to backup creation added. Issue #118. Added full logging to Multisite functionality. Issue #128. Displaying BackupBuddy versions in all logging now. Issue #136. Added command line based mysql dumping capability with auto-fallback to old method. Issue #147. ImportBuddy now verifies that mysql prefix provided is using valid characters. Issue #148. ImportBuddy will display the new wp-config.php file if it is unable to update it due to permissions or other issues. Issue #149. Remote send and scheduling now has better logging. Issue #153. Directory tooltip added for Dropbox destination with better information. Issue #156. Option for email notification when scheduled events begin added. Issue #158. Manual remote sends would sometimes report failure starting even when proper success respnse was sent to javascript. Trimming response now. Issue #160. FTP client viewer now handles empty directories properly. Issue #161. ImportBuddy checks and warns of odd media directory issues. Issue #170. ImportBuddy now properly warns if a corrupt / incomplete importbuddy.php tries to run. Prompts to re-upload. Issue #171. Fixed Malware scan logo on Malware scan page not displaying properly. Issue #173. Added blog title to notifcation emails for easier filtering. Issue #174. Multisite export was resulting in an extra trailing slash in image links. Issue #175. Server Info page now offers more 'best' recommendations. Issue #180. Added more logging and details to logs during backups for better troubleshooting. Issue #181. Database table inclusion / exclusion feature added. Issue #186. Added command line mysqldump availability to Server Info page. Issue #187. Command line mysql importing added into ImportBuddy for enhanced performance / large database support. Issue #188. Ported ImportBuddy script into framework; able to run in framework standalone outside of WordPress. Issue #195. Added detailed statistics tracking including: time needed to run each step, attempts needed, write speed, memory usage, etc. Helps track down timing and memory usage issues. Issue #199. Added Automated (Magic) Migration for easier migrations / site deployment. Issue #200. ImportBuddy now runs in framework sans WordPress. Issue #201. Added command line mysqldump for backing up with auto-fallback. Issue #204. Massive rewrite of Multisite Export to re-use code and libraries for robustness and sustainability. Issue #205. Database size with exclusions now shown on Server Info page. Excluded tables are now highlighted. Issue #207. Ported Mulitiste Import partially into new framework methodology. Issue #213. Converted Alternate Zip mode into framework methodology. Issue #214. Remote destination sending stats now shown on Server Info page for debugging remote sending issues. Issue #216. Added jQuery date/time picker back onto Scheduling page for easier modification of schedule dates/times. Issue #233. Special thanks to Ronald Huereca for the initial code for BackupBuddy Multisite features and functionality. Added '&clear=true' to end of Malware scan query. Internal transient caches for 1 hour; rescan now bypasses transient so this query should force a re-scan then. Confirmed to fix by Malware scan provider. Issue #223. Fixed off conflict with Simpler CSS plugin. Issue #226. Fixed importbuddy Fails to Load pclzip on Windows Platform. Issue #232. Added support for wp-config.php in parent directory. Copied to temp directory on backup and restored to root on import. Issue #84. Added beta option to enable viewing of files within ZIP archives. ImportBuddy wipe database option changed to wipe database tables that match prefix. Ignore existing WordPress table option in ImportBuddy allows appending to existing database tables. ImportBuddy & RepairBuddy passwords no longer stored in database; only hash is stored. Added BETA Database mass text replace (with serialized data support) feature to bottom of Server Info page. -- ALPHA -- 3.0.0a - 2012-04-05 - Dustin Bolton Fixed full backups excluding temporary directory resulting in bad backups. Added ImportBuddy advanced option to force database import compatibility mode. Fixed download link on backup listing in admin. Security enhancement: Added .htaccess file to prevent ALL access to archive downloads. Clicking to download from the admin temporarily lifts this restriction for 8 seconds before it is is re-created. Prevents brute force attempts. ImportBuddy HTML cleanup for Multisite imports/restores. Fixed Server Info section in ImportBuddy not working. Added changelog information of some changes from tracker. 3.0.0.1a - 2012-04-05 - Dustin Bolton Warning of existing WordPress directories now takes into account directory exclusions. ImportBuddy Server Info button fixed. Fixed hover actions on all backup listing being broken: send file offsite, migrate backup. 3.0.0.2a - 2012-04-06 - Dustin Bolton Missing write speed now shows unknown on backup listing. Malware scan Malware Found wording updated. Now stripping public_html from migration URL guess. Fixed double URL replacement issue when migrating from / to same domain. Added headings to all Multisite Import steps for clarity on what each step does. Added additional flush()'s to Step 5 DB import of Multisite to try and help browser hanging when backups are large. Added .htaccess high archive directory security mode option to advanced options. Default: off for now until made to work everywhere. Fixed warning of backup with unfinished steps remaining despite being finished. 3.0.0.3a - 2012-04-09 - Dustin Bolton Updated loopback test to allow for -1 or 0 as valid response in body that loopbacks work. Fixed inability to send to remote destination manually from backup page. 3.0.0.4a - 2012-04-10 - Dustin Bolton Fixed wording when copying remote backup from a destination to local. Fixed bulk deletion on remote destination clients being broken due to missing nonce. Fixed copying from remote destinations to local for: Dropbox, FTP. Possibly Rackspace and S3 also. Cleanup of remaining $this->_parent references. Cleanup of remaining $this->alert() references. Framework status() method now writes to main log file by calling framework log() method if applicable based on logging level setting. 3.0.0.5a - 2012-04-11 - Dustin Bolton Fixed Malwware `Rescan Now` button. Fixed manual remote sending PHP error. Fixed high security backup directory mode getting stuck enabled. 3.0.0.6a - 2012-04-13 - Dustin Bolton Cleanup of remaining $this->_pluginPath references. Moved experimental zip - > alternative_zip option. Added erase, getting status options to pb_backupbuddy::get_status(). Fixed Alternative Zip Mode. Fixed PCLZip failing due to log file being deleted mid-zip. 3.0.0.7a - 2012-04-16 - Dustin Bolton Getting Started page: Fixed Getting Started page columns to not overlap. - re: Chris Sidebar now uses bullets for consistency. - re: Chris Example play icon now links to BB introduction - re: Chris Reference to configuring settings now points to settings page. - re: Chris Backup: Fixed undefined index for finish time in two places. - re: Chris Backup list now properly sorting by modified date, not filename. - re: Chris Settings page: Now setting error notification recipient by default if none provided based on WordPress admin_email. - re: Ronald Fixed additional table inclusion / exclusion tooltip. - re: Ronald Made troubleshooting options not greyed out. - re: Ronald Reworded thickbox modal window title. (also on backup page). - re: Ronald Example password is not valid for ImportBuddy or RepairBuddy password for security. - re: Chris Scheduling Raised hard-coded time/date format for scheduling as an enhancement request. Requires investigation on how to implement. - re: Ronald https://projectpress.net/bugs/backupbuddy/issues/PBBB-236 Form cleared after submission for adding new schedules. ImportBuddy Fixed additional slash in assets URLs. - re: Ronald Fixed assets being included after . - re: Ronald Added new suppress status parameter to set_greedy_script_limits() to hide status output pre-. - re: Ronald Added proper doctype / HTML header. - re: Ronald Magic Migration Added instructions in thickbox popup. - Cody Remote Destinations: Fixed thickbox not auto-resizing to fit window. - re: Chris Added more spacing for video tutorials played within an already open thickbox. - re: Chris Fixed Dropbox PEAR paths to not rely on external PEAR, only included assets. Also addresses open basedir restriction issue with PEAR. - re: Chris Fixed table listing header/footer styling. - re: Chris 'Select this destination' option removed for email except for manually sending file as there is no remote client. - re: Chris FTP testing / sending now automatically creates remote path if it does not exist. Updated tooltip to note this. - re: Chris Fixed remote destination editing / adding dropping back to the main remote destination page. - re: Chris Minimum validation to insure that required fields are entered added until remote destination system is updated into framework. - re: Chris Updated remote destination save message. - re: Chris Added loading spinners for S3 and Rackspace pages. - re: Chris Misc remote destination code fixes. - re: Chris Fixed undefined $rs_path for Rackspace client. - re: Chris Duplicate copying to local now allows local duplicates via insertion of random characters. - re: Chris Fixed duplicate inclusion of S3 section. - re: Chris Server Info page. Fixed missing loading_large_darkbg.gif. - re: Chris No longer showing recent remote file transfers if there are none. - re: Chris Fixed directory listing icicle passing additional action via POST overriding GET action. - re: Chris Added directory size listing anchor to drop page to correct location. Added bug tracker enhancement to move this to using AJAX in the future (issue #237). - re: Chris Misc. All instances of using the color #AFAFAF for descriptions has bene replaced with using the description class for consistency and usability. - re: Chris Fixed class to status method with one param rather than the required two in cron.php. - re: Chris Updated all list tables to not display when empty. Explanation is given that no items of that type have been created. - re: Chris 3.0.0.8a - 2012-04-17 - Dustin Bolton Fixed "{Missing actions method `save`.}" message on post/page editor screen. - re: Ronald Detected mysqldump basedir is first trimmed of trailing slash then /bin/ appended. Avoids missing slash depending on configuration. - re: Jeremy mysqlbuddy class now handles the host being sockets (ie WordPress DB_HOST returning `localhost:/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock`. - re: Jeremy mysqlbuddy Array merging of tables now clears out any phantom blank tables added to the list. mysqlbuddy fixed to properly list specific tables to dump IF not dumping the entire database. Lists specific tables if only this WordPress is set to backup and/or exclusions are listed. - re: Jeremy mysqlbuddy attempted to mail an error if a missing table was set to be backed up. Was calling function on non-existant core class. Removed this feature as I'm not sure we want to throw emails on a non-existant additional table anyways. - re: Jeremy mysqlbuddy compatibility mode now logs status details per table dumped. - re: Jeremy Classic zipbuddy now caches zip testing like alternative zip method. - re: Jeremy Added additional logging to classic zipbuddy zip testing. Added log file viewer into Getting Started page. - re: Jeremy New writable files directory structure. All plugins will be following this structure in the future. - re: Jeremy All logging, status files, etc are now standardized to reside in: ...\uploads\pb_backupbuddy\ Log file names are now standardized as follows: ...\uploads\pb_backupbuddy\log-xxxxxx.txt ...\uploads\pb_backupbuddy\status-xxxxxx.txt ...\uploads\pb_backupbuddy\status-xxxxxx_xxxxxx.txt Upcoming future goal is to get the backups archive and temp directories moved within these as well. This will require a lot of updating and testing due to hard-coding of paths (bad past mistake...): ...\uploads\pb_backupbuddy\backups\ ...\uploads\pb_backupbuddy\temp\ Adjusted some tooltip wording. - re: Jeremy Getting Started page tweaks. - re: Jeremy Fixed backup links on Getting Started page. - re: Jeremy Database table exclusions now logged in DAT file. - re: Jeremy Fixed reversed backup listing sort order. - Dustin Added this WordPress' table prefix for database section tooltip. - re: Jeremy Misc settings page wording tweaks. - re: Jeremy Added better explanation to what Automatied Migration offers. - re: Jeremy Now hiding backup statistics on the migration page. - re: Jeremy Fixed 'undefined' message when leaving the backup page during an AJAX request. - re: Matt Misc. importbuddy tweaks. - re: Josh PHP Info button AJAX not working in thickbox. - re: Elise Misc spelling / grammar. - re: Elise Fixed section separator being missing ( ‹ ) in title. - re: Cory Fixed being able to toggle displaying / hiding graphical directory size map. - re: Cory Misc. text modifications. - re: Cory Added link to discounted Malware scanner packages on Malware page. - re: Cory Fixed upgrade reminder link. - re: Cory Added additional instructions to various pages. - re: Cory Added tip of using S3, Rackspace, or FTP as preferred destinations. - re: Cory Misc tweaking. - re: Cory 3.0.0.9a - 2012-04-23 - Dustin Bolton Fixed excess trailing slash in backup_root in backup.php. - Dustin Cleaned up activation warning if anti_directory_browsing() fails on plugin activation. - re: Jeremy If anti directory browsing files cannot be created in backup page, that error is giving only rather than displaying warnings of existing WP installations, etc also. Added additional details such as directory to check permissions on. - re: Jeremy Settings page is no longer halted if unable to create ani directory browsing files; just warns. - re: Jeremy Added an additional check to verify status log directory is writable in preflight check. - Dustin Fixed missing parameter $serial for final cleanup step. - re: Jeremy Fixed table exclusions not being performed by mysqldump mode. - re: Jeremy mysqldump library now handles duplicate additional inclusions/exclusions cleanly. - re: Jeremy Database connection no longer established if it already exists. - re: Jeremy Added troubleshooting option to force database dump compatibilty mode to settings page. - re: Jeremy 3.0.0.10a - 2012-04-25 - Dustin Bolton Added additional exec() exit code logging to zipbuddy library. - Dustin Misc text updates on settings page. - Dustin Added listing of existing site backups to Multisite import page to make duplicating sites easier. - Dustin 3.0.0.11a - 2012-04-26 - Dustin Bolton Fixed Server Info section notices preventing continuing to next step in importbuddy. Fixed excess slash provided by standalone site_url() in Windows. Fixed keys needing reordering in dbreplace class remove_matching_array_elements() causing undefined index notices in importbuddy. Status log directory creation enforced in periodic_cleanup() now. 3.0.0.12a - 2012-04-30 - Dustin Bolton Misc code cleanup. (housekeeping, mint for pillow, etc). - Dustin Added back (BETA) note next to the titles on the pages for Multisite features. - Dustin Fixed status status log timestamps not being localized to correct time based on WordPress settings. - re: Jeremy If command line length appears long ( > 250 chars ) then a command is run to try to determine max command line length before continuing. If this limit is exceeded then falls back to compatibilty mode. - re: Jeremy On table prefix change, a $file . '.tmp' version is created that is used for import rather than overwriting original .SQL file. - re: Jeremy. 3.0.0.13a - 2012-05-04 - Dustin Bolton Started _docgen.php for internal comment gathering from all PHP files. - Dustin Come code cleanup. - Dustin Properly fixed backup ordering to be based on last modified date. Accidently used size value previously. - re: Chris Changed function names in hover integrity popup to pretty versions instead of function names. - re: Chris All textareas used for displaying information are now set readonly in the plugin ( readonly="readonly" ). - re: Chris Updated all instances of 'it-l10n-backupbuddy' to 'LION' to correct for other modifying BackupBuddy using downloaded versions. - Dustin Mass replace 'LION') to 'LION' ) for consistency. - Dustin Removed DIV wrapper around Dropbox authentication buttons to fix wide-button issue. - re: Chris Remote destination test buttons are now normal anchor buttons instead of submit buttons. No longer interferes with keyboard form submission. - re: Chris Backup list on migration page now only shows full backups. - re: Chris Backup list on migration page no longer lists backup type since all are now full. - re: Chris Added duplicate feature for remote destinations for easier modification / temporary destinations until remote destination system is refactored. - re: Chris Added ability to automatically migrate to a local path on the same server. - re: Chris Removed backup destination suggestions from top of migration destination selector. - re: Chris Added force cleanup button to getting started page for forcing periodic cleanup procedures to occur NOW in-page. - Dustin Updated magic migration bad URL message to inform that you can re-enter the URL without leaving the page / re-starting migration procedure. - re: Chris If http:// is missing in URL for magic migration it is prepended before sending to WordPress HTTP API to avoid invalid URL message. - re: Chris Removed `Status:` from in front of message on magic migration process once importbuddy is displayed in browser as status messages are no longer displayed there once importbuddy loads. - re: Chris Magic migration URL form is now inside a form element to allow keyboard usage to work better. - re: Chris Magic migration URL is now pre-populating with the guess. - re: Chris RE CHRIS NOTES: The backup file listing shows a lot of "Unknown" strings. Considering that some of the listings have seven unknowns, the information becomes muddled and difficult to read. Unknown should only be displayed for old backups (hopefully). Any suggestions on cleaning this up for backups that lack this data? PclZip issue Unable to replicate. This error is thrown here. From your log this means that fopen must have returned a false for some reason for you. 1953 if (($this->zip_fd = @fopen($this->zipname, $p_mode)) == 0) 1954 { 1955 // ----- Error log 1956 PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Unable to open archive \''.$this->zipname.'\' in '.$p_mode.' mode'); 1957 1958 // ----- Return 1959 //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo()); 1960 return PclZip::errorCode(); 1961 } After adding a destination, it appears that the only thing that happens is that the inputs empty. I have to scroll to the top of the dialog to see that something has actually happened. The same thing happens when modifying an existing destination except that the inputs do not clear out after submission. If the submission is to be handled by Javascript and not a fresh page load, then the page should be automatically scrolled to the top so that it is clear that the action did something. Unable to replicate. Forms submit without javascript and the action goes back to the same page with an anchor to the same tab so it should be going to the top. When selecting an existing remote destination, what if I want to use a different path? An option should allow for customizing the path without requiring modification of the remote destination (if the destination is used for backups and the user forgets to change it back after the migration, then their new site will start to fill with backups). The feature should support supplying new FTP information without creating a new destination. The entire remote destination system needs refactored and really needs to be done to make this doable without severe rigging. As a workaround I've added the ability to duplicate destinations for now until the destination system is redone. Backup listing actions inconsistent. For example clicking the backup filename on the migration page shouild start migration instead of downloading the archive. @see Chris' suggestions for handling this. - re: Chris 3.0.0.14a - 2012-05-07 - Dustin Bolton Fixed Multisite Network scheduled backups not being marked as a MS backup in DAT file. Added trigger details into DAT file. Misc cleanup. 3.0.0.15a - 2012-05-08 - Dustin Bolton Added '&clear=true' to end of Malware scanner query. Internal transient caches for 1 hour; rescan now bypasses transient so this query should force a re-scan then. Confirmed to fix by Malware scanner. - re: Jeremy; Issue #223. Cleaned up backup.php - re: Chris Updated default widths of pages to fully extend instead of 80%. - re: Chris Fixed div's inside anchor tags on backup page. - re: Chris Local migrations no longer require the destination directory to exist. - re: Chris Automated migrations automatically authenticate to importbuddy for more speedy usage. - re: Chris Fixed broken loading image for database test. - re: Chris Fixed weird character next to loading notification for database test. - re: Chris Adjusted status textarea widths. - re: Chris Made default click of a backup name in a backup listing performs - re: Chris Removed excessive status read reporting for multisite import. - re: Dustin Increased textarea width & height for multisite import. - re: Dustin Added additional logging to mysql exec(). - re: Dustin 3.0.0.16a - 2012-05-10 - Dustin Bolton Updated plugin description and wording. - re: Benjamin Added more detailed instructions for adding a Dropbox remote destination. - re: Benjamin Fixed mismatched capitilization for "Manage Remote Destinations & Archives" button vs thickbox title. - re: Benjamin Added cron information to the scheduling page. - re: Benjamin Added link to Server Info page on scheduling page for cron information. - re: Dustin/Benjamin Added link to WP-Cron Control plugin on scheduling and Server Info page for more cron control. - re: Benjamin Fixed capitilization case on backup status bar to be consistent - re: Benjamin Fixed off conflict with Simpler CSS plugin. Issue #226. Fixed importbuddy Fails to Load pclzip on Windows Platform. Issue #232. Added support for wp-config.php in parent directory. Copied to temp directory on backup and restored to root on import. Issue #84. - re: Jeremy Modified how DB testing works on step 3 of importbuddy. Now requires a successful test to proceed. - re: Chris 3.0.0.17a - 2012-05-11 - Dustin Bolton Removed weird editbox styling and editbox ID from tabbing. Not sure what that was there for. - re: Chris Parent-directory wp-config backups no longer marked as bad. - Dustin Fixed invalid caching of command line zip path location. - re: Chris Fixed Undefined variable: zip_methods in projectbadger/classes/backup.php on line 21. - re: Chris Enhanced URL migration guess URL. - re: Chris Password fields on Settings page now display values and use classes "regular-text code". - re: Chris Added 'classes' option to form settings system to set classes on settings fields. Misc other fixes. I think I may have missed noting some... 3.0.0.18a - 2012-05-12 - Dustin Bolton Now redirecting STDERR to STDOUT when using exec() via '2>&1'. - re: Chris Now pre-loading core class during backups if not already loaded. Added additional logging to failed access to the $wpdb object for cleaner failure and troubleshooting. - re: Chris Now creating PCLZip storage directory if it does not exist. On some systems it seems to be unable to create this itself. - re: Chris "The backup archive file size has not increased in 300 seconds" message delay is now incremented each time it is shown. - re: Chris Fixed Undefined offset: 2 in projectbadger/controllers/filters.php on line 18 - re: Chris Fixed Undefined index: ch02mrmdk0 in projectbadger/classes/core.php on line 1559 - re: Chris Fixed Undefined index: ch02mrmdk0 in projectbadger/classes/core.php on line 1564 - re: Chris Now appending common command paths prior to running exec() commands. - re: Chris Added Brad's updated scheduled destination removing button & directory exclusion button to be larger. - re: Chris 3.0.0.19a - 2012-05-14 - Dustin Bolton Added new GUI graphics. - re: Brad Added error graphic LED when backup fails - re: Chris 3.0.0.20a - 2012-05-15 - Dustin Bolton Fixed compatibility mode database import to support new mysqldump .sql files. - re: Jeremy Changed post-backup download zip link to button. - re: Brad 3.0.0.21a - 2012-05-15 - Dustin Bolton Now setting commandline path per execution. Pulled out calls to exec() into new pb_backupbuddy_commandline class. In the future all commandline executions will be funnelled through this class instead of having handling fallbacks, exec detection, etc in multiple libraries as we have grown to using commandline in multiple places now (zip, mysqldump, textreplace, etc). Only one alert is now displayed if a backup appears to have stalled. Subsequent messages are now displayed in the message box. - re: Chris If the backup stalls for 5 minutes or more a warning is displayed with each update inside the messages box that the backup may have stalled. - re: Chris 3.0.0.22a - 2012-05-15 - Dustin Bolton Fixed extra slash in code causing: Warning: Unexpected character in input: '\' (ASCII=92) state=1 in projectbadger/pluginbuddy/lib/updater/updater.php on line 290. - re: Chris $zip->close() now only called if open succeeded to avoid error Warning: ZipArchive::close() [ziparchive.close]: Invalid or unitialized Zip object in importbuddy/lib/zipbuddy/zipbuddy.php on line 497. - re: Chris Added additional code to try to force flushing to work so Step 6 of importbuddy won't have broken CSS / JS due to the files getting deleted before wiping. - re: Chris Migrations to local paths now prompt for optional URL before sending files. - re: Chris Local migration test now warns if WordPress already exists. - re: Chris Local migration test now verifies that URL matches path by placing a temporary test file. - re: Chris Added optional URL field for local migrations so that the path/URL combination can be verified. - re: Chris MINOR ISSUES NOT YET IMPLEMENTED: Magic migration inclusion of importbuddy means the migration no longer matches WordPress styling when still inside WordPress. - Cody Getting Started page far-right column hanging off page edge slightly still. - Dustin It could be helpful to redirect or display help information on using ImportBuddy or RepairBuddy after clicking to download the script. Re-evaluate how this currently works to implement this. This would be helpful for guiding users. Capitalization in S3 bucket names seem to be ignored when copying. Not sure why this would happen yet. - re: Chris Magic migration: If sending to remote destination and the file already exists then don't overwrite without confirmation. @see Chris suggestions on handling this. - re: Chris Ability to resume imports/migrations. - re: Chris -- BETA -- 3.0.0.2 - 2012-05-21 - Dustin Bolton Released 3.0 beta to existing customers. 3.0.0.3 - 2012-05-22 - Dustin Bolton Added just-in-case FTP test file deletion even if upload returns failed. Cleans up in case test file was created even though it reported a feailure. - re: thewpguy pb::get_status() now returns an empty array instead of false if no log is found. Fixed RepairBuddy not copying password and BackupBuddy version into repairbuddy.php on generation. Step 6 is ImportBuddy now properly shows home URL in confirmation for split url type migrations. - re: Gilbert http://ithemes.com/forum/topic/27929-302-importbuddy-step-6-wrong-assumption-about-where-is-really-the-site-site-address-home-url/ Fixed textareas on Settings page being read only. - re: Gilbert http://ithemes.com/forum/topic/27922-302-settings-cant-edit-fields/ 3.0.0.4 - 2012-05-23 - Dustin Bolton Fixed version number. - re: Gilbert Fixed ImportBuddy reporting import complete on siteurl when it should be homeurl. Step 5. - re: Gilbert 3.0.0.5 - 2012-05-28 - Dustin Bolton Misc PHP cleanup / comments. Added index.php files to directories to prevent browsing when enabled on server. Updated ZipBuddy unzip method to check for either wp-login.php or db_1.sql to exist for exec() command line unzip. Added better error descriptions into importbuddy step 2. Fixed full error message (only short description was showing) from not displaying for some error messages in importbuddy. -- RELEASE CANDIDATE -- 3.0.0.6 - 2012-05-30 - Dustin Bolton Added additional is_object check into updater to prevent notices on http error getting licensing information when in Multisite on a subsite. Moving to Release Candidate status. 3.0.0.7 - 2012-05-31 - Dustin Bolton Added `View zip contents` feature. Fixed missing options array box on Getting Started page. - re: Jeremy Fixed deleted backups not being cleaned up upon deletion. Periodic cleanup also scans for these now. A minimum of 3 are kept for statistic purposes. - re: Jeremy x-zipbuddy now excludes directory wp-content/uploads/pb_backupbuddy. - re: Jeremy Fixed "PHP Parse error: parse error in ../importbuddy/views/html_2.php on line 22". - re: Jeremy mysqlbuddy library now properly uses db_1.sql.tmp file if the database prefix has changed as this is the location of the modified SQL file. - re: Jeremy Fixed unneeded creation of db_1.txt file in site root. - re: Jeremy Fixed various notices/warnings encountered during certain failured. - re: Jeremy Fixed "PHP Warning: trim() expects parameter 1 to be string, array given in ../wp-content/plugins/projectbadger/lib/zipbuddy/x-zipbuddy.php on line 151". Now directly copying array. No trim needed anymore since no longer parsing a string. - re: Jeremy Periodic cleanup function now deletes logs that are 12 hours old or older. - re: Jeremy 3.0.0.8 - 2012-06-01 - Dustin Bolton Commandbuddy no longer prefixing Windows commands with setting path. - re: Jeremy Fixed framework status method \ slash escaping characters from showing in logging on Windows. - re: Akers Fixed zipbuddy issue with error code 0 throwing a failure in zipbuddy on Windows. - re: Akers Fixed mysqlbuddy spacing issue on importing larger SQL file on "Imported X queries so far." - re: Akers 3.0.0.9 - 2012-06-04 - Dustin Bolton ImportBuddy & RepairBuddy passwords now hidden in response to customer requests. - re: Jeremy Now setting character set to utf8 for command line import (commandline: `--default_character_set utf8`) to match existing PHP import (query: `SET NAMES 'utf8'`) setting. - re: David All instances of database queries using LIKE now properly escape underscores so they are understood as literals. - re: Bolton discovery. ImportBuddy wipe database option changed to wipe database tables that match prefix. Greater resolution and less risk of accidents. - re: Gilbert 3.0.0.10 - 2012-06-04 - Dustin Bolton Ignore existing WordPress table option in ImportBuddy allows appending to existing database tables. - re: Gilbert 3.0.0.13 - 2012-06-05 - Dustin Bolton Preliminary addition of managewp support. - re: http://ithemes.com/forum/topic/22799-backupbuddy-doesnt-show-as-updatable-in-managewp/ 3.0.0.14 - 2012-06-05 - Dustin Bolton Dropbox directory now less picky and supporting subdirectories. - re: http://ithemes.com/forum/topic/27111-dropbox-destination-directories-and-failed-deliveries/ 3.0.15 - 2012-06-07 - Dustin Bolton Additional modifications to ManageWP implementation. We are working with ManageWP to get this implemented soon. Importbuddy: Reworded `Ignore existing WordPress tables and import (merge tables) anyways.` option. Minor updater to updater lib to address https / http mismatch. Changed version numbering. 3.0.16 - 2012-06-08 - Dustin Bolton ImportBuddy & RepairBuddy passwords no longer stored in database; only hash is stored. ImportBuddy & RepairBuddy passwords are migrated from 2.x password format to 3.0 hash version. Updated ImportBuddy / RepairBuddy download warnings for blank password and file packing functions to handle new hashing. 3.0.17 - 2012-06-08 - Dustin Bolton Added BETA Database mass text replace (with serialized data support) feature to bottom of Server Info page. 3.0.18 - 2012-06-08 - Dustin Bolton Automatic upgrades now available for ManageWP support. 3.0.19 - 2012-06-08 - Dustin Bolton Fixed Multisite Export not showing in the menu even though enabled in some cases. 3.0.20 - 2012-06-11 - Dustin Bolton Fixed post cleanup failing. Fixed scheduled remote destination sending. - re: http://ithemes.com/forum/topic/28539-309-automatic-remote-backup-does-not-work/ Fixed error: "PHP Warning: mysql_ping() expects parameter 1 to be resource, null given in \lib\mysqlbuddy\mysqlbuddy.php on line 488" - re: Kurt [godaddy] 3.0.21 - 2012-06-12 - Dustin Bolton Multisite subsite administrators can now access Multisite Export when enabled. - re: http://ithemes.com/forum/topic/28641-multisite-no-menu-on-sub-sites/ Added updater timeout at 20 seconds. 3.0.22 - 2012-06-13 - Dustin Bolton Modified to use backupbuddy.php as main load file instead of init.php for backward compatibility. To find main plain file call pb_backupbuddy::settings( 'init' ) for return value of 'backupbuddy.php' in this case. - re: Chris Fixed broken migrations of settings from 2.x to 3.x. - re: Chris 3.0.23 - 2012-06-13 - Dustin Bolton Fixed `Notice: Undefined index: archive_file in backupbuddy/classes/core.php on line 1658`. - re: Chris Settings migration no longer requires deactivate/reactivation to upgrade. - re: Chris -- FINAL -- 3.0.25 - 2012-06-13 - Dustin Bolton Updated tutorial videos inside BackupBuddy (play video buttons). - re: Josh Tables rendered with pb_backupbuddy::$ui->list_table() now place a non-breaking space inside empty fields. - re: Chris Final 3.0 version to release. 3.0.26 - 2012-06-13 - Dustin Bolton Fixed 'Undefined variable: pluginbuddy_init' error in ImportBuddy. - re: Chris, Jeremy 3.0.28 - 2012-06-13 - Dustin Bolton Fixed password hash not properly getting set in importbuddy. re: Jeremy Fixed password hash failing to auto-authenticate for automated migration. 3.0.30 - 2012-06-13 - Dustin Bolton Multisite Export is now always available for Super Admins regardless of subsite admin export setting. Multisite Export getting stuck on theme export due to WordPress 3.4 function deprecation fixed. mysqldump command line password is now stripped from all logging. Amazon S3 bucket names now allow underscores. Fixed incorrect S3 bucket name test failure error message to be more descriptive. Added additional security for backup downloading in Multisite installations. Added subsite backup listing to export page to view previously created exports. Fixed CSS rounded corner styling for Firefox. Moved Dropbox section of remote destinations to load last due to some Dropbox errors breaking other destination functionality. Attempting to resolve Step 6 if importbuddy timeouts. Fixed backup status bar styling being a bit off. May have fixed an issue where scheduled backup emails were not being sent. 3.0.31 - 2012-06-15 - Dustin Bolton Fixed missing 'select destination' link for scheduling email destinations. Multisite Import: fixed media files not being imported to the correct path. Multisite Import: fixed imported users not having their old roles applied. Resulted in users importing but not attached to site. Multisite Import: added additional logging to import users step. Multisite Export: cleaned up legacy code for user copying to temporary table. Multisite Export: added cleanup step to remove stray temporary users table. Multisite Export: fixed media export dropping the year in the media uploads directory. High speed command line mysqldump now properly dumping auto increment information. Fixed redefined class errors with Dropbox pear. Fixed Edit scheduling defaulting back to database. Clarified troubleshooting section explanations. Added additional information to Multisite Export for Admins feature. Multisite Export: Fixed PHP Fatal error: Call to undefined function wp_get_theme() caused in WordPress versions pre-v3.4. 3.0.34 - 2012-06-19 - Dustin Bolton Mysql database dump: Fixed null valued fields being exported with empty strings instead of nulls. - re: Jeremy Missing loading_large.gif image re-added. - re: Jeremy Automated migration now creates a specified local destination directory if it does not exist. Multisite Import: Fixed post author ID not being updated properly to match any changed user IDs. Fixed missing file information when backup integrity checks are disabled. - re: Jeremy Multisite: Fixed menu item and Getting Started page still being available to subsite users when export allowed. Multisite: Fixed missing usermeta table; bug introduced in 3.0.31. Multisite: Users missing capabilities cannot be imported. Avoids user count mismatch in subsite user list. Multisite: All usermeta is now copied over on import, such as bio info and first & last name. Multisite: Dashboard widget no longer shown in subsites and now displayed in the network admin dashboard. Dashboard widget URLs fixed. 3.0.35 - 2012-06-20 - Dustin Bolton Fixed problem with some plugins enqueng their javascript on our pages causing conflicts in the Remote Destination popup. - re: Gary Multisite: Users with no capabilities will still be imported into network but not assigned to a blog. mysqldump compatibility mode bug causing doubled up data introduced in 3.0.34 fixed. 3.0.36 - 2012-06-26 - Dustin Bolton Fixed notification emails not sending for scheduled backups. Commented out some implicit flushing on ImportBuddy step 6 to attempt to discover timeout cause. Added pb_backupbuddy_ prefix to all S3 classes to help avoid conflict with other plugins using the same library. Re-added MD5 checksum hash feature to backup listing. ImportBuddy: Re-added advanced feature to wipe ALL database tables prior to import. Use with extreme caution. Multisite Export: If export would create temporary users table matching main network users table temp table is skipped to prevent users loss. Added check to not load core classes in admin init if it is already loaded just in case. Fixed editing schedules resulting in edited schedule immediately running. Renamed querystring variable from backup to backupbuddy_backup to avoid conflicting with incorrectly written wp-db-backup plugin. Updated Dropbox transfer limitation estimate to cap at 150MB due to Dropbox API limitation. 3.0.37 - 2012-07-02 - Dustin Bolton Extended WordPress compatibility back to WordPress v2.6 for basic functionality. - Chris FEATURE: Added `Note` feature in backup listing table to allow users to set backup descriptions on an archive (for servers that support it). - Dustin Stores the note in both the integrity check data structure and the archive zip comments field in the actual file. Requires ZipArchive for storing the note inside the archive comments field currently. If ZipArchive is unavailable the note is only stored in the integrity data structure and an alert notifies the user of this. Only alphanumeric characters are permitted now. Editing an existing note displays existing note text in editing box. Notes should be 175 characters or less. (Actual limit is 200 characters to allow a little wiggle room for the user). Now tracking creation date rather than modified for backup listing so note changes won't change backup date and order. FEATURE: ImportBuddy Step 1 now displays archive note if one exists (and server supports it). - Dustin Regex adjusted for note feature. - re: Jeremy Periodic cleanup function now removes any stray importbuddy directory in site root. ImportBuddy now temporarily renames .htaccess file after unzip until next to last step to prevent WordPress from hijacking import process. 3.0.38 - 2012-07-03 - Dustin Bolton Added troubleshooting option to disable/bypass zip method caching so that zip testing can be seen in all logs at all times. All instantiations of the S3 library now honor SSL settings. - Issue #193. RepairBuddy DB replacement now displays all table prefixes whether starting with wp_ or not. - Issue #202. ImportBuddy: Entering an invalid password now displays an alert indicating invalid password. - Issue #215. ImportBuddy: pb_importbuddy_settings.php moved to importbuddy/_settings_dat.php - Issue #262. ZipBuddy lib: Now checking to verify class and/or Pclzip file exists prior to pushing into available methods stack. mysqlbuddy lib: Fixed invalid argument passed to implode() on line 654. Now checking if array before imploding. 3.0.40 - 2012-07-09 - Dustin Bolton Fixed handling of ImportBuddy compatibility mode mysql import resume functionality. Added stronger BETA warning to Multisite backup page, specifically noting Multisite Network migration troubles. Added more logging to PCLZip loading in zipbuddy libraries. Fixed reporting an update available to ManageWP even if an update was not available. ImportBuddy is now included in FULL backup archives for convenience in the location: wp-content/uploads/backupbuddy_temp/BACKUPSERIAL/importbuddy.php where BACKUPSERIAL is the random characters in the backup name: Example- backup: backup-project3_com-2012_07_09-d17cdsrdbd.zip BACKUPSERIAL: d17cdsrdbd 3.0.41 - 2012-07-23 - Dustin Bolton ImportBuddy: In IE8 and older issue of inability to proceed to next step after DB test even though it succeeded. - Issue #265. [REVERTED & REMOVED] Fixed Dropbox problem with conflicting PEAR files resulting in no Dropbox button for remote destinations. - Issue #268. Added collation column to Server Information page database table listing. Updated German translations. - Dietmar Fixed greedy script limit function reporting increase to 256M even if it was already set to 256M. - Issue #273. Modified Dropbox Memory guesstimate to be more accurate. - Issue #272. Fixed PB framework functions missing public static. Backup process now registers using register_shutdown_function() to help catch fatal errors during the backup process, including those which occur during cron, and write them to logs. Reverted "Fixed Dropbox problem with conflicting PEAR" above. Dropbox PEAR includes are now explicitly called to avoid conflict with host-provided PEAR files on some servers. Updated Automated Migration invalid step error message to give proper error for debugging. Clarified local archive limits section with rewording and additional tip information. - Issue #225. Added missing cleanup of temporary directories/files in wp-content/uploads/backupbuddy_temp/ for failed backups. Added missing cleanup of temporary directories/files in wp-content/uploads/backupbuddy_backups/temp_zip_XXXX/ for failed backups. Added additional logging to periodic cleanup function. Exclusions file now rendered into wp-content/uploads/backupbuddy_temp/XXXXX/exclusions.txt for use with zip excluding. On load of importbuddy.php's login page, if the importbuddy directory already exists it is deleted then re-unpacked. This allows for easily replacing the importbuddy script with a new one (to upgrade or fix a bad password, etc). Fixed escaping of $_POST content when outside WordPress (ie ImportBuddy) AND magic quotes are ENABLED. - Issue #277. Many AJAX calls process $_POST rather than pb_backupbuddy::post() so stripping slashes was not being handled. - Issue #276. Fixed single pipe | or in pb::_POST(). - re: Jeremy ENHANCEMENT: Added file size to listing of recent remote transfers. Zip exclusions files now created within zipbuddy lib. x-zipbuddy lib now uses xclusion file for command line zip exclusions. commandbuddy lib: exec_dir compatibility added. No longer passses PATH assignment if detected. - Issue #266. Directory exclusions file now supported for all command line zip functionality. - Issue #266. Fixed ZipBuddy constructor passing an emptry string instead of empty array on step 2 of importbuddy. - re: Thread #30364. Fixed remote copying from Dropbox to local if Dropbox file is in a directory. - re: Dan Import instructions now display a bolded reminder as step #1 to set an ImportBuddy password until one is set. FEATURE: ImportBuddy can now be transferred to remote destinations from the Import / Migrate page by clicking 'Send Importbuddy' under the button. - Issue #97. Added Download and Send links beneath ImportBuddy and RepairBuddy. Added database kicker prior to scheduling next cron steps since DB was going away for Kerry during ms WP download step. - Re: Thread #30364. Added database ping at end of DB step to verify DB did not go away during the db dump as that could impact integrity of db file. Did not want the later kicking prior to cron scheduling covering up a problem. Exclusions file only includes files/directories that actually exist. Checked pre-backup per backup. - Issue #168. 3.0.42 - 2012-07-30 - Dustin Bolton FEATURE: Added FTP option for passive mode. - Re: Thread #30499. Added additional logging to cron_next_step(). Added additional importbuddy unpack logging for troubleshooting. Added database kicker to kick the DB after remote destination sending in case status cannot be updated due to DB going away. - Issue #274. Fixed typos in zipbuddy error messages. Updated latest German translations. - Graciously provided by Dietmar Added load prior to remote destination send to help keeps settings in sync with anything else happening. - re: Jeremy Fixed over-zelous database prefix replacement on import when: a) using command line mysql import AND b) changing the db prefix. - re: Issue #284. 3.0.43 - 2012-08-27 - Dustin Bolton Added 10 newlines to end of rendered importbuddy script to help servers not sending last byte. Added MIME type detection code into rackspace lib. Also added fallback mime default of 'application/octet-stream' if that also fails. - re: Thread #30775. Fixed double slash causing permissions issue in filesystem class dir_size_map() on opendir() usage. - Re: Thread #30811. Fixed datepicker failure in WP 3.2.1 causing remote destination picker to open full screen instead of in thickbox. Now running greedy script limits prior to ImportBuddy generation to help boost memory as some are hitting memory limits downloading. - Re: Thread #30832. Fixed shutdown function overwriting log file instead of appending. Fixed shutdown function not writing to main log file, only serial. Fixed malfunctioning cleanup step of Multisite Import not cleaning up backup file if enabled. - Issue #285. Increased FTP user and pass field lengths from 45 to 75 per customer request. - Re: Thread #31108. FEATURE: Added URLs and Paths sections to server info page. - Dustin Multisite now prevents exporting of the main Network site as it is tied to the Network DB prefix and may have unpredictable issues. - Dustin, Re: Jeremy. Multisite: Fixed backup listing javascript not working on Export backup listing. - Dustin Multisite Import: Fixed imported users being assigned to main network site in addition to the imported site. - Dustin Mulitiste Import of Exported subsite: Fixed upload path & fileupload_url not being updated properly in this case. - Dustin re: Jeremy Multisite Import of standalone site: Fixed fileupload_url not being updated properly in this case. - Dustin re: Jeremy Multisite Export: Temporary user/usersmeta table now dropped prior to creation in case it already exists. Multisite Export: Any usermeta data for subsites not associated with the exported site is cleared out prior to backup. - Dustin re: Jeremy Multisite Import: Fixed media files not being copied over on some servers due to destination directory not already existing. - Dustin re: Paul Added additional logging to backup step processing to see step name. Backup processing options handling no longer using references as they may become invalid during re-loading of options. - Dustin re: Jeremy Clicking on the backup status (pass or fail) now opens a thickbox with scan details in a textarea for easy copy/pasting. - Dustin re: Issue #260. Multisite Export -> Standalone: Fixed upload path not being reset to default blank value if it was explicitly set in options table. - Dustin re: Thread #31312. 3.1.2 - 2012-10-29 - Dustin Bolton All remote destinations specific code moved to destinations directory. ENHANCEMENT: New remote destinations interface & design. More features to existing destinations. Now including Stash. More intuitive usability. Nice new look and improved interface. Dropbox updated to use Dropbox v1 API (v0 API shutting down Dec 31, 2012). FEATURE: Added button to send file to remote destination after backup completed on backup page. As soon as a backup completes you are given the option to download or send the completed backup to a remote destination (or neither and the backup will stay in your local BackupBuddy backups directory). FEATURE: Added new local destination for use as a remote destination. Easily store backups in other directories on the same server filesystem. Migrate sites to another server directory (ie duplicate on same server). FEATURE: Added `Settings` page option to also display the time in backup filenames in addition to the default date. - Issue #247. Perform multiple backups per day? Now include the time in the filename to more easily identify backups by time in addition to date. Works great combined with the Note feature. Added additional explanatory text noting to use the `Alternative zip system` when falling into compatibility mode which fixes exclusions not working in that case. FEATURE: Individual files can now be excluded from backups (no longer just directories!). Now listing files in exclusions navigator for easier exclusion of individual files. A few giant files clogging up your backups? Not only can you exclude entire directories but now you can also exclude individual files! ImportBuddy: When wp-config.php is unwritable ImportBuddy will notify user & give the content the user may paste into the file. This was only displaying "Array" rather than the config content. mysqlbuddy updated to provide error message when mysql_query() returns false. Upgraded Amazon S3 library to 0.5.0. Added ImportBuddy favicon. FEATURE: Added Amazon S3 support for "Reduced Redundancy" class storage for a more affordable cloud storage option. A more affordable option than S3, reduced redundancy offers lower prices for storage and transfer at the cost of the backup being replicated less across the S3 network. This offers less redundancy in the case of catostrophic failures of the Amazon S3 system but costs less. Added additional logging during S3 destination test. ENHANCEMENT: Error messages now highlighted in backup status for easier visibility AND a new red box slides down with an error count & noting hightlighted lines are in the log above. Also links to the knowledge base. Easily see if anything may have gone wrong. Quick link to the Knowledge Base Codex. Error codes link directly to their wiki entry for details. Now logging BackupBuddy version, WP version and OS during backup. Fixed zip size and ping showing out of order in status log. Cleaned up start of status log for better readability. Cleaned up preflight check warning display to be cleaner and take up less space. Combined MS beta warning into preflight check. Remote preflight check warnings from displaying on actual backup perform page as it was already seen on backup home page. Reduced delays between AJAX actions during backup for speedier backups with less delays. Increased backup status blink rate for better visibility. FEATURE: Added database check and repair features to Server Info page. Sometimes things go wrong and your database gets corrupted. This often means having to use a web hosting tool or something like phpmyadmin to attempt to repair it. BackupBuddy now offers the option to test and run the mysql command to perform a basic repair on database tables. This can be accessed on the Server Information page by hovering over a table name in the list. This is a simple way to check and perform a basic repair. ImportBuddy upload feature no longer redirects back to login screen. Added local destination file manager/client. Fixed Server Info page directory size listing not taking exclusions into account properly. - Issue #289. Directory size listing through large number of warnings to log when open_basedir in effect. - Issue #290. Fixed incorrect call to delete_directory_resursive() in zbzipproc.php. FEATURE: Added iThemes Stash destination. 256mb of storage space currently provided for no additional cost (FREE) to all currently subscribed BackupBuddy customers. Protect your backups by sending them to distributed redundant storage servers (the so-called "Cloud"). All backups are encrypted upon arrival at their storage destination with AES256 encryption. You may store as many backups as your storage alotment allows. Limit the number of archives by site. Backups are organized within their own site folder for easy access. Manage your backups, delete, copy down to local, or get a direct download link good for an hour. FEATURE: PHP Max Execution time tester added (beta) Allows you to actually perform a test to determine your real tested maximum execution time allowed by your server. BackupBuddy attempts to override the execution time allowed to a very high number but almost all hosts cap the number much lower so the reported number can be far too high. This test actually runs a script and keeps trask of the elapsed time to determine the actual maximum execution time limit of your server. FEATURE: Stash now supports multipart uploads (chunking uploads into pieces to allow larger files to be transferred in pieces over time). Extremely large files can now be transferred to Stash than could be before by breaking files up into 'chunks' and sending one piece at a time. User can specify the chunk size that is transferred to Stash at a time. FEATURE: Backup download URL now included in scheduled backup success notifications. Easily download completed scheduled backups from the notification email (if this feature is enabled in settings). Improved automated migration flow. Now prompts for destination URL if none is entered for this destination. Highlights the Migration URL field if empty. Improved URL explanation and error messages to better explain URL / upload directory mismatch problems. User is prompted to test & verify the destination URL prior to selecting. Stash signing expiration set to 12 min. Changed error code #5445589 to #9031. File size now logged for files being sent to destinations. Partially improved some handling of the beta Multisite Network migrations of full Networks in/out of subdirectories (not officially supported; improvements provided as a convenience). Misc tweaks, fixes, styling improvements. Any unknown backup statistics are now left blank rather than multiple "Unknown"s. Fixed missing Malware Scanner warning icon. Multisite export subsite exporting error for main site now includes the prefix in error. Multisite: Malware scan is now available to anyone with access to subsite export capability. Added additional logging just prior to detecting mysqlbuddy availale methods for troubleshooting. Improved error message in importbuddy.php when key files are missing in the backup. Added new Remote Destinations page. Improved UI. ImportBuddy BETA support for importing from Stash backups. Added Stash option on destination creation to disable ability to list all Stash files. Added dismissable alert system via disalert(). Many misc tweaks, modifications, and small fixes. 3.1.3 - 2012-10-30 - Dustin Bolton ImportBuddy UI improvements for Step 1 & Stash. Fixed time not being localized for: time in backup filename, time of backup start and finish, time of destination send start and finish. Backup status now displays SQL dump file size during database dump process. Backup status now displays final SQL dump file size upon SQL dump completion. Additional Stash logging for inability to finalize Stash upload. Updated German translation files -- compliments of the awesome volunteer Dietmar. S3 library reverted to previous version due to problems with new version. Reduced Redundancy option currently unavailable until future version. 3.1.4 - 2012-11-07 - Dustin Bolton FEATURE: Schedules now show when the schedule is expected to run next. Issue #240. This allows for easy identification that the schedule is set up properly and when to expect it to occur. Missing zip functionality and other pre-flight warnings can now be dismissed. They can be revealed by clearing dismissals on the Getting Started page. Issue #1. FEATURE: Alternate cron status is now displayed in the Server section of the Server Information page. Issue #217. This allows for easily verifying that WP Alternate Cron mode is enabled or disabled to verify proper configuration. ImportBuddy auto-sets max PHP time to 30 seconds if server reports 0. Removed remaining S3 reduced redundancy call. Tilde ~ stripped from backup filename now. Fixed inability to delete files from all files Stash page due to requiring authentication. Stash quota now taken into account before scheduled sends to prevent sending files that would exceed quota. This previously was only being checked for manual sends. Reversed order of recent backups to properly show newest down to oldest. Beta feature: Database backups can be broken up into individual chunks. Currently wp_posts and wp_postmeta are broken out if feature enabled during beta of this feature. Minor interface tweaks. FEATURE: Import/Export Settings (Getting Started page). Easily duplicate settings from one BackupBuddy site to another site. Great for quickly setting up additional sites or for client work. Requested by several customers in BackupBuddy Survey. FEATURE: Enable/disable schedules (Scheduling page). Schedules can now be turned on or off via a checkbox when editing a schedule for convenience if you want to temporarily disable a schedule for some reason. FEATURE: http loopback status now listed on Server Info page. Easily see if your server has HTTP Loopbacks enabled to know whether you need alternate cron enabled or not. FEATURE: Restore sites with ImportBuddy from Stash without having to manually upload the backup. Quickly and easily restore a site backed up to Stash. Enter your login, select the backup to restore, and importbuddy handles downloading the file to the server for you for quick easy restores. 3.1.5 - 2012-11-15 - Dustin Bolton FTP sorting prior to limit erasure changed to use artsort instead of just reversing array. Some FTP servers do not return items in proper order. Fixed wp-config not writable error not providing the text to manually update it. Fixed missing button-grad.png and button-grad-active.png references for destination CSS. Tilde ~ stripped from destination Stash directory now. ImportBuddy script will now refuse to render if they somehow got the download link without setting a password first. Warns user and gives diagnostic steps. Download ImportBuddy script if no default password is set: Prompt user to enter a new default password for the importbuddy script. Saves as default. Download ImportBuddy script if a default IS already set: Prompt user to either enter a one-time password to set for this importbuddy OR leave blank to use default. BackupBuddy cleanup procedure now logs BackupBuddy version to more easily see the current version in use via log files. S3 secret key no longer displayed when editing a destination. (password field). Visible only when adding a destination. Can no longer send ImportBuddy script to remote destination if a password has not been set. Fixed BackupBuddy dumping all tables for a site rather than ones just for this site when set to only backup tables with the same prefix under some circumstances due to bug introduced in 3.14. 3.1.5.1 - 2012-11-17 - Dustin Bolton Fixed invalid serial error if ImportBuddy password has not been set. 3.1.5.2 - 2012-11-27 - Dustin Bolton FEATURE: cPanel databases can now be created from within ImportBuddy. To make it easier to perform a restore or migration you can now provide your cPanel login credentials and BackupBuddy will connect to cPanel and create and set up your database and set permissions so you don't have to go to all of the trouble of performing this complicated step that is often a struggling point for many users, especially their first time. Moved --quick to after --skip-opt in mysql command to prevent it from being overrided. Keys not disabled pre-insert and re-enabled post-insert per table in SQL dumps for both mysqldump and phpdump. ENHANCEMENT: Preflight check now scans for any backup files leftover in the site root (ie from a recent restore) and warns. ENHANCEMENT: ImportBuddy now checks for existing index.htm/html file before restore to warn of it potentially blocking WordPress from loading. Sometimes you may have an index.htm/html file in the directory you restored to. On some servers this can prevent the loading of WordPress. Now you will receive a warning as one additional layer of checks we perform to help make imports as smooth as possible. Maximum PHP runtime no longer overriden if it is equal to 0 (unlimited) or greater than the number we would be changing it to (currently 7200 seconds). Incomplete or in-process backups could show the finished time as being far in the past. Fixed to properly denote the backup as unfinished. Status log now displayed again in textarea so copy/pasting to support will not lose newlines. ENHANCEMENT: A one-time user password can be entered upon ImportBuddy download. You also no longer have to enter passwords to start using BackupBuddy as it can be set on the script download. Easier setup, more convenient, quick, one-time-user passwords for clients, etc. ImportBuddy & RepairBuddy password fields now require confirmation to save. Exclude tree for directory exclusions now strips . and .. from file listing prior to processing. Email destination test now displays more details on failure. Dropbox exceptions now caught and reported more consistently. ImportBuddy: Missing .SQL file in backup ZIP now reported. Plugin URL and Path generation improved to use proper WP way if available for robustness. Multisite import blocked if refreshing page & not sending post variables to prevent proceeding with wrong/missing data causing unforeseen issues. ImportBuddy now defaults to full logging for ease in troubleshooting. FEATURE: ImportBuddy log now viewable on Step 5 just before cleanup for advanced users or troubleshooting/support. If you encounter any trouble now you can easily view your log file on Step 5 during the import. This can be easily be copy/pasted to tech support if needed, making troubleshooting and support easier. 3.1.5.3 - 2012-11-27 - Dustin Bolton Fixed FTP limit not taking effect due to previous update. 3.1.5.5 - 2012-12-01 - Dustin Bolton FEATURE: Ability to customize email notification text with variable support. Easily customize what information is or isn't sent in error notification emails (if enabled). You can customize the wording, subject, body, and use variables to determine which information is passed along in the email. Fixed directory exclusion listing displaying exclusion of more directories than actually set to exclude in some cases if directory exclusion pattern partially matched. Fixed File & Directory Exclusions picker failing to show all files in a directory when there were also directories present. Extra 'back to destinations' button removed from Destinations picker main page. 3.1.5.6 - 2012-12-02 - Dustin Bolton Fixed ImportBuddy import errors when importing db via command line mode AND changing prefix due to alter tables prefix not being updated. 3.1.6 - 2012-12-03 - Dustin Bolton Official release of 3.1.5.1-3.1.5.6 updates (see above for their contents). 3.1.6.1 - 2012-12-04 - Dustin Bolton Fix PHP-based database import not handling alter table in some cases. 3.1.6.3 - 2012-12-07 - Dustin Bolton Server Info page Server Settings section removed redundancy in Status/Result columns. Moved "Reset Plugin Settings" button to "Settings" page. Moved "Import/Export Settings" button to "Settings" page. Settings page contents no longer in meta box. Tabbed sections added to Getting Started page. Additional tutorial information added to Getting Started page. Improved UI on Getting Started page. Fixed Scheduling page form submission errors not being displayed. Added scheduling interval tip to Scheduling page. Improved BackupBuddy destination in listing for improved visibility. 3.1.6.4 - 2012-12-07 - Dustin Bolton cPanel DB creation password now urlencoded before sending. Button styling updated to work with WordPress 3.5. Rework of Getting Started page. Unavailable update/check time for database tables on Server Information page now noted as unavailable rather than just blank. 3.1.6.5 - 2012-12-08 - Dustin Bolton Undefined index fix from previous version. 3.1.8 - 2012-12-10 - Dustin Bolton All features from builds 3.1.6.1-3.1.6.5 release. PHP notices fix. Fixed undefined index notice thrown by updater when no license is set in some circumstances. Fixed Stash management PHP notice when viewing all files. 3.1.8.1 - 2012-12-18 - Dustin Bolton Updater notices when no license entered fixed. FTP now defaults to passive rather than active mode for new installs. Added ignore zip archive warnings option to Settings page. Added additional logging for loopback test. Server Info page available zip methods now refreshable. ImportBuddy domain prompt was missing for Multisite Network restore, resulting in missing entry in wp-config.php Multisite fix for WordPress v3.5 PHP notices for $wpdb->prepare() missing second paramter. Moved progress data sent to browser AJAX during backup to also be logged to file for better debugging. (ie temporary zip file size, ping, etc). Cleaned up backup listing tables to be clearer. Added new integrity details option under integrity status on backup listing. FEATURE: Integrity status details now shows improved interface for easier viewing. Easily see integrity status and tests. Easily see backup times, time taken per step, and attempts made per step. Status indicators throughout plugin updates for better visibility & clarity. ngettext() function now emulated for ImportBuddy is not available. Fixed ImportBuddy download password cancel from proceeding to download if no default set. Fixed ImportBuddy download problem when pass hash blank. 3.1.8.2 - 2013-01-24 - Dustin Bolton Server Information page organized with tabbing. Removed beta max execution time test. Minimum recommended WordPress version updated to 3.3.0. Fixed row count inaccuracy with Innodb tables on Server Info page. Fixed missing `Send File` option when viewing zip contents enabled. Backup technical details now lists destination type in textarea for better troubleshooting. Server Info page directory listing now displayed via AJAX. Backup serial information in data structure now stores BackupBuddy version in backupbuddy_version variable. FEATURE: Custom backup storage directory Backups can now be stored in a custom location, even outside of the web directory (such as for added security). Multisite fix: Temporary users table now exported. FEATURE: Daily housekeeping schedule now in place. No longer scheduling per-backup cleanup scheduled events. Improved performance. Full daily cleanups for peace of mind and less server resource usage. FEATURE: Advanced option to skip brute force migration on ImportBuddy import. Skips one of the slow portions of migration that hangs up users on very large sites. New advanced option to skip inclusion of ImportBuddy in full backups. Send file option missing for backups listed when option to view backup file contents enabled. Added Error #9033 when process_backup() runs before pre_backup() function completes. Catches a cause of Error #9031. Database kicker no longer type hintes database object as wpdb class name. Also logs class name of object for troubleshooting. Removed greedy script limits from Step 1 of ImportBuddy. Fixed unknown settings option php_minimum on Step 1 of ImportBuddy Server Info section. Improved error message when automated cPanel db creation fails in ImportBuddy. ImportBuddy DB creation now supports customized port for cPanel URL. Server Information Page Mass DB Replace tool now warns if a prefix with multiple underscores is detected. Also displays current table prefix in all cases. Added additional notice for Multisite users regarding WP 3.5 problems. Misc ImportBuddy error message improvements. Multisite Export: Fixed missing site plugins not being exported. importbuddy.php & importbuddy temp directory are only deleted by periodic cleanup procedure if they of certain age to prevent cleaning up mid-import/restore by a site visit. S3 destination default empty config.inc.php to prevent attempt to set path triggering shell warning on some servers. Coming soon: automatic generation of file if not found. 3.1.8.3 - 2013-02-12 - Dustin Bolton 9010 error that is specifically noting the mysql server has gone away now gives details on this and kills (die()) to prevent flooding user with fatal notices. FEATURE: User role can now be used to define which users have full access to BackupBuddy (based on capability internally). You can now extend BackupBuddy access to lower levels now and not just administrator role. S3 destination default blank config file config.inc.php existance verified on activation & upgrade. Should typically get re-added by devs. Adding schedules: User can no longer select & submit to delete backup after remote send if no remote send has been picked. Post-scheduled backup remote send local file deletion only occurs if at least one of the remote destinations exists. Step 2 now enforces selecting a backup on Step 1. FTP compatibility: ftp_chdir() with path now used to change directory prior to ftp_nlist() without path for compatibility with some FTP servers. FTPs support extended to file management & copying back to local. Dropbox token rejection for existing destination no longer blocks its deletion. Fixed missing 6th param for process_s3_copy cron. MULTISITE IMPORTANT NOTICE: Multisite BETA features no long available by default. Suggest adding the following to your wp-config.php to enable experimental Multisite functionality: define( 'PB_BACKUPBUDDY_MULTISITE_EXPERIMENT', true ); FEATURE: New archive limit option to limit by age, in days. Automatically delete archives during backup that exceed a certain age limit to get rid of backups that are older than desired. Added FTP file read error message when local file exists but it not readable. ENHANCEMENT: Improved directory exclusion picker interface. Database & file exclusion indicator improved. Exclusion background lightened for easier readability. FEATURE: Database table inclusion/exclusion picker. More easily see existing tables to aid in adding additional exclusions or inclusions. Added lines in status log during backup for easier reading. Five dashes before a step starts and after ending: "-----" "--- New PHP process." displayed each time a new PHP process runs. FEATURE: Merged in major ZipBuddy v2 update by Jeremy - Jeremy Trask Systems falling into compabitility mode now support file/directory exclusion automatically. Alternate zip system rolled into main system so no longer needed (setting is unchecked for all users now). All fallback methods now support all zip/unzip functionality except ZipArchive is not supported for zipping. Integrity test can now use all zip methods (command line zip via exec, ziparchive, pclzip fallback). New Setting to Ignore Non-Fatal Errors when building the zip file. Additional logging including Server information / environment, 32 vs 64 bit, etc. Zip methods cached for 60 minutes but auto-refresh on migration, server info page refresh, etc. Renamed php-based on server info page to php-based pclzip. Changed default access requirement to `activate_plugins` from `administrator`. Default setting migrated on activation. Fixed custom backup storage directory reset default option not properly escaping for Windows directories. Multisite: Fix issue with importing sites into a Multisite Network created in WordPress v3.5 or newer having different meda URLs. BackupBuddy custom directory setting now stripping slashes prior to save to avoid WP or magic quotes issues. Data structure archive_file updated upon updating backup directory to reflect path change. Fixed tabbed interface background color not updating to reflect current tab. FEATURE: New Server Info page Server Information items. Added PHP API & PHP architecture (bits) information to Server Info page to better display Server properties & details. Fixed custom backup storage directory slash inconsistency when escaping on Settings page. FEATURE: Server Info page Server results can now be displayed in text format. Easily share your Server Info page Server section in a text format for troubleshooting, etc. Easy copy/paste format. 3.1.8.6 - 2013-02-14 - Dustin Bolton Now suppressing chmod warnings on unlink chmod. Fixed typo Server "Configuruation" on Server Info page. Added additional FTP connection trouble logging. Overall site log file surpassing 10MB (by default; modifiable on Settings page) in size will be deleted to maintain performance / prevent runaway logging. Single event scheduling is now confirmed in all cases. Errors logged on failure. Fixed maximum backup age option being set incorrectly calculating age & overzelous deletion. Now using mtime for calculating when file last modified (rather than ctime) for backup age limiting. All users of 3.1.8.3 should upgrade to 3.1.8.6 or newer. 3.1.8.8 - 2013-02-14 - Dustin Bolton Patch for problems with Windows paths on Settings page. mysql.connect_timeout & default_socket_timeout now temporarily reduced to 5 second timeouts before testing old mysql settings prior to Step 3 of ImportBuddy loading. 3.1.8.9 - 2013-02-15 - Dustin Bolton Fixed database table inclusion icon mismatch. 3.1.8.10 - 2013-02-19 - Dustin Bolton Fixed warning when sending importbuddy.php to Stash manually due to invalid variable holding placeholder size. Fixed undefined index when setting up first Stash destination. Destinations send() now handles empty filename being passed to it and ignores. Core send_remote_destination() no longer passes blank string in array of files to send. remote_send() now logs if ONLY ImportBuddy is to be sent. Now checking file existance in migrate_restore.php of importbuddy.php before unlink. Another cleanup function possibly be cleaning it up before it gets unlink perhaps. ajax.php remote_send() now logs and alerts if a file to send was did not exist. Added check in ajax.php remote_send() to verify file existance before continuing. Added dismissable preflight message noting discovery of activated caching plugin & warning that some configurations for it can potentially cause a problem & suggest clearing cache & disabling to troubleshoot if problem encountered. "One or more caching plugins were detected as activated. Some caching plugin configurations may possibly cache & interfere with backup processes or WordPress cron. If you encounter problems clear the caching plugin's cache (deactivating the plugin may help) to troubleshoot." Expired transients are now cleared out of WordPress automatically. Fixed incorrect slashes on backup download on Windows when custom backup directory in use. Log file setting added to trim log if it surpasses certain size (default: 10mb). Beta zip file contents viewer improved. 3.2.0 - 2013-02-19 - Dustin Bolton Fixed incorrect slashes on Windows for directory exclusion calculation in core class directory exclusion calculation. Public release of all changes from build versions 3.1.8.0 through 3.1.8.10. 3.2.0.2 - 2013-02-20 - Dustin Bolton Renamed "Status" to "Status Log" for better clarity for support purposes on Backup page. Renamed backup storage directory to note that this setting is for LOCAL storage only. Remote storage settings found on the Remote Destinations page. Also updated tip. Removed beta status from custom backup storage directory setting. Added Swedish localization files. 3.2.0.3 - 2013-03-25 - Dustin Bolton Experimental Multisite functionality requires adding the following line to your wp-config.php to access: define( 'PB_BACKUPBUDDY_MULTISITE_EXPERIMENT', true ); Migration now supports double-serialized data, extending existing single-serialized data support. ENHANCEMENT: Integrity check now runs as backup process step. Failed checks result in a failed backup response though the backup file is left in place. File limits ignored when a backup fails to avoid potentially deleting older valid backups. Backup integrity is now verified during all backup processed by default to further insure that your backups are valid. Temporary index.htm created on importbuddy.php access if none exists to help prevent against file browsing before import process gets under way. Not placed on numeric steps unless less than 5. ImportBuddy supporting files no longer unpacked on every authentication page access unless ImportBuddy version and/or password has changed. A 'signature' hash of the version & password is stored in /importbuddy/_signature.php and compared against. Prevents against excess unpacking & loss of code during development. FEATURE: ImportBuddy Step 1 now lists backup type next to backup file selection. Easily identify backup types before restoring. FEATURE: Server Information page now lists active WordPress plugins and helps point out any known conflicts. Some plugins, such as some versions of caching plugins, can cause issues under certain circumstances / configurations. A warning here helps in troubleshooting issues. FEATURE: ImportBuddy now looks for manually unzipped WordPress installations unzipped to the wrong location and suggests how to fix it. Whenever file migration is handled manually it's easy to accidently unzip files into a subdirectory. ImportBuddy now works to seek this out and provide notice of this to help guide you in placing the files in the proper location. FEATURE: Temporary .maintenance file generated during restore to help prevent against viewing partially migrated site. ENHANCEMENT: Improved warnings on Step 5 about potential problems: existance of index.htm, index.html, .maintanence files; lack of wp-config.php or .htaccess files. Helps detect common potential issues and warn user, providing possible solutions. mysql import and dump now shell escapes most parameters to avoid issues with odd characters in password & other settings as well as redirect STDERR to STDOUT to better capture problems in status log. Backup steps now display the attempt number in status log. FEATURE: Backup page now has button to cancel backup. Easily cancel an unwanted backup and halt the backup procedure. Status information is stopped updating and cleanup step is scheduled in the background as the next scheduled step to run to clean up any temporary files or backup zip archive that may have been created. Updated German translations. Thanks to Dietmar Herian for providing these. Fixed error when manually deleting files on FTP via manage page. Fixed changing db settings after testing in ImportBuddy not re-disabling Next button. Fixed file size of recent remote transfers listing as 49kb. Bug introduced 3.1.8.10. ImportBuddy status updating efficiency improved. FEATURE: PHP errors now caught, written to log, and displayed in status area for improved troubleshooting. Better recording and display of any fatal PHP errors encountered during import. Aids in troubleshooting and technical support. FEATURE: Scheduled backups can be manually run from the Scheduling page. You can now test schedules backups, including automated remote destination sending, by hovering a schedule on the Scheduling page and selecting "Run Now". Fixed local file deletion option failing when Stash chunking enabled. Local backup file no longer deleted during schedule if remote transfer fails. Email warning sent. When multiple remote destinations are scheduled for sending to in a single scheduled backup failure of one remote send does not halt the entire process. The next destination(s) will still be sent to. An error message is logged and warning email is sent. ImportBuddy: DAT file contents now displayed on Step 2 for troubleshooting purposes. Old database password hidden. ImportBuddy: All database options moved to Step 3. ENHANCEMENT: ImportBuddy: All advanced options now accessible via "Advanced Options" button on lower left of applicable pages. FEATURE: ImportBuddy: wp-config.php and .htaccess files are checked for non-migrated URLs and user is notified to help warn of potential issues. Includes checking wp-config.php COOKIE_DOMAIN directive. FEATURE: ImportBuddy: Step 5 now displays a small list of common import problems and their solutions. Fixed Server API suggestion to n/a. Fixed cron_schedules filter from overriding any existing custom cron intervals. Invalid destinations are now removed on accessing destinations list to prevent corrupt destinations from getting stuck. Added new pb_backupbuddy::flush() to help force flushing to occur; updated most flush() calls to use this in BackupBuddy and ImportBuddy. ImportBuddy: Added additional checks to pages & AJAX to prevent loading if PHP files accessed directly for more security. ImportBuddy: Authenticating resets any configured options back to defaults. Server Information page now lists latest major and minor BackupBuddy versions, current version, and recommends updating if non-minor version is behind. Multisite: Fixed upload URL problem when importing Network created post-WordPress v3.5. PB flush(): apache_setenv() only called if function apache_setenv() exists. ImportBuddy now loads assets via relative path for increased support for custom environments. Multisite: Fixed some mismatches in upload URL depending on mismatch between WordPress versions combined with custom upload directory. ImportBuddy: Many misc tweaks and improvements under the hood. FEATURE: ImportBuddy: Misc UI improvements for look, feel, and usability. Dropbox destination problem with spaces being replaced with %20 fixed. Site size listing & exclusions now has "Display in Text Format" button for easy copy/pasting. Meta data now stored in ZIP comment field. Comment now stored under "note" key within meta array. Backwards compatible with plain text string comments. FEATURE: Meta information now available under on backup page by selecting "View Details" in the Status column for any new backups made including: WordPress version & BackupBuddy version when the backup was made, serial, date, site URL, and backup type. This information is embedded in the backup ZIP file. FEATURE: ImportBuddy: Now displays backup file size and other meta information such as source site URL, WordPress version, BackupBuddy version, relative path to DAT file (relative to root of zipped files) etc. Increased loopback test timeout time from 5 seconds to help with very slow servers. Fixed reversed Recent Backups order. Restore / Migrate page re-organized. ImportBuddy: Database migration step now logs actual mysql error message if any encountered. 3.2.0.4 - 2013-03-26 - Dustin Bolton Improved Error #9033 explanation. ImportBuddy: Improved ImportBuddy authentication security. Feature: ImportBuddy: Now locks out all access after 4 failed password attempts for added security, requiring a file to be deleted to regain access. Fixed AJAX error popup on failure in automated migration. Automated migration error introduced by 3.2.0.3. 3.2.0.5 - 2013-03-26 - Dustin Bolton ImportBuddy: Fixed authentication error loading Step 5. ImportBuddy: Suppressed warnings on Step 6 closing database connection when database has already gone away prematurely. 3.3.0 - 2013-04-01 - Dustin Bolton Public release of ALL updates included in versions 3.2.0.2 - 3.2.0.5. See version information above if updating from v3.2. ImportBuddy: Backup meta data now displayed on Step 2 in addition to DAT file contents. ImportBuddy: DAT location now retrieved from backup meta data (in comment) as preferred source of DAT location. Falls back to prior methods. ImportBuddy: All ImportBuddy settings reset to defaults whenever authenticating on Step 1 to reset defaults if resuming a partial import. 3.3.0.1 - 2013-04-05 - Dustin Bolton Anti directory browsing added new 3rd parameter to deny from all. Fixed Server Information page reporting warnings even when up to date. Feature: Added 'Twice Daily' scheduling period. 3.3.0.2 - 2013-04-17 - Dustin Bolton Enhancement: File based options storage with file locking added to insure backup step data integrity and enforce protection against concurrent processes overlapping & creating backup problems, especially due to problems such as caching plugin interactions. ImportBuddy typo in login exceeded message. - Elise Backup data information now stored in file with locking rather than database data structure for better reliability and immunity from caching plugins. Fixed Getting Started page Twitter feeds not caching, resulting in excess calls to ithemes.com & twitter feeds while on Getting Started page. Added additional instructions for database only restores. Fixed insufficient command line length forcing database into fallback mode. "unrecognized option" response from mysqldump now forced fallback mode to insure against old or alternative versions of mysqldump from creating faulty database dumps. FEATURE Getting Started wizard makes getting BackupBuddy up and running faster and easier than ever with default presets. Additional instructions for database only restores added. mysqldump now detects unsupported parameter errors and reports them. Misc minor bug fixes. FEATURE Backup now displays an error box with an error count and information on where to find additional information about error codes and the knowledge base. More easily identify and find information about any potential errors encountered. Zip Method Strategy added replacing forcing compatibility mode for greater flexibility and clarity. - Jeremy Setting added for ignoring / not following symbolic links. Enabled by default. - Jeremy set_greedy_script_limits() improvements. - Jeremy Removed Delete button from Automated migration backup list. Backups may be deleted from the main backup page. Quick setup wizard updates. UI tweaks. Current data structure version incremented to version 5 to force data upgrade of fileoptions data. Fixed file display listing error when displaying directories with permission problems. Added advanced debugging button on Backup Status 'View Details' popup to display decoded fileoptions contents array. Fixed Quick Setup wizard URL. 3.3.0.3 - 2013-04-18 - Dustin Bolton Added user ID logging to Multisite user import step for collisions. log_directory verified prior to activiation upgrade to insure log directory is set and saved before fileoptions upgrade commences. 3.3.0.4 - 2013-04-19 - Dustin Bolton Minor fix: Fixed edits since last backup not being updated & last serial since 3.3.0.3. 3.3.0.5 - 2013-04-19 - Dustin Bolton Updated free Stash storage from 512MB to 1GB. Read-only fileoptions mode ignores locks. 3.4.0 - 2013-04-21 - Dustin Bolton Release of all updates from 3.3.0.1 - 3.3.0.5. See above. 3.4.0.3 - 2013-04-22 - Dustin Bolton Downgraded some fileoptions errors to warnings as they are non-fatal. Getting Started wizard UI tweaks. Fixed invalid call to backupbuddy class instead of pb_backupbuddy. 3.4.0.4 - 2013-04-23 - Dustin Bolton Additional error logging for fileoptions system to improve troubleshooting. ZipBuddy library updates addressing Zip Method Strategy problems under certain circumstances. 3.4.0.5 - 2013-04-23 - Dustin Bolton Additional fileoptions error downgrades to warnings. Fixed fileoptions system causing errors during Classic backup mode. 3.4.0.6 - 2013-04-24 - Dustin Bolton Data structure version upgrade to 5 always saved even if no data is migrated into fileoptions system. 3.4.0.7 - 2013-05-02 - Dustin Bolton ImportBuddy: Fixed undefined index warnings when skipping zip extraction. ImportBuddy: When enabling an advanced option on Step 1, proceeding to Step 2, then using the back button to go back and uncheck an option, these new settings were not being saved. Updating advanced options on Step 1 after previously setting them now sticks. 3.4.0.8 - 2013-06-09 - Dustin Bolton 4.0 pre-release. 3.4.0.9 - 2013-06-10 - Dustin Bolton 4.0 pre-release. Now checking if posix_ function calls are disabled in php.ini prior to using them on Server Information page. Added additional warning to file restore page about dangers of restoring over existing files. Misc cleanup. 3.4.0.10 - 2013-06-10 - Dustin Bolton Added eyecon to file view/restore. 4.0.0 - 2013-06-10 - Dustin Bolton ENHANCEMENT: Various user interface and layout improvements for usability and simplification. ENHANCEMENT: Re-organized Settings page. FEATURE: Backup profiles. ENHANCEMENT: Streamlined & simplified Restore / Migrate page. FEATURE: View text-based files within backup archives. Hover over backups on the Backups or Restore / Migrate page for additional options. FEATURE: Restore files from backup archives. Easily "roll back" files. FEATURE: ImportBuddy: Backup meta information now viewable from Step 1 by clicking the 'View Meta' button next to each backup listed. FEATURE: New setting to be notified if no new backups have occured in X number of days. FEATURE: Error Notification email "Test" link added for verifying email-sending functionality properly works on your server. FEATURE: Ability to delete local backup after manually sending to a remote destination. FEATURE: Ability to customize the "from" email address for any email notifications sent by BackupBuddy. ENHANCEMENT: ImportBuddy: Improved readability & look of database test results. Improved testing to help catch database permissions problems. ENHANCEMENT: View database exclusions based on profile on Server Information page. ENHANCEMENT: View file exclusions based on profile on Server Information page. FEATURE: Built-in tutorial/tour added to many pages for additional help in BOTH BackupBuddy AND ImportBuddy. Integrity check details now lists tables broken out in step details. Cleaned up integrity check data structure to be more extendable in future. Fixed framework not handling custom savepoint in item-specific names. Now tracking last backup finish time in data structure in addition to existing start time. Fixed housekeeping cron job not being runnable. ABSPATH now listed on Server Information page URLs and Paths section. Fixed Windows paths causing "Download" link not to show on backups page. Replacing colons in remote path when storing to Stash. (users with custom ports in URLs encountered error) Re-organized Settings page. Backup Statistics moved from backup listing to the Details section available by hovering a backup and selecting "View Details" under the "Status" column. Recent backups Status Details now shows common window shared with backups list. fileoptions no longer deleted due to merely old age. Only removed when corresponding backup is removed. Fixed database mass replace changing tabs whenever beginning. ImportBuddy: Added additional checking on Step 3 controller to verify DAT contents still exist in data structure. This detects an interupted restore process (ie restarting importbuddy in a new tab wiping out DAT array). ImportBuddy: Database test now verifies table creation ability to insure permissions are valid. Also deletes temporarily created table. ImportBuddy: Database test now verified prefix is in proper format. Format: XXXXX_ where X's are alphanumeric and prefix ends in an underscore. ImportBuddy: Database test interface results improved & UI cleaned up. Replaced jQuery live() calls with on() due to deprecation. Fixed scheduled send notification email erroring if fileoptions locked. Now ignores lock and uses read-only mode. New data structure version: 6. Fixed zip system hanging on symbolic links in some cases / configurations. Settings page prompts to save if user navigates away from page or tab after making an unsaved change. Additional information now stored in backup meta data such as profile details. Backup buttons on "Backups" page now list all profiles available for starting a manual backup. Cleaned up & made permissions errors consistent when unable to create any directories. Activation error messages no longer display unexpected error output. Fatal directory error messages no longer show on non-BackupBuddy pages. Fatal directory errors now block the ability for a backup to begin. Anti directory browsing verification now only runs on BackupBuddy pages on frontend and only on scheduled cron runs on backend for better performance. ENHANCEMENT: Loopback connection error now provides server response in textarea within error box to indicate server response and details. ENHANCEMENT: BackupBuddy temp / storage directories now added to Paths & Permissions section of Server Information page for troubleshooting permissions issues. ENHANCEMENT: Added user and group IDs to Permissions section of Server Information page. ENHANCEMENT: Added PHP process username, UID, and GUID to Server Information page. Server Information page file count updating fixed. Removed all embedded videos from Remote Destination pages to avoid JS conflicts / issues. Misc bug fixes. Misc UI cleanup. Misc wording updates. 4.0.0.1 - 2013-06-10 - Dustin Bolton Fixed error downloading backup ZIP file on Windows servers. Fixed javascript error on File Restore page on Windows servers. 4.0.0.2 - 2013-06-11 - Dustin Bolton Fixed directory exclusions not being migrated to v4.0. 4.0.0.3 - 2013-06-12 - Dustin Bolton verify_directories() error in some cases during backup. PHP SSH2, SFTP Support indicatation added to Server Info page for informational purposes on its availability across hosts. 4.0.1 - 2013-06-14 - Dustin Bolton Updated German translations. Fixed a PHP 5.4 strict warning in _pluginbuddy.php Full release of 4.0.0.1-4.0.0.3. Recommended update if running 4.0.0 through 4.0.0.3. 4.0.1.1 - 2013-06-17 - Dustin Bolton Fixed undefined index on profiles editing page under some circumstances. 4.0.1.2 - 2013-06-18 - Dustin Bolton Fixed error when attempting to display/log Stash response error to user. 4.0.1.3 - 2013-06-19 - Dustin Bolton Added warning if user attempts to exclude a WordPress core table on Settings page or in a profile. ImportBuddy: Database test no longer blocks proceeding if database values are invalid when both skipping import AND skipping migration are enabled (Warning only). ImportBuddy: Database test no longer blocks proceeding if WordPress already exists AND set to skip import (Warning only). 4.0.1.4 - 2013-06-21 - Dustin Bolton Active WordPress plugins now logged in status log by pre_backup function for better troubleshooting conflicts. Settings page no longer displays database table size next to tables on table exclusion to improve Settings page performance. 4.0.1.5 - 2013-06-25 - Dustin Bolton Fixed zbzipcore typo to delete_directory__recursive() to delete_directory_recursive(). Fixed two undefined index notices when entering a license key while not logged in. Fixed possible display of buffer-related notice when upgrading WordPress due to reminder problem. Added new warning if BackupBuddy received a negative number response to the max command line length check for database dump. This can be caused if get_conf ARG_MAX failed. Automatically falls back to compatibility database dump mode. Added new advanced settings option to allow bypassing the command line length check to prevent it from falling into compatibility mode. Unsetting reference &$file to prevent PHP oddity from causing issue extracting a list of files when restoring manually within BackupBuddy. Added new error on Scheduling page when calculating the "Next run" time if the scheduled cron event was not found registered with WordPress. Error #874784. WordPress scheduled cron event not found. See "Next Run" time in the schedules list below for problem schedule. This may be caused by a conflicting plugin deleting the schedule or manual deletion. Try editing or deleting and re-creating the schedule. 4.0.1.6 - 2013-06-26 - Dustin Bolton Fixed Error #874784 always displaying. 4.0.1.7 - 2013-06-26 - Dustin Bolton Now outputting DAT file contents prior to writing for troubleshooting. (Sans database user/pass for security). Fixed Windows UNC paths dropping leading backslash when attempting to load activation PHP file. Used copious quantities of escaping via regex. Editing a Dropbox destination could result in credentials being lost and having to delete & recreate destination to fix. 4.0.1.8 - 2013-07-01 - Dustin Bolton Added Server Load Average to Server Information page. Added Http Server Software to Server Information page. Slightly increased maximum amount of retries and time between retries for cron steps pre-maturely running / running out of order. Added Dropbox transfer limitation hypothesis to status log just prior to file transfer. Added size of file to be transferred to status log just prior to Dropbox transfer. ImportBuddy now only strongly warns if prefix includes an embedded underscore rather than completely blocking. Skipped database dump no longer results in backup errors or backups marked as bad. Database skipping is noted as warnings only now. Fixed missing download link on Downloads page when hovering individual backups.s Dropbox issue fixed where editing a Dropbox destination would result in loss of authentication to Dropbox. Fixed activation error on Windows servers when on a network drive. Performance improvements on backup file listing. ImportBuddy now sets timezone earlier to avoid timezone warnings on scarcely configurd servers. dir_size_map() warnings suppressed and checked to be array to insure symlinks breaking it will not be fatal. Automatic updates to the latest minor version are now available by clicking "Update" on the Server Information page BackupBuddy version section next to the latest minor version (if available). You must already have licensing set up properly to use this. Once it is clicked you may update normally to the latest minor version. 4.0.1.11 - 2013-07-02 - Dustin Bolton Fixed Quick Start form directing to wrong URL after completion in Multisite. Fixed javascript error that could cause backup status to stop updating despite backup potentially continuing behind the scenes. 4.0.2 - 2013-07-02 - Dustin Bolton Automatic updates release of minor versions 4.0.1 through 4.0.1.11. 4.0.2.1 - 2013-07-02 - Dustin Bolton Minor changes. 4.0.2.2 - 2013-08-15 - Dustin Bolton See v4.1 release notes ABOVE. 4.0.2.4 - 2013-08-16 - Dustin Bolton ImportBuddy: Fixed problem where a renamed ZIP file could not determine location of database SQL file to restore (even though DAT file location was determined). ImportBuddy unpacking no longer trimming base64 decoded unpack data to avoid risk of altering binary data packed into ImportBuddy such as test files, images, etc. 4.1.0.1 - 2013-08-19 - Dustin Bolton OVERVIEW (since 4.0.2.1-4.1): This update focuses primarily on the Remote Destinations system with major feature additions, enhancements, and bug fixes to it. Remote Destination performance across all destinations has improved, as well as robustness and adding various features such as transfer speed tracking for most destinations. Dropbox destination added for users of PHP v5.3 or newer with _significant_ improvements including but not limited to: No more 150mb API limit, significant memory usage reduction, and multipart chunked sends for breaking up large files. sFTP (beta) destination added. Provide feedback of success or any problems encountered during beta stage. New S3 library in uses to support multipart chunked transfers. Menu icon now has retina support for high resolution version. File restoration temp directory cleanup is now part of periodic cleanup function. ImportBuddy: cpanel database creation verifies valid characters are used. New remote destination additions are now confirmed on next page as inline alert rather than popup javascript alert box. Fixed update link showing minor version available on Server Info page even if on latest minor version. Fixed "Recent Backups" page listing backups out of proper chronological order for some. periodic_cleanup() now has a minimum age limit before orphaned fileoptions files will be purged. This helps keep Recent Backups page properly populated. Deleting a backup via backups_list()'s form no longer immediately deletes its fileoptions file. The cleanup function is now handling all purging of this. Removed call to undefined function on Error #4455484589. Updated zipbuddy library regarding file_exists() issue. Fixed issue where Recent Backups page may not always show all backups. FEATURE: New Dropbox destination available for users of PHP 5.3 or newer with much improved performance. Only displayed to users with PHP 5.3 or newer. Improved performance and large file support. Supports multipart chunking to increase file sizes able to be transferred to Dropbox. ENHANCEMENT: Added new "View Log" link on Remote Destinations "Recent Transfer Status" tab. Ability to view log details specific to a certain send. Useful for troubleshooting. ENHANCEMENT: Write speed information now available under "Transfer Information" column in Recent Remote Destinations send list for most destinations. Remote destination sends now stored within individual fileoptions files prefixed with "send-" to prevent race conditions when multiple destination sends active simultaneously (ie due to chunking). Misc minor destination bug fixes. Misc improvement to logging for troubleshooting remote sends. Updated Malware scan plan URL. Many misc destination improvements behind the scenes. ImportBuddy option to ignore existing WordPress tables now only warns rather than blocking proceeding. S3 instantiation now casting SSL parameter to bool to insure proper passing. FEATURE: Amazon S3 destination updated to new version with support for chunked multipart file transfers for handling larger files. All files transferred to S3 are now automatically encrypted with AES256 encryption on destination server. Rackspace destination now masks API key in edit mode. Fixed file viewer temporary files not being cleaned up after viewing. Fixed "Extract File with Extraction Failure Does Not Clean Up the Backup Specific Temporary Directory". Loopback error notification on Backups page now lists error details for troubleshooting in box. Email destination test button on Settings page allows testing email sending capabilities. When full error logging is enabled, backup error notification emails will include the log file for the backup as an attachment. ImportBuddy: Fixed tooltip being hidden in popup windows due to z-index issue. UI lib call for alert function now pre-initialized pb_backupbuddy::$ui in case it is not yet initialized. Reversed order of history.txt so that newest updates are now at the top. ENHANCEMENT: Updated ZipBuddy library to now support extracting individual files via ZipArchive and Pclzip as fallbacks (in that order). - Jeremy Fixed issue where Stash chunking could prevent backup limiting from ocurring. Added additional check prior to sending to Stash to verify authentication credentials are valid to avoid error cascade. Updated ZipBuddy library files to use pre-built test ZIP file. Amazon S3: Prior to each chunked send any existing multipart transfers stalled will be aborted with S3 if they exceed cerain age to free up resources in S3 account. Amazon S3: Periodic BackupBuddy housekeeping function will look for and cleanup and multipart chunk transfers (for destinations having chunking enabled). This will cleanup backups that stalled by checking they exceed a certain age (72hrs currently). PHP database dump now logs which table it is about to dump. PHP database dump now logs last query attempted on fatal failure (eg. on error mysql server went away). Added additional check for existance of profile index when setting up profile for manually triggered backup. Disabled spawn_cron() call for manual backups. Prevents very odd race condition where an additional spawned process could run concurrently -- but ONLY immediately after the database dump. This may have been the cause of some servers' cron failing to schedule immediately after the Database dump step. Updated Windows ZIP executable ZIP file to include newer zip versions at a new URL: http://ithemes.com/backupbuddy_files/backupbuddy_windows_unzip.zip Updated file_tree() function to handle missing wp-content and other edge cases. Sorts directories first. - Jeremy ImportBuddy: Server Information Server Load no longer displayed in ImpotBuddy information for compatibility. ImportBuddy: "Tour this page" link no longer displayed in Server Information section. FEATURE (beta): New BETA Remote Destination: sFTP (Secure FTP over SSH). Please provide feedback for this new beta feature. Added sFTP icon for Remote Destination. 4.1.0.3 - 2013-08-21 - Dustin Bolton Remote Destination: Amazon S3 re-added support for existing buckets with disallowed characters such as underscores or dashes IF the bucket already exists. New buckets should match s3 naming conventions. Create buckets via the Amazon Console if non-standard naming is required. Remote Destination: Amazon S3 clarified logging of determination whether to chunk or not. Added new constant for mimimum allowed chunk size. Remote Destination: Stash clarified logging of determination whether to chunk or not. Added new constant for mimimum allowed chunk size. 4.1.0.4 - 2013-08-28 - Dustin Bolton New Automatic Upgrades & Licensing System - Complete overhaul Removed old automatic upgrade & licensing system. Fixed Multisite menu icon not displaying since last release due to retina update. Remote destination test details on Recent Transfers section now denotes this as a test and uses the filename 'remote-send-test.php' for test transfers. 4.1.1.0 - 2013-09-04 - Dustin Bolton Improved error reporting on manual file send to Stash if unable to connect to account (ie bad password). Reversed history.txt ordering to display latest updates at the bottom for compatibility with updater repository updating. Fixed S3 file browser being unable to detect backup type since v4.1. S3 file browser no longer displays files within subdirectories deeper than the destination directory/root. S3 file browser no longer displays files that do not match the BackupBuddy filename format. Bug since v4.1: S3 file limit fixed to not delete any files within a deeper subdirectory. Bug since v4.1: S3 file limit fixed to not delete any files for a different site that are both in the same bucket / directory location for safety. Critical S3 fix for bug since vBackupBuddy v4.1 under a SPECIFIC scenario which could result in inadvertant deletion of files within S3 bucket subdirectories deeper than the remote destinations'. Requirements for this to occur: 1) Must be running BackupBuddy v4.1.0.0 - v4.1.0.4. 1) Limits must be enabled for an S3 destination containing subdirectories within said destination's bucket & directory. 2) Subdirectories within this destination's bucket/directory must contain content that pushes the backup limit over the threshold. Fixed undefined index in Dropbox PHPv5.3+ when no backups are available in location yet. Added additional check to Dropbox destinations to not list directories. Also omitted from file limits even if the directory name matches a BackupBuddy filename format for an additional layer of security. 4.1.1.1 - 2013-09-09 - Dustin Bolton Database queries and error retrievals update to reference identifier $wpdb->dbh. ImportBuddy now stores mysql connection in global $wpdb->dbh for compatibility with libraries using $wpdb->dbh for identifier in BackupBuddy. Fixed remote destination send log being prematurely deleted after short period of time. FTP upload no longer uses full path for send as the path is already in place via chdir(). Editing Remote Destination no longer resets destination name back to default. mysqlbuddy PHP-based import now logs table creation to better indicate SQL import status. mysqlbuddy PHP-based database dump now selects database rows limited to X number of rows at a time to help mitigate memory usage. X currently = 3000 rows. Misc minor changes. 4.1.1.2 - 2013-09-11 - Dustin Bolton Zip file contents viewer now supports viewing .ini file contents as text. Fixed trim_remote_send_stats() warning on remote destinations page due to missing. Default age-limit now set. S3 bucket creation failure now logs server response for troubleshooting. 4.1.1.3 - 2013-09-13 - Dustin Bolton ImportBuddy: Now stores a unique hash cookie for one hour to aid in usage without needing to login as often if re-starting the process or using additional tool pages. Slight redesign adding new toolbar to top for additional pages. Updated Amazon SDK to version 1.6.2. Updated plugin meta information to be consistent across iThemes plugins, including new meta row information for Support & Documentation. 4.1.1.5 - 2013-09-14 - Dustin Bolton S3 SDK rolled back to v1.5.14 due to issues introduced by Amazon's newer version. Fixed ImportBuddy error on Step 3. 4.1.1.6 - 2013-10-02 - Packaging Bot (lib/updater) Big rewrite to the updater in order to make the code more flexible. This improves compatibility with plugins that allow for remote updating of plugins and themes. The updater now supports providing changelog details for plugins and themes that have updates available. These details can be viewed by clicking the "View version **** details" link for the appropriate plugin or theme. 4.1.1.7 - 2013-10-02 - Dustin Bolton ENHANCEMENT: ImportBuddy: Now scans for php.ini file and warns of its existance and potential issues if found, particularly if importing to a new server. FEATURE: ImportBuddy: Ability to view MD5 file hash for backup files added. ImportBuddy: Database test AJAX no longer passes success via HTML comment to prevent problems with comments being stripped server-side. eg by Cloudflare. ImportBuddy: Mass database text replacement tool now available in ImportBuddy via the top menu bar to making replacements on existing WordPress installations. Missing Backup page backup listing "View Hash" option re-added. ENHANCEMENT: Simplified backup listing using backup date & time as primary listing criteria. Recent Backups page added Backup Type. S3 SDK 1.6.2 re-deployed. Updated S3 init and manage files to use modified method of getting bucket region to fix compatibility with some PHP 5.4 versions.s - Jeremy Trask ENHANCEMENT: Backup details now displays start and finish times of the overall backup process. ENHANCEMENT: Added File Size to Recent Backups listing. Updated zbzipexec to use zip -h rather than zip -v for determining version for wider server support. - Jeremy Trask No longer displaying S3 multipart upload cleanup filename & details by default. - Jeremy Trask Fixed issue where file/directory excluder list did not show files for directories containing less than 3 files/directories within. FEATURE: New database table backup option "None" to not backup any database tables by default. A warning will be displayed in all logs to use with caution. Fixed array to string conversion error on FTP management page. Fixed invalid argument for foreach during integrity check when tests array is missing/invalid. FEATURE: Amazon S3 destination now supports setting the region for any new buckets that are created by BackupBuddy. Malware scan affiliate links removed. 4.1.1.12 - 2013-10-03 - Dustin Bolton Fix for `Undefined index: ithemes_updater_path & associated error under some circumstances.`. Server Information page link to force update to latest minor version removed until feature available in updater. Addendum: Re-added Server Information page link to force update to latest minor version. 4.1.1.13 - 2013-10-04 - Dustin Bolton for Updater Enhancement: When releases with four version digits are released (such as 2.1.0.3), by default, the updater will not offer to update if just this last digit is updated. For instance, it will not automatically offer to update 2.1.0.1 to 2.1.0.3; rather, an automatic upgrade will become available when version 2.1.1 or greater is released. If you wish to force an update to these versions, you can add ithemes-updater-force-minor-update=1 to an admin page request (such as http://domain.com/wp-admin/index.php?ithemes-updater-force-minor-update=1) in order to force the updater make these releases available for an hour. If the update is not performed within the hour, the updater reverts back to default behavior. Bug Fix: Corrected source of the following error when updating: Download failed. SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed Bug Fix: Corrected source of the following warning: Warning: require_once(/api.php) [function.require-once]: failed to open stream: No such file or directory 4.1.1.14 - 2013-10-07 - Packaging Bot (lib/updater) Bug Fix: Corrected another source of the following warning which occur immediate after updating the plugin or theme: Warning: require_once(/api.php) [function.require-once]: failed to open stream: No such file or directory 4.1.2.0 - 2013-10-07 - Dustin Bolton S3 Remote Destination: Ability to copy remote S3 file back to server via management page. S3 Remote Destination: Ability to get a download link to download remotely stored S3 file to your computer. Links valid for 1 hour. Major version release of updates from 4.1.1.0 through 4.1.1.14. 4.1.2.1 - 2013-10-08 - Dustin Bolton Fixed multiple S3 copy to local issues. Moved bucket region checking/setting to separate function to unify this code into one area so it may be used across multiple functions. Fixed undefined index warning on Backup Details view when fileoptions unavailable. Fixed Javascript warning in Chrome on Remote Destinations page. BETA FEATURE: FTP Destination path browser added. Browse your FTP server directories to help in picking FTP remote path. 4.1.2.2 - 2013-10-14 - Dustin Bolton Fixed cron hook filter not properly accepting existing incoming cron periods for plugins that run before BackupBuddy. S3 destination: Translate returned bucket region of 'EU' to 'eu-west-1'. 4.1.2.3 - 2013-10-28 - Packaging Bot (lib/updater) Enhancement: Added a "Quick Release Updates" setting to the bottom of the licensing page. Enabling this option allows the site to receive automatic update notices for product quick releases (releases that do not have automatic update support by default). Enhancement: Changed how the licensing page works on Multisite. Now it will appear at Settings > iThemes Licensing in the network admin Dashboard and at Settings > iThemes Licensing on sites when the current user is a network admin. This prevents exposing the licensing page to users that don't are not super users and thus should not be performing updates. As this update makes the functionality of the "Licensing Page Access" setting obsolete, the setting has been removed. Enhancement: Using the ithemes-updater-force-minor-update query string variable will now force a data flush, allowing any available quick release updates to appear instantly. Enhancement: Added "License" links to the Plugins and Themes pages for the Network Admin Dashboard of multisite installs. 4.1.2.4 - 2013-10-30 - Dustin Bolton Updated Stash panel links to http://ithemes.com/member/panel/stash.php Fixed undefined notice warning when sending an error email alert based on PHP error reporting level. Added new Stash storage upgrade links to configuration and management pages. Updated suggested minimum WordPress version to 3.5 for maximum best functionality. Note: Older versions should function fine and we work to keep backward compatibility. However, some features may require newer versions. New BETA feature: Files Only backup profile type. Does not include the Database in backups. UI improvements for better consistency. Fixed broken cpanel instruction URLs in ImportBuddy. Various ImportBuddy modifications to support new Files Only type backups and skip database-related steps and verifications. Various BackupBuddy modifications to support new Files Only type backups and improve display of type. Added additional checks and warnings for verifying exclusions of database tables, paths, and files do not get accidently excluded without notification. Fixed Quick Setup Blogger Schedules having incorrect name on Scheduling page. Prepared Files backup type for new inclusions-based file/path selection. Misc minor bug fixes. Misc error message wording improvements. 4.1.2.5 - 2013-10-31 - Dustin Bolton Happy Halloween! ENHANCEMENT: Email destination now includes the site URL in the subject for easier determination of which site is sending the backup in addition to the email body. ImportBuddy: If previous ABSPATH was / then ABSPATH database migrations are skipped as we cannot safely search/replace on simply "/" as it will break many things. 4.1.2.6 - 2013-11-01 - Dustin Bolton ENHANCEMENT: On Remote Destination hover: Remote Destinations page: Text now appears indicating that clicking will allow viewing Remote Files. Backups listing to send backup: Text now appears indicating that clicking will send backup to this destination. Migration page backups listing to migrate backup: Text now appears indicating that clicking will migrate the backup to this destination. Empty parsed fileoptions file contents now returns descriptive error and status logs raw file contents for troubleshooting. 4.2.5 - 2013-12-12 - Dustin Bolton Compilation of quick release versions: 4.1.2.7, 4.1.2.8. FEATURE: New backup type: Files Only (beta) FEATURE: Amazon S3 destination now optionally supports Reduced Redundancy storage class for cheaper storage options. See Amazon for details about this class of storage. FEATURE: Added command line support via WP-CLI < http://wp-cli.org >. Command line backups run in classic mode, outputting status log to command line. FEATURE: FTP path browser out of beta. Easily click to view remote file paths on the FTP server you are adding to easily determine which path to send backups into. ENHANCEMENT: Updated entire BackupBuddy user interface to support WordPress 3.8's new MP6 styling, look, and feel. ENHANCEMENT: Getting Started page removed; default page is now the 'Backups' page for simplifying plugin. Help/instructions added to "Help" tab at upper right of each page. ENHANCEMENT: Profiles are now configured on the 'Backups' page instead of the 'Settings' page for easier configuration. ENHANCEMENT: Contextual help added to BackupBuddy pages. "Help" tab at upper right of pages displays additional help and information, including links to Support & Knowledge Base. ENHANCEMENT: Improved instructions on 'Restore / Migrate' page. ENHANCEMENT: Quick Setup moved to Backup page, popping up on unconfigured sites. Optionally skip & dismiss by clicking the large "Skip Quick Setup" button in the window. Re-open Quick Setup by clicking link on upper right of page. ENHANCEMENT: Added Stash ability to limit number of Files Only backup type. ENHANCEMENT: General overall improvement to BackupBuddy user interfaces. ENHANCEMENT: Backup mode setting (Modern vs Classic mode) now applies to both manual and scheduled backups. ENHANCEMENT: Added BackupBuddy directories (backup storage, logs, temp directory) to Server Tools URLs & Paths page. Files Only backup types no longer require wp-config.php inclusion to pass integrity check. Files Only backup types no longer warn about database not being included. More strings localized for better translations. Fixed bug where cached integrity scan results would not be shown if scanning for that profile type was set as disabled, even if the results were already known. Fixed bug where loading the Backups page would attempt to scan backups created with a profile where integrity scanning was disabled. Added advanced sftp logging when full error logging enabled. ImportBuddy now outputs to status log where it is looking for SQL files at when searching for db_1.sql. Manual temporary file cleanup now cleans up all temporary files regardless of age. Page Tour links now appear in meta links on upper right of pages next to Help links. Quick Setup link on Backup page now appears in meta links on upper right of pages next to Help links. Schedules page modified for better usability. Moved backup reminders option to Advanced Settings tab as most users will never desire to disable this. New BackupBuddy installations now include the backup time in the filename by default. Moved backup time in filename option to Advanced Settings tab. Files only backup type no longer displays 'Database skipped' note as the database backup is not applicable to this type. Fixed portion of integrity check log from not being displayed during backup. A warning is now displayed in the status log noting exclusions if wp-config.php unable to be found in the integrity checked. New methods backupbuddy_core::getBackupDirectory(), backupbuddy_core::getTempDirectory(), backupbuddy_core::getLogDirectory() for retrieving those paths. Fixed {backup_size} item in email notification template from only showing as 0MB. Correctly displays size now. Backup directory, temp directory, and log directory are no longer stored in options if using default locations. A blank value is stored to indicate default. Custom locations are set by defining a path. New options data structure version 8. Upgrade/activation script resets default backup directory set to blank value unless a custom location has been defined. Temp and log directories set to blank value as these are not currently user-definable. Fixed chunking not activating when set to 5MB (the minimum) for Stash or S3 destinations. Remote send now verifies file exists before proceeding to attempt file transfer to prevent errors. Fixed Stash and S3 destination edge case with chunking set to exactly 5mb. Early stages of iThemes Sync implementation. Fixed FTP path picker hover text when hovering the select icon. Transition to using $wpdb class for database interactions. BackupBuddy-side functionality migrated. ImportBuddy side partionally transitioned. ImportBuddy: If database prefix being imported previously contained more than one underscore then a notice is displayed suggesting importing using only one underscore to maximize compatibility and stick with WordPress conventions. ImportBuddy: If existing database tables exist Step 3 provides information that the Advanced Options button has options for deleting existing tables. Multisite: Fixed warning when importing an old Exported backup. Multisite: Tested Multisite compatibility with latest WordPress version to verify compatibility. Remote Destination transfer logs are now kept for 4 days instead of 2 to ease troubleshooting. Added text comment to top of importbuddy.php to notify users that if they are reading this when trying to restore their site, their server is not properly handling PHP files. Various UI fixes for 3.8 compatibility. Fixed remote destination picker on Scheduling page. Reduced font size on Backup page process bar slightly for some Linux OS compatibility issues with overflow. Fixed directory size listing extending off side of page requiring scrolling on smaller screens. Fixed files profile types sometimes showing as Database type due to integrity scan misdetection of type. Misc bug fixes, tweaks, and other small changes. 4.2.6 - 2013-12-12 - Dustin Bolton Version number now included in asset enqueing to prevent caching of old assets after upgrade. 4.2.7 - 2013-12-12 - Dustin Bolton ImportBuddy: Fixed undefined index $rows in mysqlbuddy during command line DB import. 4.2.8.1 - 2013-12-13 - Packaging Bot (lib/updater) Enhancement: Recently updated plugins and themes no longer report that an update is available. Enhancement: Added alternate line styling to the listings on the licensing page. Enhancement: Products with iThemes in the name will now properly capitalize the name. Enhancement: The updater and licensing system now handle iThemes server outages without causing long page delays or by reporting confusing error messages. 4.2.9.2 - 2013-12-17 - Dustin Bolton Fixed bug where character encoding was not forced to UTF8 on database import when in compatibility mode (PHP-based) database import mode. Fixed Backup page 'Send to remote destination as part of backup process.' feature not sending to remote destination. FEATURE: Added new Scheduling period of Twice Weekly. Fixed unintentional error logging of beta iThemes Sync details when using BackupBuddy alongside iThemes Sync. Misc UI adjustments. Fixed 'View Hash' link on backups listing not working. Fixed wrapping of long text on Settings forms. 4.2.9.3 - 2013-12-17 - Dustin Bolton Fixed double semicolon in mysqlbuddy at end of line. Added additional logging to PB flush() function. PB flush() function now only sets ini and env variables once per PHP load. 4.2.9.4 - 2013-12-18 - Packaging Bot (lib/updater) Bug Fix: Removed unneeded check on package-info.ithemes.com which was causing performance issues on some sites. 4.2.10.1 - 2013-12-18 - Dustin Bolton Fixed circular reference in flush() function and status() causing trouble running ImportBuddy. since 4.2.9.3. Fixed database mass text replace tool error in ImportBuddy since v4.2. 4.2.10.2 - 2013-12-19 - Packaging Bot (lib/updater) Bug Fix: Licensing will now be universal across all sites of a multisite network. This means that you will only need to license on one site to have the license apply across the entire network. 4.2.10.4 - 2013-12-19 - Dustin Bolton Fixed deprecated notice ereg_replace when setting backup note. BackupBuddy buffer flushing can be skipped by advanced option OR defining the following in wp-config.php if backup hangs part-way through dumping databases in compatibility mode: define( 'BACKUPBUDDY_NOFLUSH', true ); Fixed modal popups not working on Server Tools page. 4.2.10.6 - 2013-12-20 - Dustin Bolton Updated alpha iThemes Sync functionality. 4.2.11.0 - 2013-12-23 - Dustin Bolton Fixed Profile Add button not working on Backups page. 4.2.12.0 - 2013-12-23 - Dustin Bolton Multisite: Fixed missing icon for subsite Multisite Export menu item & clicking going to a non-existant 404 page. 4.2.12.1 - 2013-12-23 - Dustin Bolton Multisite: Fixed bug where users would be skipped on import even though they did not already exist. 4.2.12.2 - 2014-01-09 - Dustin Bolton Major updates to xzipbuddy library improving performance, compatibility, and aids in troubleshooting server problems. - Jeremy Trask Added enhanced iThemes Sync support for additional BackupBuddy interoperability and features. Backup page no longer waits for document ready to perform AJAX request to check status. Prevents Status page from hanging. ImportBuddy: DBreplace PHP-based replacements now retrieve content to replace 500 rows per query to reduce memory usage. Misc minor bug updates & small performance tweaks. Mysqlbuddy performance improved for PHP-based database dumps. 4.2.12.4 - 2014-01-09 - Dustin Bolton Fixed Sync backup stats not being available. 4.2.12.6 - 2014-01-13 - Dustin Bolton Added new Sync overview verb return data: latestBackupProcess 4.2.12.7 - 2014-01-13 - Dustin Bolton Fixed hardcoded uploads directory for logging in Settings page code. Expired transient deletion now directly deletes in SQL rather than looping for performance boost. Fixed hardcoded access permission based on ability to activate plugins rather configured access level (via Settings page). 4.2.12.9 - 2014-01-13 - Dustin Bolton Removal of remaining hardcoded WP_CONTENT_DIR usages. Added Sync verb backupbuddy-get-latestBackupProcess. 4.2.12.10 - 2014-01-22 - Dustin Bolton Fixed inability to clear out ImportBuddy password on Settings page. ImportBuddy provides more details on failure detecting writability on unpacking. Fixed Database Check & Scan features not working on Server Tools -> Database page. Began updating temp directory calls to all use backupbuddy_core::getTempDirectory() Updated remaining usages of wp-content/uploads to direct to proper uploads directory where applicable. Misc minor fixes & tweaks. Updated Sync download URL for direct linking. 4.2.12.12 - 2014-01-22 - Dustin Bolton Fixed Send Backup to Remote Destination & Stop Backup buttons not working after backup completes. Added beginnings of BackupBuddy API v0. 4.2.13.0 - 2014-01-23 - Dustin Bolton Full release of quick release updates 4.2.12.1 through 4.2.12.12. Fixed non-static API functions. Fixed undefined index warnings on bad backups during integrity scan. Fixed Stash feature 'Copy to Local' not functioning. Improved error differentiation for Multisite failure to find required form data on moving to next step. 4.2.13.1 - 2014-02-03 - Dustin Bolton ImportBuddy: .htaccess and wp-config.php permissions set to be writable prior to writing. Restored to prior permission level after updating. Added additional logging to imoportbuddy generation process to improve troubleshooting. Performance: Removed unused PluginBuddy framework methods & code from PB framework to improve performance. Performance: Added additional is_admin() conditionals into PB framework for slightly performance increase on front-end. ENHANCEMENT: Updated German translations. - Thanks to Thomas Heinrichsdobler. ENHANCEMENT: Updated Swedish translations. - Thanks to Per von Dolwitz. iThemes Sync: If last backup file no longer exists on server, return empty string for this stats value. Adjusted misc colors on Remote Destinations page to better match WordPress 3.8 styling. ENHANCEMENT: Updated BackupBuddy Dashboard widget. - Ty ENHANCEMENT: Now storing additional WordPress information in meta & DAT files such as WordPress version, total pages, posts, users, comments, etc. Performance: Updated dbreplace library to address excess memory usage. - Jeremy 4.2.13.2 - 2014-02-03 - Packaging Bot (lib/updater) Bug Fix: Licensing on SSL-enabled sites now works properly. 4.2.14.0 - 2014-02-06 - Dustin Bolton Added additional logging when seeking database tables' matching prefix. Beta Database Rollback -- New beta feature for rolling back database to a prior backup. ImportBuddy: Fixed permission problems with wp-config.php and .htaccess files caused by recent update in 4.2.13.1. Also now only conditionally updates if file is deemed unwritable. Suppressing alerts on inability to write to status log as they can clutter page. 4.2.14.4 - 2014-02-06 - Dustin Bolton Beta Database Rollback step process shortened. 4.2.14.5 - 2014-02-07 - Dustin Bolton Fixed Quick Setup Destination selection not displaying settings for adding a new destination. 4.2.14.6 - 2014-02-07 - Dustin Bolton Dashboard widget: Fixed backup button overflow. Dashboard widget: Fixed time of last backup not being correct localized time. Settings page: Added Licensing link to more easily find Licensing. Added BackupBuddy version number to the bottom right of each BackupBuddy page. Backups page now notifies if new MAJOR version (non-quick release) is available and instructs to upgrade via the WP Plugins page. Changed some Malware Scan page wording for clarity. 4.2.14.7 - 2014-02-11 - Dustin Bolton Fixed undefined indexes on Dashboard if no backups have been made yet. Notices introduced in 4.2.13.1. 4.2.14.8 - 2014-02-13 - Dustin Bolton Fixed migration destination popup from mentioning non-migration destinations such as Stash, email, etc. Added additional clarification working to denote that addable types in this popup are migration-related. Added additional logging for Multisite export steps. Fixed false failure notices of 9033 errors when in fact it was only being caused by javascript polling too quickly. - Jeremy Quick Setup is now displayed in-page when visiting the Backups page for the first time for usability. Stash destination configuration cleanup. Rollback beta: Now fully imports tables with a temporary prefix prior to renaming to further minimize downtime. Rollback beta: Many misc changes. Rollback beta: Added advanced options. Added additional logging for troubleshooting SQL issues trying to get table listings. 4.2.14.9 - 2014-02-14 - Dustin Bolton Rollback beta: Fixed problems finding SQL file when using full database types. SQL location detection much more robust now. 4.2.14.11 - 2014-02-14 - Dustin Bolton Rollback beta: Not catching PHP errors in advanced log. 4.2.14.12 - 2014-02-25 - Dustin Bolton Backup perform page: Now passes data to and from server via JSON for improved codability. Improved timing of AJAX calls during backup to help reduce race conditions. File trees now display horizontal lines between items for better readability. Fileoptions now logs how many bytes are written to aid troubleshooting. Fileoptions ERROR_EMPTY_FILE_NON_CREATE_MODE errors now re-attempt loading after a 3 second sleep to help reduce the chances of race condition induced problems where a load was happening simultaneously as a write in another process. AJAX for getting backup status now forces log serial to that of the current backup to better record ALL activty happening during that load. Settings page now flushing before log load to increase page load responsiveness. Maximum log size limit default reduced to 5 MB. Increased start polling time to help reduce race conditions. ENHANCEMENT: Backup status now logs functions running out of order as warnings. FEATURE: Backup status displays any incomplete functions or actions it detected upon halting due to fatal error. Displayed at the very end of log. Extended fileoptions initialization to be considered under init waiting when polling AJAX at beginning of backup to even further help prevent race condition issues. Increased wait count from 5 to 8. FEATURE: Added enhanced detections for specific action failures during backup with automated suggestions in status log for failure of actions: cronPass (starts once cron is scheduled and finishes once said cron runs), importbuddyCreation (starts when importbuddy generation begins, finishes at completion), zipCommentMeta (starts prior to setting zip meta comment, finishes at completion). Misc minor fixes. 4.2.14.13 - 2014-02-27 - Dustin Bolton Fixed 'Compatibility mode max rows per select' advanced setting from being required. Improved input validation for numeric fields. Improved input validation for email fields. Fixed mail error warning when backup failed. Settings page no longer loads log file contents by default. Displays log via AJAX on-demand when visiting the Log tab. 4.2.14.14 - 2014-03-03 - Dustin Bolton Several fixes to error detection in new backup page javascript added in 4.2.14.12. Updated wpdbutils lib with preliminary mysqli support. Now using wpdbutils in mysqlbuddy for pinging instead of doing so directly. Removed redundant final database kicking after DB dump as this is only relevant for PHP-based dumping which already checks the connection status after each table dump. Various updates to prepare for mysqli support. Prior to saving the increment of backup steps attempts (when running out of order) fileoptions is now re-loaded immediately prior to save, respecting fileoptions lock, to help reduce chance of race conditions updating fileoptions while the prior step is saving. Pong! replies now show at the beginning of server responses for clarity. Significantly increased maximum input sizes for server addresses, paths, usernames, and passwords for all destinations. Replaced backup perform page jQuery .on() calls with .bind() for backward compatibility. New backupbuddy_core::backupbuddy_core::dbEscape() function for escaping with correct mysql/mysqli method. 4.2.14.16 - 2014-03-04 - Dustin Bolton Fixed warning when running in classic mode related to cronPass as of 4.2.14.14. wpdbutils updated adding _mysql_ping() function for handling appropriate pinging of server based on type throughout wpdbutils lib. 4.2.14.19 - 2014-03-05 - Dustin Bolton Fixed Send to Destination button not working just after completing a backup since 4.2.14.14. Updated saving of edits since last backup statistics to post_backup instead of pre_backup. Fixed undefined cronPass index warning. 4.2.14.21 - 2014-03-10 - Dustin Bolton Fixed integrity scan missing logging information. FEATURE: Added preliminary code for Sync verb: backupbuddy-get-importbuddy. Changed all codex links containing error codes which point to incorrect ImportBuddy pages to point to BackupBuddy error code page. Removed init_public.php as it is not used nor expected to be. If manual backups hang waiting for the next cron step for 15+ seconds then the cron schedule will be checked via AJAX and the next scheduled step run timestamp and time difference will be logged for troubleshooting. Fixed warnings not displaying in status log. 4.2.14.22 - 2014-03-11 - Dustin Bolton Sync verb backupbuddy-get-importbuddy: Fixed password not being passed. Verb v2. Database Rollback feature public beta. Moved querying the database after zip creation to prior to help avoid dealing with database going away. WordPress 3.9 makes DB kicker less useful of a query happens prior to kicking. 4.2.14.23 - 2014-03-12 - Dustin Bolton Sync verb backupbuddy-get-importbuddy: Fixed return data echo'ing instead of returning. Verb v3. 4.2.14.25 - 2014-03-15 - Dustin Bolton Added additional logging to writing SQL file in compatibility mode. 4.2.14.26 - 2014-03-15 - Dustin Bolton ImportBuddy Sync verb now base64 encoded to maintain integrity during transit. 4.2.15.0 - 2014-03-17 - Dustin Bolton Full release of quick release versions 4.2.14.0-4.2.14.26 and all their features. Added additional exception handling for Dropbox2 destination on configure page. Added chunk size setting bytes to Dropbox2 log for each chunk send portion. 4.2.15.1 - 2014-03-18 - Dustin Bolton Database Rollback beta now checks for prior temporary database files from a previous failed rollback attempt before proceeding to prevent error reporting existing tables. 4.2.15.2 - 2014-03-19 - Dustin Bolton Fixed exclusions not working on some Windows systems where WordPress upload path is in slightly different slash format. Symptoms includ zipbuddy exclude beginning in double forward slash. 4.2.15.3 - 2014-03-19 - Dustin Bolton Multisite Import: Fixed PHP error on import since 4.2.14.12. 4.2.15.5 - 2014-03-26 - Dustin Bolton Added French translations. Thanks to Alex de WP Themes Pro. 4.2.15.6 - 2014-03-26 - Dustin Bolton Fixed broken Server Tools link on bottom of Scheduling page. Added microsecond tracking to logs down to 1/100th of a second. Fixed Remote Destination send log not displaying in friendly format. 4.2.16.1 - 2014-04-28 - Dustin Bolton Full release of 4.2.15.x quick release versions. Now including global profile in backup array and DAT file for improved logging and troubleshooting. Changed internal API class to backupbuddy_api. Fixed issue with French translation containing single quotes breaking javascript. Fixed ImportBuddy generation and passing to Sync API. - Jordan backupbuddy-get-importbuddy Sync verb now generated MD5 hash. - Jordan 4.2.16.2 - 2014-04-29 - Dustin Bolton Additional sanitizing login added when calculating backup directory for exclusion purposes to better handle Windows path mismatches & network-based paths. 4.2.16.4 - 2014-05-05 - Dustin Bolton Fixed directory exclusion failing to exclude files/directories with dot (.) in them. Fixed file changed ctime() call to file modified mtime() call for integrity check. 4.2.16.5 - 2014-05-13 - Dustin Bolton Updated xzipbuddy (alternate zip system beta) supporting bursting for improved large site support. - Jeremy Trask Added IT Security dismissible notice to Malware Scan page. FEATURE: All destinations now support the option to disable remote file management. Backup directory was not correct when solely / and some cases of problems with network paths on Windows beginning with \\. Improvements in preventing the backup status from stalling during backup due to long AJAX timeouts. All new destinations now have chunking enabled by default (typically 100mb). Stash & S3 now include options to use included SSL certificate to address problems with some servers using old or incomplete certificate bundles. 4.2.16.7 - 2014-05-14 - Dustin Bolton ImportBuddy: mysql_test.php no longer directly uses $_POST variable to avoid triggering FALSE positives of potential various malware scanners. Fixed missing 4.2.16.5 version history items. 4.2.16.8 - 2014-05-15 - Dustin Bolton ImportBuddy: mysql_test.php typo fix resulting in error. 4.2.16.9 - 2014-07-15 - Dustin Bolton Fixed additional temp directory exclusions missing trailing slash during generation. Added additional logging to rollback to report SQL error when renaming tables fails. Updated zipbuddy library. - Jeremy Burst size reduced to 20 seconds (down from 40). Subsequent busts throttled down as needed. Internally added inclusion/exclusion based backup support as well as PCRE expressions for these for future use. Removed mysqlbuddy echoing to avoid triggering server problems in some rare situations. Possible PHP / server environment issue. ENHANCEMENT: Added additional API methods for calling by 3rd party plugins. See classes/api.txt for details. More documentation coming soon. Added new method backupbuddy_api::runBackup(). Added new method backupbuddy_api::getLatestBackupStats(). 4.2.16.10 - 2014-07-17 - Dustin Bolton Added trailing slash to directory size listing for consistency with actual exclusions when displayed. Removed tests from lib directory. 4.2.16.11 - 2014-07-18 - Dustin Bolton Fixed reversion causing some directory exclusions to not be excluded with periods in them. Introduced in 4.2.16.9. 4.2.16.13 - 2014-08-18 - Dustin Bolton BackupBuddy v5.0 Pre-Release: See changelog for version 5.0.0 below! 4.2.16.15 - 2014-08-19 - Dustin Bolton Fixed integrity check failing for command-line based backups. Removed Deployments page. Fixed integrity scan not pulling in all data for legacy backup files. Fixed PHP notice for integrity scan of older backup files. Improved performance of integrity scan results caching. Fixed checkbox checks not being centered within checkbox on Remote Destinations configuration page. 5.0.0.0 - 2014-08-20 - Dustin Bolton OVERVIEW: This release focuses on improving core functionality to the next level on both the backup and restore side. Performance, robustness, and usability have all been improved in this release. This means that BackupBuddy and ImportBuddy are easier to use & understand as well as better handling larger sites better, especially large databases. More advanced handling of problems and various fallbacks and intelligent checks (eg to handle .htaccess AddHandler issues) help to work around previous issues. If something does go wrong that cannot be worked around BackupBuddy or ImportBuddy will look at the situation and give contextually appropriate information to help you resolve the problem without having to seek outside help or reference. Improved persistant logging helps track processes for troubleshooting if support is still needed. FEATURE Backup interface overhaul. - Bradford Ulrich Continous overview of the process with active updating during its progression. Backup details are displayed as the backup runs, providing help as needed. Upon backup failure the Status log is highlighted for reference. FEATURE: BackupBuddy intelligently attempts to discern common backup issues and provide appropriate help and information for resolving the issue. FEATURE: Improved integrity scanning. Be even more assured of backup integrity as database backup files are now verified to exist in backups at a table level. ENHANCEMENT: Backup progress now shows database file size growing as backup commences. FEATURE: ImportBuddy interface overhaul. Easier to use, more intuitive, many new features. FEATURE: New destinations UI with easier to user tabbed display of destinations. Remote destination files & management are now displayed when viewing the remote destination page tabs for easy viewing and managing remote files. FEATURE: ImportBuddy: Database import step imports in chunks to handle larger databases. FEATURE: ImportBuddy: Database migration step migrates URLs, paths, etc in chunks to handle larger databases. FEATURE: Larger database support. MySQL import & dump now support resumable chunking for working with very large databases. PHP-based dumping is now the default. Both PHP-based and command line now break up dumping individual tables to individual .SQL files for easier importing, optionally selectively importing specific tables. Integrity scan takes this into account for more robust database dump verification (when applicable and available). FEATURE: Database Rollback Easily roll back the database to a prior version from within WordPress. Ability to undo changes on failure. FEATURE: ImportBuddy: Restores of full backups now allow the option to only restore files or only restore the database. FEATURE: Database backups now dump database tables to individual SQL files for easier or selective restoring of tables, especially if manually importing. FEATURE: All destinations which supported remote file management now have the option to disable this capability. ENHANCEMENT: Server Information section now displays whether or not PHP error logging is enabled, whether errors are displayed to screen, and the location of the log file. The error logging can also be tested to verify it is functioning properly. ENHANCEMENT: Timed out backups are now marked as Failed after 24 hours of no activity to the backup. Error notification email is sent of this failed backup is triggered by a schedule. If a step is detected to be timed out then suggestions will be given on fixing the issue. ENHANCEMENT: Remote transfer error notification emails now attach the remote send log to the notification email if available. ENHANCEMENT: Mass deletion of backups by the user on the Backups page now prompts for confirmation before proceeding. FEATURE: wp-content/uploads/backupbuddy_temp directory is now transient -- it will be deleted between uses and only exist temporarily for the backup process. FEATURE: Recent backup logs now persist for a bit to help keep a recent copy of logs from recent backup(s) for potential troubleshooting. Logs of recent backups are viewable (if available) from the backup page by hovering under the Status section. ENHANCEMENT: Remote destination option to lock any future access to viewing the destination's remote files added. ENHANCEMENT: Backup process now tracks zip file write speed during the actual backup process to get an idea of server performance, especially for larger sites. ImportBuddy: iframe-based progression through the backup process combined with Javascript templates and AJAX allows for a fluid experience with better error catching and a persistant status log. ImportBuddy: PHP-based import is now the preferred method due to new chunking. FEATURE: ImportBuddy: New and improved user interface. FEATURE: ImportBuddy: ImportBuddy now intelligently detects .htaccess file AddHandler references which are not needed for PHP to function and alerts the user of potential problems and does not migrate the AddHandler directive by default unless detected to be neccessary. FEATURE: ImportBuddy: Database imports now allow for selectively importing selected database tables for granular control over which database tables are/are not restored. FEATURE: ImportBuddy: New option to select whether to restore files and/or the database during the ImportBuddy restore when dealing with full backups. ENHANCEMENT: Performance improvements. Less registering of AJAX events with WordPress. FEATURE: Most recent backup log file is kept FEATURE: Added new setting to send a notification email upon remote destination file transfers finishing. ImportBuddy: Errors encountered during the import, including PHP errors are caught, logged, and displayed in the user interface to the user for improved visibility. ImportBuddy: Better handling of non-WordPress .htaccess file directives resulting in less chance of damaging custom rules. Changed default mysqlbuddy database method to use PHP rather than commandline. Windows-only: Fixed typo in mysqlbuddy calling msqldump.exe instead of mysqldump.exe. ImportBuddy now uses same JS logging system as BackupBuddy with triggered events from JSON passed from the server. Max execution time now definable for chunked database backups under Advanced Settings -> Database. New core function adjustedMaxExecutionTime() for determining. Selecting a destination to add bumps user back up to top where new content has loaded. Stash & S3 destinations now both have option to use included CA bundle for working around server SSL CA Cert bundle problems. Fixed email notification displaying as error status instead of details. Fixed dashboard overview linking to the latest backup even if it had been deleted / moved offsite. Fixed undefined index warnings for integrity information for deleted backups. Added additional logging of BackupBuddy version number for more easily determining version from log snippets. Fixed recent log files (such as from file transfer) purging far too quickly. Now 48 hours delay before cleanup. Approximate zip and database dump creation speed (in MB/sec) is now logged for helping to determine performance. Fixed logging of destination chunking reporting invalid chunking threshold for some edge cases. Only impacts logging. Fixed option to delete local backup after sending to remote destination failing to delete local copy when multipart chunking is used. Directory exclusion calculation for temp dirs now properly include trailing slash for consistency. Integrity check now verifies all SQL table files exist that were expected to be backed up. Integrity check now displays number of SQL files found passing (for v5.0+ backups). Fileoptions now logs a unique lock ID to help pair errors due to lock collissions with the lock generation. Changed setting to breakout large tables in commandline mode to enabled for better support of larger database tables. Changed default database dump method to PHP-based as it supports both table and row-based chunking & resuming. In Full Logging mode the backup state will be logged to the javascript console during backup for internal variable troubleshooting. (data in backup.php's $this->_backup var). Integrity check now checks that breakout table .sql files all exist. ImportBuddy: Fixed problem where sometimes cleanup step would be missing styling or graphics by using JS to load steps. sFTP destination: Fixed backup trying to send into incorrect path. First the path was changed into and then the file to upload included the path, resulting in doubling up of the path. Fixed typo in Dropbox description (multipark->multipart). Bug: Malware scan now using home_url() to calculate URL rather than site_url(). Setup wizard now calculates which destinations are supported by server and provides all compatibility destinations as options. Eg Dropbox v2. BackupBuddy temp directory is now transient. Failed backups may result in it lingering longer until periodic housekeeping cleanup function removes it. Fixed incorrect background color when restoring a file from backup. File restore from backup now falls back to using copy/unlink combination when restoring files if rename() fails. Added note to not send complete log when seeking support unless requested and instead to send Status Log made during backups. Added tip to set email error notification setting, including background in input. When full error logging is enabled: Serial logging (eg from a running backup) is now directed to a separate log instead of the main for easier access and isolation. Added ability to view backup log if available (eg due to full logging enabled). Flushing (flush() calls) can be disabled by setting the constant BACKUPBUDDY_NOFLUSH to TRUE in wp-config.php for rare server issue or troubleshooting. Fixed potential bug whereby ImportBuddy would seek out the DAT file in the root of the site before checking the temp subdirectory. This could result in using the wrong DAT file loading and thus an import failure with unexpected issues. Added warning suppression to php_uname() calls in zipbuddy to prevent warnings when generating server signature. Removed S3 key retrieval link as this is depricated due to secret keys no longer being supported. Backup steps view now lists steps taking less than 1 second as < 1 second rather than 0. Timed out backups are now examined for potential problems and their status updated appropriately to prevent 'hanging' timed out backups. Bug fix: Deleting a local backup after sending to a remote destination when chunking was enabled was not happening. Fixed. Fixed Server Tools page quick release links being reversed. Fixed additional temp directory exclusions missing trailing slash during generation. Bug: Malware scanner showed site_url() when it should be testing and showing home_url() results. Setup wizard now only shows destinations compatible with the server BackupBuddy is running on instead of all of them. View & restore of files from within an archive now use copy/unlink rather than rename to handle moving between different filesystems. ImportBuddy: Database backup restores no longer dump their contents into the site root for security and instead use a randomly named subdirectory to hold these temporary files. ImportBuddy: importbuddy.php can now be renamed and still run as expected. New Sync verb: backupbuddy-add-schedule New Sync verb: backupbuddy-delete-schedule New Sync verb: backupbuddy-list-destinationTypes New Sync verb: backupbuddy-test-destination New Sync verb: backupbuddy-delete-destination New Sync verb: backupbuddy-get-destinationSettings New Sync verb: backupbuddy-add-destination Now logging list_parts() response for S3 and Stash destinations for better troubleshooting of multipart send failures. WordPress cron schedules for scheduled backups are now periodically audited to check for duplicate schedules. If any are found they are removed. Inability to unschedule will log an error. Cron's destination_send() function now accepts an additional unique identifier to lock running so that the same transfer does not run multiple times due to cron issues. Upon cron.php destination_send() running, a file is created in the BB log directory named cronSend-UNIQUE_ID_HERE.lock if it does not exists with a string of 1 as the contents. If it already exists then the schedule has run more than once and the attempt will be logged with the attempt count and halted. ENHANCEMENT: Added additional API methods for calling by 3rd party plugins. See classes/api.txt for details. More documentation coming soon. API: Added new method backupbuddy_api::runBackup(). API: Added new method backupbuddy_api::getLatestBackupStats(). Fixed FTP transfer mode from saying Active was default as Passive has been default since 3.x. Removed echo in mysqlbuddy during PHP-based dumping which could result in the PHP process ending on some servers. Recently made backups and recently sent files can be viewed on those pages by clicking the new link to the right of the page title at the upper left of the page content. Added check for S3 test to see if CFRuntime class already exists which would indicate another plugin loading S3 libraries on BackupBuddy pages causing a conflict. Added additional logging to remote send function to track where failures may occur. ENHANCEMENT: Multisite Network Migration improvements for moving entire networks. ALPHA TESTING - Jul 16: Fixed all reported issues except: PHP Fatal error: Call to a member function get() on a non-object in [...]/wp-includes/cache.php on line 113 Multisite: Improved notification message on network activating and wp-config.php modification to adjust the message based on which is missing. Improved message when log directory does not exist and cannot be created. Zip method strategy now defaults to 'best available'. ALPHA TESTING - JUL 22: Removed duplicate option to delete file after send for schedules. Added additional logging to importbuddy temp directory usage and additional temp directory calculation locations to help solve writability issues. Fixed log not displaying properly during file restores from an archive. ALPHA TESTING - JUL 23: Fixed the following by caching the getLogDirectory function calculation in BB core class: PHP Fatal error: Call to a member function get() on a non-object in [...]/wp-includes/cache.php on line 113 Updated text in various locations. Minor UI tweaks. ALPHA TESTING - JUL 30: Removed some extra console logging used for debugging new backup process. Some remains for now. Fixed date calculation for edge cases of some timezones. Fixed empty zero-indexed item in default settings on install. Total aggregate SQL dump size now logged after each SQL file dumped. Database aggregate file size in UI & status log now displayed during backup now display to 2-decimal precision. Updated 'Break out big table dumps into steps' being noted as defaulting to disabled to enabled. Misc UI tweaks in ImportBuddy. ALPHA TESTING - AUG 11: Added additional catch for logging fatal PHP errors encountered when grabbing latest backup status information. Fixed remaining issue with wp-cache. ImportBuddy: Fixed cleanup settings & final status not showing after restore completed in some cases due to .htaccess preventing loading. Now pre-caching these templates. ImportBuddy: Fixed rtrim warning. BETA - AUG 14: Multisite Subsite Export: Base database tables to dump always forced to prefix instead of using default profile setting. ENHANCEMENT: Upon authentication failure when viewing Stash destination user is now prompted to re-authenticate instead of requiring deletion & re-creation of destination. New "Re-authenticate" link added to Stash file manager to allow manually re-authenticating or changing which Stash account is being used for the destination. ImportBuddy: After a failed database test changing any settings now clears out prior errors to prepare for next test. ImportBuddy: Database settings page advanced option to select SQL files to restore now always shows scrollbar to make it clearer it is scrollable. Applicable especially to Macs. RC1 Testing - Aug 18: Server Tools disabled PHP function list width now limited to prevent pushing page contents too wide. Changed Server Tools logging to suggest not displaying errors to screen. Added more details to logging ini settings descriptions. Merged preliminary work on Deployment system. Additional Multisite logging. Misc fixes. 5.0.1.0 - 2014-08-20 - Dustin Bolton Fixed syntax error, unexpected T_SL in mysql_test.php caused due to unresolved GIT merge issue pushing despite conflict still existing. 5.0.1.1 - 2014-08-20 - Dustin Bolton Fixed 'Send' link on Restore / Migrate page going to Migration feature rather than allowing sending backups to remote destinations. Fixed having to select to add a destination twice when creating a new destination from the Restore / Migrate page. Sending to a remote destination via the Backup page displays sending confirmation in-page instead of alert box. ENHANCEMENT: Added new advanced option "Reschedule missing crons in manual backups" which has BackupBuddy attempt to reschedule missing cron jobs during manually made backups to prevent the backup from stalling. Via backup_status.php. 5.0.1.2 - 2014-08-20 - Dustin Bolton ImportBuddy: Fixed missing ability to restore from Stash or upload an archive from Step 1 if there was not already a backup in the directory. 5.0.1.3 - 2014-08-20 - Dustin Bolton Improved Javascript performance on backup page resulting in hanging page on Multisite networks with very large numbers of tables. 5.0.1.4 - 2014-08-21 - Dustin Bolton Fixed standalone preloader for wp_upload_dir() to return basedir key value pair instead of just the single string value. ImportBuddy: Error display box no longer scrolls. Expands to unlimited height so errors are not hidden behind overflow. ImportBuddy: 9010 errors are now capped at 10 displayed on screen. After that a single error is thrown indicating that all 9010 errors are logged to ABSPATH . 'importbuddy/mysql_9010_log-' . pb_backupbuddy::$options['log_serial'] . '.txt'. mysqlbuddy: Importing of SQL resulting in 9010 errors now writes to log file for troubleshooting, including logged in header previous and new prefix values. 5.0.1.5 - 2014-08-21 - Dustin Bolton Fix: If post-remote-send deletion is enabled but transfer fails the local file will no longer be deleted. ImportBuddy: Fixed 9010 error when restoring to a new WordPress prefix using PHP-based method caused by invisible character preceeding query line hampering regex matching. 5.0.1.6 - 2014-08-21 - Dustin Bolton ImportBuddy now warns if trying to use an old version of importbuddy.php to restore a newer backup archive. Eg attempting to restore a 5.0 backup with a 4.0 importbuddy.php. ImportBuddy: Fixed unchecking both Files & Database restore from unzipping some files anyway to temp location. ImportBuddy: Fixed wp-content/uploads/backupbuddy_temp/restore_XXXXXX/ directory being crated. Moved to proper temp directory beneath importbuddy folder. 5.0.1.7 - 2014-08-22 - Dustin Bolton Fixed SQL size aggregate in log increasing by the amount of each report of the current SQL file size. Fixed alert box displaying a URL popping up when selecting to create a new destination. 5.0.1.8 - 2014-08-22 - Dustin Bolton Fixed out of date ImportBuddy warning. 5.0.2.0 - 2014-08-22 - Dustin Bolton Restore now attempts to copy instead of move file during restore to prevent cross-link issues. 5.0.2.1 - 2014-08-24 - Dustin Bolton ImportBuddy: On json decode error, if function json_last_error() is available then error code is also logged. ImportBuddy: Added additional encoding to state data passing from browser to PHP to help protect UTF8 data in transfer. Prevents json_decode() failure based on malformed UTF8 despite jslinter saying it's valid. PHP extra sensitive? 5.0.2.2 - 2014-08-25 - Dustin Bolton ImportBuddy: Extended json_decode issue fix to all pages. ImportBuddy: Updated bruteforce lack of primary key to indicate it may only be a non-fatal warning. 5.0.2.3 - 2014-08-25 - Dustin Bolton Malware scan page: Updated links for iThemes Security Pro & Sucuri. Stash destination: Subscriber key now displayed to the right just under file listing. Used by support when troubleshooting potential issues. Significant improvement of javascript performance when logging to status log during backup. Appending to the status log now queued to once per second to prevent hammering DOM which freezes browsers on sites with massive databases. Fixed .htaccess issue where restored site's .htaccess could result in broken URLs / CSS. 5.0.2.4 - 2014-08-25 - Dustin Bolton Fixed wp-cli error about profile being non-numeric. 5.0.2.5 - 2014-08-25 - Dustin Bolton Multisite Import: Fixed inability to import BackupBuddy 5.x sites into Network that consisted of multiple SQL files. 5.0.2.6 - 2014-08-26 - Dustin Bolton Consolidated database dump logging some to reduce number of repeated lines per dump. Now displaying current table being dumped in graphical backup UI. Added US GovCloud support for amazon S3. Fixed dashboard widget backup now URL on Multisite. ImportBuddy now only creates an index.htm on any access if an index.php does not exist. 5.0.2.7 - 2014-08-26 - Dustin Bolton Added additional status logging of current SQL file name. File restore copy() replaced with pb_backupbuddy::$filesystem->recursive_copy() call to handle directories. 5.0.2.8 - 2014-08-29 - Dustin Bolton ImportBuddy no longer requires password field for database settings to pass test as it is technically possible for it to be blank in mysql. ImportBuddy: Option to select files and/or database no disabled/enabled based on currently selected backup type. Eg files is unchecked for database only backup archives. ImportBuddy: Fixed selecting only to restore database on a Full backup type not working unless files were already unzipped. ImportBuddy: Re-added advanced option on Step 1 to completely skip file unzipping & opening the zip file. User must manually unzip archive prior to using this option. ImportBuddy: Fixed restore state not urlencoding data when database chunking. Could cause problems with special characters such as plus sign (+) in settings getting lost between chunks. ImportBuddy: cPanel database functionality now using API2 json. - Jeremy ImportBuddy: Fixed cPanel username & database name not populating mysql settings fields. Remote Destination settings saving now displays saving indicator & closes configuration on save success. 5.0.3.0 - 2014-09-03 - Dustin Bolton Full release of recent quick release versions. Logging improvements. Fixed directory exclusion count in backup interface always saying zero. Plugin options are verified to be loaded at initiation of activation.php. 5.0.3.1 - 2014-09-03 - Dustin Bolton Changed text wording for toggling display of Status Log during ImportBuddy or Rollback to "Display Status Log". 5.0.3.2 - 2014-09-03 - Dustin Bolton ImportBuddy no longer requires password field for database settings to pass test as it is technically possible for it to be blank in mysql. Fix did not apply in 5.0.2.8. 5.0.3.3 - 2014-09-10 - Dustin Bolton Fixed undefined index in ImportBuddy when restoring a v1.x backup file on Step 1. ImportBuddy now checks for db.sql file for restoring for BackupBuddy v1.x backward compatibility. Error #9029 (warning only for bruteforce) now returns true as to now trigger a secondary error about bruteforce failure. Fixed typo in mysql compatibility setting. Added additional logging for failed cron chunk scheduling for Dropbox2. ImportBuddy: Fixed customer Home URL option in ImportBuddy using siteurl for homeurl. ImportBuddy: Updated existing wp tables error to note the advanced option to ignore SQL errors & existing tables as an option to proceed. Useful when only restoring a subset of wp tables from the advanced options. 5.0.3.4 - 2014-09-27 - Dustin Bolton Multisite Import: Fixed multisite import not updating site URLS. Since v5. Added additional logging during step 6 of Multisite import. Added exit code lookup for 126: 'Command invoked cannot execute. Check command has valid permissions and execute capability.' Ignore command line length check changed to skip this check. ImportBuddy: index.htm/.html file scrubbing now also scrubs index.html. ImportBuddy: Added additional logging for db SQL import to track process. Also additional troubleshooting details logged if hanging between SQL files. ENHANCEMENT: Updated German translations. - Thanks to Thomas Heinrichsdobler. Added new advanced option skip_spawn_cron_call to skip attempt at chaining cron during backups. Fixed Dropbox2 bug where chunked transfers of > 2 parts would fail to complete. 5.0.4.0 - 2014-10-06 - Dustin Bolton IMPORTANT: This upgrade is especially recommended for sites with large database tables which are relying on chunking while in PHP-based database dump mode. BUG: Fixed issue where a chunked database dump in PHP mode for a large database table could miss backing up some data from that table and the suqsequent table. importbuddy periodic cleanup now looks for files of format importbuddy*.php to also catch importbuddy deployment files. Database dump process during chunking updated to be more clear about number of rows dumped per table and its final total. 5.0.4.1 - 2014-10-06 - Dustin Bolton Fixed Mass DB replacement not showing full details in log. 5.0.4.2 - 2014-10-07 - Dustin Bolton Updated Dropbox2 destination SDK library to version 1.1.3 (2014-01-28). Dropbox2: Fixed remote file listing not properly sorting by date (newest to oldest descending). ImportBuddy: SQL file size now reported prior to importing each .sql file in log. ImportBuddy: Fixed potential PHP warning caused by performing addition on possible bool false value if replacements in database failed bruteforce. ImportBuddy: Fixed mass database replacement log not showing in page. Fixed illegal string offset warning in dropbox (legacy) destination when directory is empty. 5.0.4.3 - 2014-10-08 - Dustin Bolton Fixed send_remote_destination() throwing $identifier warning in some locations due to lack of default value. 5.0.4.4 - 2014-10-20 - Dustin Bolton Manual mass database replacement no longer limited to default 30 second chunk time. Fixed Stash copy file to local not copying file. Fixed editing schedule changing next run time/date to first run time/date. These values are the same on new schedules but differ on old ones. 5.0.4.5 - 2014-10-21 - Dustin Bolton Fixed integrity scan on backups received from a remote destination where local fileoptions file is missing. Fixed delayed load time (with the potential for timeouts) when loading the backup page. Removed inadvertant display of remote API information from destinations page. 5.0.4.6 - 2014-10-21 - Dustin Bolton Fixed short opening PHP tag which could cause error when short_open_tag not configured as enabled. 5.0.4.7 - 2014-10-29 - Dustin Bolton Fixed 'Creating default object from empty value' warning for Multisite Network -> Network imports. Misc ImportBuddy wording tweaks. Misc remote destination UI cleanup. 5.0.4.9 - 2014-11-04 - Dustin Bolton Multisite Import: Fixed database migration of URL not running. Multisite: Fixed error message when upload directory is in alternative location. Multisite: Fixed some URLs not being updated when using subdomains. Updated missing DAT file error to indicate that the zip file may not have fully uploaded or may be corrupt. Misc UI adjustments, error message improvements. 5.0.4.10 - 2014-11-14 - Packaging Bot (lib/updater) Enhancement: Reduced caching to allow updates to appear more quickly. Enhancement: Authenticating users now uses the new authentication system. 5.1.0.1 - 2014-11-19 - Dustin Bolton Dropbox Destination Fix: SSL version now forced to v1 (TLS) as per new Dropbox API requirements. ImportBuddy: Added additional logging about current step for better troubleshooting. Updated database replace to also handle replacements of nested array/object/string combinations. fileystem class mkdir() now defaulting to 0755 permissions. Server Tools Page permissions section now uses WP directory constant for listing plugin & theme directory permissions. ImportBuddy: Step 6 typos fixed in tips section. Temporary rollback/deploy database name now uses only first 4 characers of serial for prefixing. ImportBuddy: Fixed .htaccess.bb_temp rename attempt even if that file does not exist. 5.1.0.2 - 2014-11-19 - Dustin Bolton Amazon S3: Added new region endpoint - EU (Frankfurt). 5.1.0.3 - 2014-11-19 - Dustin Bolton Amazon S3, Stash: If CURLOPT_CLOSEPOLICY is not a long data type then this curl option is no longer set to avoid throwing warning. 5.1.0.5 - 2014-11-19 - Dustin Bolton ImportBuddy: Fixed undefined index $restoreData. Fixed updater reversion. 5.1.0.6 - 2014-11-20 - Dustin Bolton ImportBuddy: Fixed array_replace_recursive() error when running under PHP 5.2.x. 5.1.0.7 - 2014-11-20 - Dustin Bolton PHP database dump: Current database size is now displayed every 5 seconds minimum by the same PHP process doing the dumping. PHP database dump: Current database size is displayed every AJAX status check after the first full response notifies the browser of database table name. PHP database dump: Wiggle room for detecting need for chunking increased to 3 seconds up from 1 second to help avoid accidently hitting max runtime. Backup process Status Log tab now has "Download Status Log Text File" button for downloading the current status log as a text file. Useful for seeking support. 5.1.0.8 - 2014-12-19 - Dustin Bolton Improved backup listing action display. Misc UI cleanup. Remote Destinations page GUI improvements. Settings now available by clicking the "Gear" icon next to each destination title in its tab. iThemes Sync: New verb backupbuddy-edit-destination. iThemes Sync: New verb backupbuddy-get-backupStatus. Server Tools page: Added 'Loopback Domain & IP' item for displaying the server-reported IP address for the domain in the site URL to help troubleshoot causes of loopback problems. Added internal API function backupbuddy_api::getBackupStatus(). Fixed alternate cron javascript polling to load from pb_backupbuddy_backup page. iThemes Sync: Fixed backupbuddy-delete-destination verb. iThemes Sync: All destination verbs now return the destination ID number of the destination being manipulated. destination_id- Destination ID number of the destination just deleted. Fixed localization issue with single quotes in text breaking javascript. Changed single quotes in outer wrapping quotes to double quotes. Specifically impacted French translations. trim_remote_send_stats() now uses configurable settings to determine how far back to keep stats logs. Slightly re-arranges advanced settings to be better ranked by popularity. Most used advanced settings bolded for easier discovery. Added new advanced options for controlling how long recently sent remote transfer logs & statistics are stored. Added new scheduling interval: Every other day. Added new scheduling interval: Yearly. Misc minor changes. Set default scheduling interval selected to Daily. Fixed ImportBuddy password confirmation being stored in data structure on save which could cause saving advanced settings to overwrite existing importbuddy hash. On upgrade any existing importbuddy password confirmation stored is erased. 5.1.0.9 - 2014-12-20 - Dustin Bolton Fixed missing zip method strategy settings. 5.1.1.1 - 2014-01-21 - Dustin Bolton Updates to wp-config.php DB_PASSWORD now escape password to prevent special characters from causing a problem due to lack of escpaing. Fixed user-friendly display of backup start time being calculated based on start time. Added nonce security (CSRF) protection to Quick Setup wizard, Database rollback wizard, profile naming, Stash login, resetting plugin settings to defaults. Fixed missing profile configuration modal padding. S3 destination: If bucket region detection fails an additional note is added to the error message: "Note: Since the region could not be detected, if you are using IAM security, verify this resource ALLOWs the action "s3:GetBucketLocation"." Database rollback now takes into account SSL-secured sites without giving error that site URLs do not match. FEATURE: New setting to limit the number of local backups based on backup type. Dropbox2 destination: Fixed option to delete local backup after sending to Dropbox not happening. Support for port number specified in DB_HOST added. mysqlbuddy library now handles custom port in hostname. eg localhost:3306. Fixed modal display in importbuddy not being scrollable if too tall to fit on screen. ImportBuddy: No longer outputting comment about unlinking existing importbuddy directory if a newer version importbuddy.php was found than the contents of the importbuddy directory. Changed all target="_new" to target="_blank" to properly enforce opening in new window. Fixed fatal PHP errors directly output to log text or logged via shutdown function not displaying in status log. ENHANCEMENT: Backup & Restore Status Logs now highlight important information with colors. Errors = red, Warnings = orange, Notices & Other Information = blue. Fixed remote destination configuration gear disappearing upon saving any changes. Added new option "Force cron if behind by X seconds" to force the cron to spawn now. Manual backups only. Fixed cron status check finding cron is missing not logging to status log. Release of all quick releases 5.1.0.1-5.1.0.9. Fixed download Status Log link not working on some browsers. Added additional logging & improved testing for crons passing their run time. Fixed cron missing test not running under some circumstances. 5.1.1.2 - 2014-01-28 - Dustin Bolton Javascript error alert now displays error message, file, and line number of error and also logs to the status log. FEATURE: Added button to download the status log text file to the overview tab. Added http loopback test specific to POSTing to wp-cron.php in the same format as WordPress cron to better simulate testing of actual cron loopback system. Hover "Hover for details" next to the text on Server Tools page to view the returned data & status codes. When editing a schedule, if the next runtime is not able to be determined, set it to current timestamp rather than reverting to 0 which renders as 1970. Database chunking now uses pb_backupbuddy::$start_time to determine elapsed time to better match total elapsed runtime to take into account time used prior to database dump step. Table name in SQL query of primary keys for table during import now wrapped in `` to handle special table characters. Increased integrity checking logging. 5.1.1.3 - 2014-01-28 - Dustin Bolton Added Jetpack Security Reporting code to register BackupBuddy with Jetpack. 5.1.1.8 - 2014-01-29 - Dustin Bolton Fixed WP_error fatal error when loopback test fails. Fixed 'infinite update' problem. 5.1.1.9 - 2014-02-01 - Dustin Bolton Improved Jetpack Security Reporting functionality for more details on warnings or too much time has elapsed since a backup completed. 5.1.1.10 - 2014-02-02 - Dustin Bolton FEATURE: Added Jetpack Security Reporting features to warn if a backup has never been made or if there are no schedules in addition to too much time elapsing between backups. 5.1.1.11 - 2014-02-03 - Dustin Bolton Fixed fatal error when loopback test failed. Resulted in blank backup page if error reporting was suppressed. 5.1.1.12 - 2014-02-04 - Dustin Bolton ENHANCEMENT: Updated Swedish translations. - Thanks to Per von Dolwitz. Fixed javascript error when running in classic mode on server which loads status box slowly. 5.1.1.13 - 2014-02-05 - Dustin Bolton Added additional javascript conditions during classic mode to prevent possible warnings if status box is not yet available. Fixed Stash destination not allowing disabling of chunking by setting chunk size to zero (0). 5.1.1.14 - 2014-02-09 - Dustin Bolton Added additional error number logging to mysql error reporting during mysqlbuddy import and importbuddy mysql test. 5.1.1.15 - 2014-02-17 - Dustin Bolton Missing exec() now only a warning as it is not technically a fatal situation. Fixed database migration chunking from redirecting back to Step 4 if chunking is needed on Step 5. Improved wording on Server Tools explanations. Fixed backupbuddy_transient_delete() not deleting expired WordPress transients since 4.2.12.7 -- transients could build up due to WordPress not culling them appropriately. Added new constants.php backupbuddy_constants class to begin centralizing variables such as numeric variables that are used throughout BackupBuddy. Now using jQuery UI tooltip (provided with WordPress core) for tooltips within BackupBuddy plugin. Fixed scheduled backup having timed out not sending error email notification in periodic cleanup function. If backup does not progress for 72 hours then a notification is sent. 5.1.1.17 - 2014-02-18 - Dustin Bolton BackupBuddy now confirms deletion of any number of backups before proceeding. Previously only confirmed if all were selected for deletion. S3: Added new exception catching for getting bucket information for preparing bucket in _prepareBucketAndRegion(). Changed loopback test result of 'Connected to server but unexpected output' error to warning only. Schedules are now verified when going to the Scheduling page and during periodic cleanup via backupbuddy_core::validateSchedules(). 5.1.1.18 - 2014-02-18 - Dustin Bolton Fixed error when fixing damaged scheduled due to incorrect intercal causing operand error. 5.1.1.19 - 2014-02-23 - Dustin Bolton Scheduled backup timeout detection no longer sends emails if the backup timed out longer than 7 days ago to prevent email notification flood from very old backups. 5.2.0.0 - 2014-03-02 - Dustin Bolton Release of all updates from 5.1.1.1-5.1.1.19. Remote destinations not available due to lacking server requirements are now shown when selecting to add a destination (on remote destinations page or post-backup) but greyed out and indicating why they are unavailable. 5.2.0.1 - 2014-03-25 - Dustin Bolton FEATURE: Added new backup page Status Log checkbox to toggle auto-scrolling of the status log contents. Amazon S3 destination now displays error message indicating lack of curl when adding destination if curl is not available on this server. Remote Destination advanced options now not displayed by default. Click 'Advanced Options' to display them. Added new alternative zip method supporting bursted chunked zip creation for handling very large sites. - Jeremy Trask 5.2.0.4 - 2014-03-26 - Dustin Bolton Added backup status log option to limit to the last 100 lines displayed. Useful for sites generating extremely long status logs resulting in browser issues (eg out of memory). State data is now only output to browser javascript console when full logging mode is enabled. Debugging backup process data only sent to browser javascript console when in development mode. Fileoptions storage of the backup state now clears step arguments for finished functions to prevent buildup of state data once a function has passed (eg for deployment state or new alternate zip method state) to prevent rapid uncontrolled fileoptions file growth. Performance increases to backup page javascript when logging or displaying loading indicator. 5.2.0.5 - 2014-04-06 - Dustin Bolton Removed Stash directory name from displaying in the Stash remote file listing. 5.2.0.6 - 2014-04-07 - Dustin Bolton Deployment beta updates. Google Drive beta updates. All remote destinations: Fixed 'Select all' button for selecting all files stored in a remote destination. Fixed possible javascript error when running in classic mode based on timing. Database chunking is now fully disabled when running in classic mode. Fixed inability to set ImportBuddy password back to the prior password after having cleared it to blank. Fixed ImportBuddy's hash remaining in database after clearing it. Fixed ImportBuddy hash confirmation being populated in plugin options when saving Advanced page. Change of locked archive directory (high security mode) now takes place immediately by running periodic cleanup function to validate the new setting is applied as expected. Server Tools page latest BackupBuddy version now always shows latest, ignoring cached version data. 5.2.0.7 - 2014-04-09 - Dustin Bolton Updates to beta features. 5.2.0.8 - 2014-04-13 - Dustin Bolton Fixed remote send log not being sent in error email went remote send failed. Fixed loadingIndicator potential javascript error when in Classic mode. Fixed typo on Settings page. 5.2.0.9 - 2014-04-15 - Dustin Bolton When backing up is unavailable due to inability to write to backup or temporary directory then the message "Backing up disabled due to errors listed above. This often caused by permission problems on files/directories. Please correct the errors above and refresh to try again." will be displayed in place of the backup buttons to prevent attempts which will certainly fail. Improved security for all AJAX calls. Alternative zip method options are now displayed automatically when changing its setting without requiring refreshing the page. BackupBuddy Deployment & Google Drive features now available for BETA testing. 5.2.0.10 - 2015-04-23 - Packaging Bot (lib/updater) Compatibility Fix: Updated plugin and theme update data format to match changes in WordPress 4.2. 5.2.0.11 - 2015-05-01 - Dustin Bolton Improved remote destination tests. Fixed selecting to Add a new destination from the Schedules page and then adding a new destination within the thickbox resulting in the tabbed display of destinations and having to re-select to add a destination. In progress remote send status now changed to "running". Each time a remote send status is updated now updates "time_updated" entry with current timestamp. Remote destination sends that have not been updated after a period of time are now marked as timed out and send notification email. Old status logs will now be removed after 10 days rather than 2 days. Fixed "File destination send finished email recipient(s)" feature not sending notification emails. Fixed issue 'Manual Backup With Send and Delete After Reports ZIP File Not Found at End' by no longer wiping send_remote_destination step information from fileoptions after function finish. Fixed timing issue / race condition where _getBackupStatus.php retrieving fileoptions could possibly retrieve the file mid-write, resulting in an incomplete serialized array being returned and a fatal error #9031b. If this happens then it will sleep for 1 second, up to 10 times, re-checking the fileoptions file for valid contents prior to proceeding. Classic mode: Fixed possible javascript error when running under Classic Mode due to retrieving scrollHeight of non-existant status box. --ALL NEWER UPDATES IN history.txt--