63 lines
1.8 KiB
PHP
63 lines
1.8 KiB
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;
|
|
}
|
|
} |