Submit
Path:
~
/
home
/
b
/
f
/
x
/
bfxleof
/
www
/
wp-content
/
plugins
/
duplicator
/
ctrls
/
File Content:
Revisions.php
<?php /** * Manages revisions (backups) of a file. * Revision file names have form "<filename>-backup-<date>.<ext>~" */ class Loco_fs_Revisions implements Countable/*, IteratorAggregate*/ { /** * @var Loco_fs_File */ private $master; /** * Sortable list of backed up file paths (not including master) * @var array */ private $paths; /** * Cached regular expression for matching backup file paths * @var string */ private $regex; /** * Cached count of backups + 1 * @var int */ private $length; /** * Paths to delete when object removed from memory * @var array */ private $trash = array(); /** * Construct from master file (current version) * @param Loco_fs_File */ public function __construct( Loco_fs_File $file ){ $this->master = $file; } /** * @internal * Executes deferred deletions with silent errors */ public function __destruct(){ if( $trash = $this->trash ){ $writer = clone $this->master->getWriteContext(); foreach( $trash as $file ){ if( $file->exists() ){ try { $writer->setFile($file); $writer->delete(false); } catch( Loco_error_WriteException $e ){ // avoiding fatal error because pruning is non-critical operation Loco_error_AdminNotices::debug( $e->getMessage() ); } } } } } /** * Check that file permissions allow a new backup to be created * @return bool */ public function writable(){ return $this->master->exists() && $this->master->getParent()->writable(); } /** * Create a new backup of current version * @return Loco_fs_File */ public function create(){ $vers = 0; $date = date('YmdHis'); $ext = $this->master->extension(); $base = $this->master->dirname().'/'.$this->master->filename(); do { $path = sprintf( '%s-backup-%s%u.%s~', $base, $date, $vers++, $ext); } while ( file_exists($path) ); $copy = $this->master->copy( $path ); // invalidate cache so next access reads disk $this->paths = null; $this->length = null; return $copy; } /** * Delete oldest backups until we have maximum of $num_backups remaining * @param int * @return Loco_fs_Revisions */ public function prune( $num_backups ){ $paths = $this->getPaths(); if( isset($paths[$num_backups]) ){ foreach( array_slice( $paths, $num_backups ) as $path ){ $this->unlinkLater($path); } $this->paths = array_slice( $paths, 0, $num_backups ); $this->length = null; } return $this; } /** * build regex for matching backed up revisions of master * @return string */ private function getRegExp(){ $regex = $this->regex; if( is_null($regex) ){ $regex = preg_quote( $this->master->filename(), '/' ).'-backup-(\\d{14,})'; if( $ext = $this->master->extension() ){ $regex .= preg_quote('.'.$ext,'/'); } $regex = '/^'.$regex.'~/'; $this->regex = $regex; } return $regex; } /** * @return array */ public function getPaths(){ if( is_null($this->paths) ){ $this->paths = array(); $regex = $this->getRegExp(); $finder = new Loco_fs_FileFinder( $this->master->dirname() ); $finder->setRecursive(false); /* @var $file Loco_fs_File */ foreach( $finder as $file ){ if( preg_match( $regex, $file->basename(), $r ) ){ $this->paths[] = $file->getPath(); } } // time sort order descending rsort( $this->paths ); } return $this->paths; } /** * Parse a file path into a timestamp * @param string * @return int */ public function getTimestamp( $path ){ $name = basename($path); if( preg_match( $this->getRegExp(), $name, $r ) ){ $ymdhis = substr( $r[1], 0, 14 ); return strtotime( $ymdhis ); } throw new Loco_error_Exception('Invalid revision file: '.$name); } /** * Get number of backups plus master * @return int */ public function count(){ if( ! $this->length ){ $this->length = 1 + count( $this->getPaths() ); } return $this->length; } /** * Delete file when object removed from memory. * Previously unlinked on shutdown, but doesn't work with WordPress file system abstraction * @param string * @return void */ public function unlinkLater($path){ $this->trash[] = new Loco_fs_File($path); } /** * Execute backup of current file if enabled in settings. * @param Loco_api_WordPressFileSystem Authorized file system * @return Loco_fs_File|null backup file if saved */ public function rotate( Loco_api_WordPressFileSystem $api ){ $backup = null; $pofile = $this->master; $num_backups = Loco_data_Settings::get()->num_backups; if( $num_backups ){ // Attempt backup, but return null on failure try { $api->authorizeCopy($pofile); $backup = $this->create(); } catch( Exception $e ){ Loco_error_AdminNotices::debug( $e->getMessage() ); $message = __('Failed to create backup file in "%s". Check file permissions or disable backups','loco-translate'); Loco_error_AdminNotices::warn( sprintf( $message, $pofile->getParent()->basename() ) ); } // prune operation in separate catch block as error would be misleading try { $this->prune($num_backups); } catch( Exception $e ){ Loco_error_AdminNotices::debug('Failed to prune backup files: '.$e->getMessage() ); } } return $backup; } }
Edit
Rename
Chmod
Delete
FILE
FOLDER
Name
Size
Permission
Action
.DS_Store
10234 bytes
0644
20200616130143_ReplacePermalinkHashIndex.php
2293 bytes
0644
DownloadConfController.php
945 bytes
0644
JsonSerializable.php
577 bytes
0644
LimitStream-20260707162816.php
4209 bytes
0644
LimitStream.php
4209 bytes
0644
README.md
2555 bytes
0644
Revisions.php
6508 bytes
0644
class-admin-utils-20260623161956.php
2147 bytes
0644
class-admin-utils.php
2147 bytes
0644
class-collector-20260707073754.php
984 bytes
0644
class-collector.php
984 bytes
0644
class-helpscout.php
6972 bytes
0644
class-metabox-formatter.php
12602 bytes
0644
class-option-tabs-formatter-20260704171040.php
2321 bytes
0644
class-option-tabs-formatter.php
2321 bytes
0644
class-premium-upsell-admin-block.php
3631 bytes
0644
class-sitemaps-admin-20260703023908.php
3665 bytes
0644
class-sitemaps-admin.php
3665 bytes
0644
class-tracking-server-data-20260706064343-20260707003656.php
1989 bytes
0644
class-tracking-server-data-20260706064343.php
1989 bytes
0644
class-tracking-server-data.php
1989 bytes
0644
class-wpseo-statistics.php
1443 bytes
0644
class-yoast-notification-center.php
23601 bytes
0644
class-yoast-plugin-conflict.php
10390 bytes
0644
class.archive.config.php
1364 bytes
0644
class.pack.database-20260705133709.php
30838 bytes
0644
class.pack.database.php
30838 bytes
0644
class.password.php
6377 bytes
0644
class.snaplib.u.net.php
1831 bytes
0644
class.u.shell.php
1322 bytes
0644
class.web.services-20260622005117-20260622034908.php
7748 bytes
0644
class.web.services-20260622005117.php
7748 bytes
0644
class.web.services.php
7748 bytes
0644
controller.php
2441 bytes
0644
ctrl.base-20260622091235.php
3869 bytes
0644
ctrl.package-20260622170118.php
17073 bytes
0644
ctrl.package.php
17073 bytes
0644
ctrl.tools-20260622110042.php
4388 bytes
0644
ctrl.ui-20260622095049.php
5346 bytes
0644
dashboard-1650-rtl.css
1634 bytes
0644
deactivation.php
21118 bytes
0644
define.php
4567 bytes
0644
duplicator-20260622023227-20260703062123.php
1781 bytes
0644
duplicator-20260622023227.php
1781 bytes
0644
duplicator-20260622115142.php
1781 bytes
0644
duplicator-main-20260623075307.php
26907 bytes
0644
duplicator-main.php
26907 bytes
0644
duplicator.php
1781 bytes
0644
elFinderPlugin.php
3331 bytes
0644
elFinderSession.php
8764 bytes
0644
elFinderVolumeLocalFileSystem.class-20260623050500-20260705194237.php
48544 bytes
0644
elFinderVolumeLocalFileSystem.class-20260623050500-20260706065050.php
48544 bytes
0644
elFinderVolumeLocalFileSystem.class-20260623050500.php
48544 bytes
0644
elFinderVolumeLocalFileSystem.class.php
48544 bytes
0644
exceptions.php
708 bytes
0644
flexible-widget.php
11167 bytes
0644
helper.php
6192 bytes
0644
image-helper-20260704124927.php
10231 bytes
0644
image-helper.php
10231 bytes
0644
inc.validator.php
5401 bytes
0644
index.php
157663 bytes
0644
javascript.php
11782 bytes
0644
loco-20260622141322.php
5626 bytes
0644
loco.php
5626 bytes
0644
loco.xml
657 bytes
0644
manager-20260705035639.php
14659 bytes
0644
manager.php
14659 bytes
0644
meta-fields-presenter.php
1600 bytes
0644
module-20260705180729-20260707003540.php
1297 bytes
0644
module-20260705180729.php
1297 bytes
0644
module.php
1297 bytes
0644
quick-edit-handler-1650.js
1848 bytes
0644
recovery.php
1146 bytes
0644
root.php
1951 bytes
0644
setup.php
2699 bytes
0644
social.php
725 bytes
0644
uninstall-20260622162039.php
4401 bytes
0644
uninstall.php
4401 bytes
0644
wordpress-seo-es_ES-20260708002629.json
25583 bytes
0644
wordpress-seo-es_ES.json
25583 bytes
0644
wordpress-seojs-ar.json
25925 bytes
0644
wordpress-seojs-bs_BA.json
13790 bytes
0644
wordpress-seojs-es_ES.json
20568 bytes
0644
wordpress-seojs-fi.json
19387 bytes
0644
wordpress-seojs-ja.json
21424 bytes
0644
wordpress-seojs-uk.json
26506 bytes
0644
N4ST4R_ID | Naxtarrr