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