GRAYBYTE WORDPRESS FILE MANAGER3709

Server IP : 198.54.121.189 / Your IP : 216.73.216.140
System : Linux premium69.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
PHP Version : 7.4.33
Disable Function : NONE
cURL : ON | WGET : ON | Sudo : OFF | Pkexec : OFF
Directory : /home/giriqfky/trustyourlawyer.com/wp-content/plugins/backwpup/inc/
Upload Files :
Current_dir [ Writeable ] Document_root [ Writeable ]

Command :


Current File : /home/giriqfky/trustyourlawyer.com/wp-content/plugins/backwpup/inc//class-destination-folder.php
<?php

/**
 * Class BackWPup_Destination_Folder.
 */
class BackWPup_Destination_Folder extends BackWPup_Destinations
{
    public function option_defaults(): array
    {
        $backups_dir = self::getDefaultBackupsDirectory();

        return ['maxbackups' => 15, 'backupdir' => $backups_dir, 'backupsyncnodelete' => true];
    }

    /**
     * {@inheritdoc}
     */
    public function edit_tab($jobid): void
    {
        ?>
		<h3 class="title"><?php esc_html_e('Backup settings', 'backwpup'); ?></h3>
		<table class="form-table">
			<tr>
				<th scope="row"><label
						for="idbackupdir"><?php esc_html_e('Folder to store backups in', 'backwpup'); ?></label></th>
				<td>
					<input
						name="backupdir"
						id="idbackupdir"
						type="text"
						value="<?php echo esc_attr(BackWPup_Option::get($jobid, 'backupdir')); ?>"
						class="regular-text"
					/>
				</td>
			</tr>
			<tr>
				<th scope="row"><?php esc_html_e('File Deletion', 'backwpup'); ?></th>
				<td>
					<?php
                    if (BackWPup_Option::get($jobid, 'backuptype') === 'archive') {
                        ?>
						<label for="idmaxbackups">
							<input
								id="idmaxbackups"
								name="maxbackups"
								type="number"
								min="0"
								step="1"
								value="<?php echo esc_attr(BackWPup_Option::get($jobid, 'maxbackups')); ?>"
								class="small-text"
							/>
							&nbsp;<?php esc_html_e('Number of files to keep in folder.', 'backwpup'); ?>
						</label>
						<p>
							<?php
                            _e(
                            '<strong>Warning</strong>: Files belonging to this job are now tracked. Old backup archives which are untracked will not be automatically deleted.',
                            'backwpup'
                        ); ?>
						</p>
					<?php
                    } else { ?>
						<label for="idbackupsyncnodelete">
							<input
								class="checkbox"
								value="1"
								type="checkbox"
								<?php checked(BackWPup_Option::get($jobid, 'backupsyncnodelete'), true); ?>
								name="backupsyncnodelete" id="idbackupsyncnodelete"
							/>
							&nbsp;
							<?php
                            esc_html_e(
                            'Do not delete files while syncing to destination!',
                            'backwpup'
                        );
                            ?>
						</label>
					<?php } ?>
				</td>
			</tr>
		</table>
		<?php
    }

    /**
     * {@inheritdoc}
	 */
	public function edit_form_post_save( $jobid ): void {
		$backup_dir = trim( sanitize_text_field( $_POST['backupdir'] ) ); // phpcs:ignore WordPress.Security

        try {
            $backup_dir = trailingslashit(
                BackWPup_File::normalize_path(BackWPup_Path_Fixer::slashify($backup_dir))
            );
        } catch (\InvalidArgumentException $e) {
            $backup_dir = self::getDefaultBackupsDirectory();
        }

		$max_backups    = isset( $_POST['maxbackups'] ) ? absint( $_POST['maxbackups'] ) : 0; // phpcs:ignore WordPress.Security.NonceVerification.Missing
				$jobids = (array) $jobid;
		foreach ( $jobids as $jobid ) {
			BackWPup_Option::update( $jobid, 'backupdir', $backup_dir );
			BackWPup_Option::update( $jobid, 'maxbackups', $max_backups );
			BackWPup_Option::update( $jobid, 'backupsyncnodelete', ! empty( $_POST['backupsyncnodelete'] ) ); // phpcs:ignore WordPress.Security.NonceVerification.Missing
		}
	}

    /**
     * {@inheritdoc}
     */
    public function file_delete(string $jobdest, string $backupfile): void
    {
        [$jobid, $dest] = explode('_', $jobdest, 2);

        if (empty($jobid)) {
            return;
        }

        $backup_dir = esc_attr(BackWPup_Option::get((int) $jobid, 'backupdir'));
        $backup_dir = BackWPup_File::get_absolute_path($backup_dir);

        $backupfile = realpath(trailingslashit($backup_dir) . basename($backupfile));

        if ($backupfile && is_writeable($backupfile) && !is_dir($backupfile) && !is_link($backupfile)) {
            unlink($backupfile);
        }
    }

    /**
     * {@inheritdoc}
	 */
	public function file_get_list( ?string $jobdest = '' ): array {
		$jobid         = 0;
		$backup_folder = $this->option_defaults()['backupdir'];
		if ( '' !== $jobdest ) {
			[$jobid, $dest] = explode( '_', $jobdest, 2 );
			$backup_folder  = BackWPup_Option::get( $jobid, 'backupdir' );
		}

		$filecounter       = 0;
		$files             = [];
		$backup_folder     = BackWPup_File::get_absolute_path( $backup_folder );
		$not_allowed_files = [
            'index.php',
            '.htaccess',
            '.donotbackup',
            'Web.config',
        ];

        if (is_dir($backup_folder)) {
            $dir = $this->get_backwpup_directory($backup_folder);

            foreach ($dir as $file) {
                if (
                    $file->isDot()
                    || $file->isDir()
                    || $file->isLink()
                    || in_array($file->getFilename(), $not_allowed_files, true)
                    || !$this->is_backup_archive($file->getFilename())
                ) {
                    continue;
                }

                if ($file->isReadable()) {
                    //file list for backups
                    $files[$filecounter]['folder'] = $backup_folder;
                    $files[$filecounter]['file'] = str_replace('\\', '/', $file->getPathname());
                    $files[$filecounter]['filename'] = $file->getFilename();
                    $files[$filecounter]['downloadurl'] = add_query_arg(
                        [
                            'page' => 'backwpupbackups',
                            'action' => 'downloadfolder',
                            'file' => $file->getFilename(),
                            'local_file' => $file->getFilename(),
                            'jobid' => $jobid,
                        ],
                        network_admin_url('admin.php')
                    );
                    $files[$filecounter]['filesize'] = $file->getSize();
                    $files[$filecounter]['time'] = $file->getMTime() + (get_option('gmt_offset') * 3600);
                    ++$filecounter;
                }
            }
        }

        return array_filter($files);
    }

    /**
     * {@inheritdoc}
     */
    public function job_run_archive(BackWPup_Job $job_object): bool
    {
        $job_object->substeps_todo = 1;
        if (!empty($job_object->job['jobid'])) {
            BackWPup_Option::update(
                $job_object->job['jobid'],
                'lastbackupdownloadurl',
                add_query_arg(
                    [
                        'page' => 'backwpupbackups',
                        'action' => 'downloadfolder',
                        'file' => basename($job_object->backup_file),
                        'jobid' => $job_object->job['jobid'],
                    ],
                    network_admin_url('admin.php')
                )
            );
        }

        // Delete old Backupfiles.
        $backupfilelist = [];
        $files = [];

        if (is_writable($job_object->backup_folder)) { //make file list
            try {
                $dir = new BackWPup_Directory($job_object->backup_folder);

                foreach ($dir as $file) {
                    if ($file->isDot() || $file->isDir() || $file->isLink() || !$file->isWritable()) {
                        continue;
                    }

                    $is_backup_archive = $this->is_backup_archive($file->getFilename());
                    $is_owned_by_job = $this->is_backup_owned_by_job($file->getFilename(), $job_object->job['jobid']);
                    if ($is_backup_archive && $is_owned_by_job) {
                        $backupfilelist[$file->getMTime()] = clone $file;
                    }
                }
            } catch (UnexpectedValueException $e) {
                $job_object->log(
                    sprintf(
                        esc_html__('Could not open path: %s', 'backwpup'),
                        $e->getMessage()
                    ),
                    E_USER_WARNING
                );
            }
        }

        if ($job_object->job['maxbackups'] > 0) {
            if (count($backupfilelist) > $job_object->job['maxbackups']) {
                ksort($backupfilelist);
                $numdeltefiles = 0;

                while ($file = array_shift($backupfilelist)) {
                    if (count($backupfilelist) < $job_object->job['maxbackups']) {
                        break;
                    }
                    unlink($file->getPathname());

                    foreach ($files as $key => $filedata) {
                        if ($filedata['file'] === $file->getPathname()) {
                            unset($files[$key]);
                        }
                    }
                    ++$numdeltefiles;
                }

                if ($numdeltefiles > 0) {
                    $job_object->log(
                        sprintf(
                            _n('One backup file deleted', '%d backup files deleted', $numdeltefiles, 'backwpup'),
                            $numdeltefiles
                        ),
                        E_USER_NOTICE
                    );
                }
            }
        }

        ++$job_object->substeps_done;

        return true;
    }

    /**
     * {@inheritdoc}
     */
    public function can_run(array $job_settings): bool
    {
        return !(empty($job_settings['backupdir']) || $job_settings['backupdir'] == '/');
    }

    /**
     * Returns new instance of BackWPup_Directory.
     *
     * @param string $dir the directory to iterate
     */
    protected function get_backwpup_directory(string $dir): BackWPup_Directory
    {
        return new BackWPup_Directory($dir);
    }

    private static function getDefaultBackupsDirectory()
    {
        $upload_dir = wp_upload_dir(null, false, true);
        $backups_dir = trailingslashit(
            str_replace(
                '\\',
                '/',
                $upload_dir['basedir']
            )
        ) . 'backwpup/' . BackWPup::get_plugin_data('hash') . '/backups/';
        $content_path = trailingslashit(BackWPup_Path_Fixer::slashify((string) WP_CONTENT_DIR));

        return str_replace($content_path, '', $backups_dir);
    }
}

[ Back ]
Name
Size
Last Modified
Owner / Group
Permissions
Options
..
--
July 10 2025 04:32:29
giriqfky / giriqfky
0755
Notice
--
July 10 2025 04:32:37
giriqfky / giriqfky
0755
Settings
--
July 10 2025 04:32:37
giriqfky / giriqfky
0755
ThirdParty
--
July 10 2025 04:32:37
giriqfky / giriqfky
0755
Utils
--
July 10 2025 04:32:37
giriqfky / giriqfky
0755
dependencies
--
July 10 2025 04:32:37
giriqfky / giriqfky
0755
.htaccess
0.41 KB
July 10 2025 04:32:37
giriqfky / giriqfky
0644
BackWPup.php
11.618 KB
May 20 2025 11:41:24
giriqfky / giriqfky
0644
class-admin.php
44.521 KB
May 20 2025 11:41:24
giriqfky / giriqfky
0644
class-adminbar.php
2.676 KB
May 20 2025 11:41:24
giriqfky / giriqfky
0644
class-create-archive-exception.php
0.148 KB
November 16 2022 17:55:50
giriqfky / giriqfky
0644
class-create-archive.php
27.247 KB
March 10 2025 14:47:06
giriqfky / giriqfky
0644
class-cron.php
18.585 KB
April 29 2025 17:34:12
giriqfky / giriqfky
0644
class-destination-connect-exception.php
0.218 KB
November 16 2022 17:55:50
giriqfky / giriqfky
0644
class-destination-connect-interface.php
0.647 KB
November 16 2022 17:55:50
giriqfky / giriqfky
0644
class-destination-download-exception.php
0.202 KB
November 16 2022 17:55:50
giriqfky / giriqfky
0644
class-destination-downloader-data.php
1.223 KB
November 16 2022 17:55:50
giriqfky / giriqfky
0644
class-destination-downloader-factory.php
1.629 KB
November 16 2022 17:55:50
giriqfky / giriqfky
0644
class-destination-downloader-interface.php
0.52 KB
November 16 2022 17:55:50
giriqfky / giriqfky
0644
class-destination-downloader.php
5.126 KB
June 04 2024 10:51:14
giriqfky / giriqfky
0644
class-destination-dropbox-api-exception.php
0.129 KB
November 16 2022 17:55:50
giriqfky / giriqfky
0644
class-destination-dropbox-api-request-exception.php
0.595 KB
November 16 2022 17:55:50
giriqfky / giriqfky
0644
class-destination-dropbox-api.php
40.892 KB
February 13 2025 20:02:44
giriqfky / giriqfky
0644
class-destination-dropbox-downloader.php
2.907 KB
October 18 2023 17:06:40
giriqfky / giriqfky
0644
class-destination-dropbox.php
21.399 KB
May 20 2025 11:41:24
giriqfky / giriqfky
0644
class-destination-email.php
19.876 KB
April 23 2025 14:14:02
giriqfky / giriqfky
0644
class-destination-folder-downloader.php
3.488 KB
November 16 2022 17:55:50
giriqfky / giriqfky
0644
class-destination-folder.php
10.113 KB
April 07 2025 18:31:08
giriqfky / giriqfky
0644
class-destination-ftp-connect.php
5.373 KB
November 16 2022 17:55:50
giriqfky / giriqfky
0644
class-destination-ftp-downloader.php
3.351 KB
November 16 2022 17:55:50
giriqfky / giriqfky
0644
class-destination-ftp.php
29.519 KB
April 07 2025 18:31:08
giriqfky / giriqfky
0644
class-destination-msazure-downloader.php
3.369 KB
November 16 2022 17:55:50
giriqfky / giriqfky
0644
class-destination-msazure.php
26.319 KB
February 04 2025 14:50:44
giriqfky / giriqfky
0644
class-destination-rsc.php
22.318 KB
March 21 2025 15:27:30
giriqfky / giriqfky
0644
class-destination-s3-downloader.php
3.298 KB
November 16 2022 17:55:50
giriqfky / giriqfky
0644
class-destination-s3.php
48.635 KB
April 07 2025 18:31:08
giriqfky / giriqfky
0644
class-destination-sugarsync.php
38.054 KB
February 04 2025 14:50:44
giriqfky / giriqfky
0644
class-destinations.php
6.154 KB
April 07 2025 18:31:08
giriqfky / giriqfky
0644
class-directory.php
6.025 KB
April 23 2025 14:14:02
giriqfky / giriqfky
0644
class-download-file-interface.php
0.609 KB
November 16 2022 17:55:50
giriqfky / giriqfky
0644
class-download-file.php
3.406 KB
November 16 2022 17:55:50
giriqfky / giriqfky
0644
class-download-handler.php
1.956 KB
October 18 2023 17:06:40
giriqfky / giriqfky
0644
class-easycron.php
8.057 KB
October 01 2024 16:10:48
giriqfky / giriqfky
0644
class-encryption-fallback.php
2.875 KB
November 16 2022 17:55:50
giriqfky / giriqfky
0644
class-encryption-mcrypt.php
4.014 KB
March 03 2025 19:19:24
giriqfky / giriqfky
0644
class-encryption-openssl.php
3.925 KB
November 16 2022 17:55:50
giriqfky / giriqfky
0644
class-encryption.php
6.265 KB
November 16 2022 17:55:50
giriqfky / giriqfky
0644
class-factory-exception.php
0.191 KB
November 16 2022 17:55:50
giriqfky / giriqfky
0644
class-file.php
10.787 KB
March 13 2025 16:05:40
giriqfky / giriqfky
0644
class-help.php
1.745 KB
October 18 2023 17:06:40
giriqfky / giriqfky
0644
class-install.php
18.464 KB
April 23 2025 14:14:02
giriqfky / giriqfky
0644
class-job.php
105.758 KB
May 20 2025 11:41:24
giriqfky / giriqfky
0644
class-jobtype-dbcheck.php
6.386 KB
October 18 2023 17:06:40
giriqfky / giriqfky
0644
class-jobtype-dbdump.php
11.304 KB
April 07 2025 18:31:08
giriqfky / giriqfky
0644
class-jobtype-file.php
24.155 KB
April 07 2025 18:31:08
giriqfky / giriqfky
0644
class-jobtype-wpexp.php
34.94 KB
March 13 2025 16:05:40
giriqfky / giriqfky
0644
class-jobtype-wpplugin.php
6.864 KB
March 03 2025 19:19:24
giriqfky / giriqfky
0644
class-jobtypes.php
2.25 KB
April 07 2025 18:31:08
giriqfky / giriqfky
0644
class-message-box.php
3.464 KB
November 16 2022 17:55:50
giriqfky / giriqfky
0644
class-migrate.php
10.691 KB
April 23 2025 14:14:02
giriqfky / giriqfky
0644
class-msazure-destination-configuration.php
1.597 KB
November 16 2022 17:55:50
giriqfky / giriqfky
0644
class-mysqldump.php
34.067 KB
June 19 2024 12:40:40
giriqfky / giriqfky
0644
class-option.php
18.498 KB
April 23 2025 14:14:02
giriqfky / giriqfky
0644
class-page-about.php
27.481 KB
June 19 2024 12:40:40
giriqfky / giriqfky
0644
class-page-backups.php
20.81 KB
April 23 2025 14:14:02
giriqfky / giriqfky
0644
class-page-backwpup.php
21.946 KB
October 18 2023 17:06:40
giriqfky / giriqfky
0644
class-page-editjob.php
47.442 KB
April 23 2025 14:14:02
giriqfky / giriqfky
0644
class-page-firstbackup.php
0.556 KB
February 04 2025 14:50:44
giriqfky / giriqfky
0644
class-page-jobs.php
44.727 KB
April 23 2025 14:14:02
giriqfky / giriqfky
0644
class-page-logs.php
13.824 KB
April 23 2025 14:14:02
giriqfky / giriqfky
0644
class-page-onboarding.php
6.948 KB
May 20 2025 11:41:24
giriqfky / giriqfky
0644
class-page-restore.php
5.368 KB
April 07 2025 18:31:08
giriqfky / giriqfky
0644
class-page-settings.php
45.41 KB
April 07 2025 18:31:08
giriqfky / giriqfky
0644
class-path-fixer.php
0.815 KB
October 18 2023 17:06:40
giriqfky / giriqfky
0644
class-recursive-directory.php
0.573 KB
November 16 2022 17:55:50
giriqfky / giriqfky
0644
class-s3-destination.php
11.986 KB
March 13 2025 16:05:40
giriqfky / giriqfky
0644
class-sanitize-path.php
1.547 KB
November 16 2022 17:55:50
giriqfky / giriqfky
0644
class-system-requirements.php
1.231 KB
October 01 2024 16:10:48
giriqfky / giriqfky
0644
class-system-tests-runner.php
9.5 KB
November 16 2022 17:55:50
giriqfky / giriqfky
0644
class-system-tests.php
3.469 KB
November 16 2022 17:55:50
giriqfky / giriqfky
0644
class-thirdparties.php
1.023 KB
June 19 2024 12:40:40
giriqfky / giriqfky
0644
class-wp-api.php
43.999 KB
April 29 2025 17:34:12
giriqfky / giriqfky
0644
class-wp-cli.php
11.83 KB
April 23 2025 14:14:02
giriqfky / giriqfky
0644
functions.php
5.883 KB
April 30 2025 17:12:56
giriqfky / giriqfky
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025
CONTACT ME
Static GIF