# filebird/6.2.5/includes/Classes/FolderStateManager.php

FileBird – WordPress Media Library Folders &amp; File Manager, version 6.2.5. 63 lines.

- Page: https://pluginprobe.com/plugins/filebird/6.2.5/code/includes/Classes/FolderStateManager.php
- Raw: https://pluginprobe.com/plugins/filebird/6.2.5/raw/includes/Classes/FolderStateManager.php
- Modified: 2024-06-24T12:52:14+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/filebird/6.2.5/code/includes/Classes/FolderStateManager.php#L10-L20`.

```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;
    }
}
```
