HEX
Server: Apache
System: Linux sxb1plzcpnl503971.prod.sxb1.secureserver.net 4.18.0-553.52.1.lve.el8.x86_64 #1 SMP Wed May 21 15:31:29 UTC 2025 x86_64
User: nciq25gegoxa (9650876)
PHP: 7.4.33
Disabled: NONE
Upload Files
File: /home/nciq25gegoxa/public_html/wp-content/plugins/filebird/includes/Classes/FolderStateManager.php
<?php
namespace FileBird\Classes;

defined( 'ABSPATH' ) || exit;

use FileBird\Model\Folder as FolderModel;

class FolderStateManager {
    private $fb_folder    = null;
    private $query        = null;
    private $settingModel = null;

    public function __construct( $query, $settingModel ) {
        $this->query        = $query;
        $this->settingModel = $settingModel;
    }

    public function getFbFolder() {
        $paramUrl        = $this->getParamFromUrl();
        $this->fb_folder = $this->getParamFromQuery();

        if ( Helpers::isListMode() ) {
            $this->fb_folder = $this->settingModel->get( 'DEFAULT_FOLDER' );

            if ( $this->fb_folder === FolderModel::PREVIOUS_FOLDER ) {
                $this->fb_folder = $this->settingModel->get( 'FOLDER_STARTUP' );
            }

            if ( ! \is_null( $paramUrl ) ) {
                $this->fb_folder = $paramUrl;
                $this->settingModel->setFolderStartup( $paramUrl );
            }
        }

        return $this->fb_folder;
    }

    private function getParamFromUrl() {
		// phpcs:ignore WordPress.Security.NonceVerification.Recommended
         return isset( $_GET['fbv'] ) ? intval( $_GET['fbv'] ) : null;
    }

    private function getParamFromQuery() {
        $folder = null;

        if ( '' !== $this->query->get( 'fbv' ) ) {
            $folder = intval( $this->query->get( 'fbv' ) );
        }

        return $folder;
    }

    // TODO: getFolderStartup is not good performance
    public function getState( $folderId ) {
        $this->settingModel->setFolderStartup( $folderId );

        if ( $this->settingModel->get( 'DEFAULT_FOLDER' ) == FolderModel::PREVIOUS_FOLDER ) {
            return $this->settingModel->getFolderStartup();
        }

        return $folderId;
    }
}