define_constants(); $this->includes(); $this->init_hooks(); } /** * Define Constants. */ private function define_constants() { $this->define( 'ATKAI_VERSION', $this->version ); $this->define( 'ATKAI_ABSPATH', dirname( ATKAI_PLUGIN_FILE ) . '/' ); } /** * Include required core files used in admin and on the frontend. */ public function includes() { /** * Tracks. */ require_once ATKAI_ABSPATH . 'includes/class-options.php'; require_once ATKAI_ABSPATH . 'includes/class-cleanup.php'; require_once ATKAI_ABSPATH . 'includes/class-atk-security-events.php'; $security_events = new ATKAI_Security_Events(); require_once ATKAI_ABSPATH . 'includes/class-atk-incidents.php'; new ATKAI_Incidents( $security_events ); require_once ATKAI_ABSPATH . 'includes/class-atk-404-events.php'; new ATKAI_404_Events(); include_once ATKAI_ABSPATH . 'activities/activities.php'; /** * Admin */ if ( $this->is_request( 'admin' ) ) { require_once ATKAI_ABSPATH . 'includes/formatting.php'; require_once ATKAI_ABSPATH . 'includes/class-helpers.php'; include_once ATKAI_ABSPATH . 'includes/class-activity-export.php'; include_once ATKAI_ABSPATH . 'includes/class-atk-admin-menus.php'; include_once ATKAI_ABSPATH . 'includes/class-atk-settings.php'; require_once ATKAI_ABSPATH . 'includes/class-atk-security-timeline.php'; new ATKAI_Security_Timeline(); require_once ATKAI_ABSPATH . 'includes/class-atk-404-admin.php'; new ATKAI_404_Admin(); require_once ATKAI_ABSPATH . 'includes/class-atk-incidents-admin.php'; new ATKAI_Incidents_Admin(); } } /** * Hook into actions and filters. * */ private function init_hooks() { } /** * Define constant if not already set. * * @param string $name Constant name. * @param string|bool $value Constant value. */ private function define( $name, $value ) { if ( ! defined( $name ) ) { define( $name, $value ); } } /** * chekc request type * * @param string $type admin, ajax, cron or frontend. * @return bool */ private function is_request( $type ) { switch ( $type ) { case 'admin': return is_admin(); case 'ajax': return defined( 'DOING_AJAX' ); case 'cron': return defined( 'DOING_CRON' ); case 'frontend': return ( ! is_admin() || defined( 'DOING_AJAX' ) ) && ! defined( 'DOING_CRON' ); } } }