D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
var
/
www
/
oems
/
wp-content
/
plugins
/
wp-statistics
/
src
/
Abstracts
/
Filename :
BasePage.php
back
Copy
<?php namespace WP_Statistics\Abstracts; if (!defined('ABSPATH')) exit; // Exit if accessed directly use Exception; use WP_Statistics\Components\DateTime; use WP_STATISTICS\Menus; use WP_Statistics\Components\Singleton; use WP_Statistics\Service\Admin\NoticeHandler\Notice; use WP_Statistics\Utils\Request; abstract class BasePage extends Singleton { protected $pageSlug; public function __construct() { if (Menus::in_page($this->pageSlug)) { $this->init(); } } protected function init() { } protected function disableScreenOption() { add_filter('screen_options_show_screen', '__return_false'); } public function getPageSlug() { return $this->pageSlug; } public function render() { } /** * Validates the given date range. * * @throws Exception */ public function validateDateRange() { $from = Request::get('from'); $to = Request::get('to'); // If date range is empty no validation is needed if (empty($from) && empty($to)) return; // Check if `from` or `to` is empty, throw error if (empty($from) || empty($to)) { throw new Exception(esc_html__('Invalid date: provided date range is not valid.', 'wp-statistics')); } // Check if `from` and `to` are not valid dates, throw error if (!DateTime::isValidDate($from) || !DateTime::isValidDate($to)) { throw new Exception(esc_html__('Invalid date: provided date range is not in the right format.', 'wp-statistics')); } // If starting date is greater than ending date, throw error if (strtotime($from) > strtotime($to)) { throw new Exception(esc_html__('Invalid date: starting date is greater than ending date.', 'wp-statistics')); } } public function view() { try { $this->validateDateRange(); $this->render(); } catch (Exception $e) { Notice::renderNotice($e->getMessage(), $e->getCode(), 'error'); } } }