| Server IP : 123.56.80.60 / Your IP : 216.73.216.78 Web Server : Apache/2.4.54 (Win32) OpenSSL/1.1.1s PHP/7.4.33 mod_fcgid/2.3.10-dev System : Windows NT iZhx3sob14hnz7Z 10.0 build 14393 (Windows Server 2016) i586 User : SYSTEM ( 0) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : C:/site/20241224/spunner/wp-content/plugins/wp-statistics/src/Abstracts/ |
Upload File : |
<?php
namespace WP_Statistics\Abstracts;
use WP_Statistics\Exception\SystemErrorException;
use WP_Statistics\Service\Admin\NoticeHandler\Notice;
use WP_Statistics\Utils\Request;
use Exception;
abstract class MultiViewPage extends BasePage
{
protected $defaultView;
protected $views;
protected function getViews()
{
return apply_filters('wp_statistics_' . str_replace('-', '_', $this->pageSlug) . '_views', $this->views);
}
protected function getCurrentView()
{
$views = $this->getViews();
$currentView = $this->defaultView;
$pageType = Request::get('type', false);
if ($pageType && array_key_exists($pageType, $views)) {
$currentView = $pageType;
}
return $currentView;
}
public function view()
{
try {
// Get all views
$views = $this->getViews();
// Get current view
$currentView = $this->getCurrentView();
// Check if the view does not exist, throw exception
if (!isset($views[$currentView])) {
throw new SystemErrorException(
esc_html__('View is not valid.', 'wp-statistics')
);
}
// Check if the class does not have render method, throw exception
if (!method_exists($views[$currentView], 'render')) {
throw new SystemErrorException(
sprintf(esc_html__('render method is not defined within %s class.', 'wp-statistics'), $currentView)
);
}
// Instantiate the view class and render content
$view = new $views[$currentView];
$view->render();
} catch (Exception $e) {
Notice::renderNotice($e->getMessage(), $e->getCode(), 'error');
}
}
}