Server IP : 15.235.198.142 / Your IP : 216.73.216.12 Web Server : Apache/2.4.58 (Ubuntu) System : Linux ballsack 6.8.0-45-generic #45-Ubuntu SMP PREEMPT_DYNAMIC Fri Aug 30 12:02:04 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 8.3.6 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/kim_LIVE/wp-content/plugins/simply-static/src/integrations/ |
Upload File : |
<?php namespace Simply_Static; // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } abstract class Integration { /** * Integration Name. * @var string */ protected $name = ''; /** * @var bool */ protected $always_active = false; /** * Integration Description. * @var string */ protected $description = ''; /** * A string ID of integration. * * @var string */ protected $id = ''; /** * Load the integration. * * @return void */ public function load() { if ( ! $this->is_enabled() ) { return; } $this->run(); } /** * Check if such Integration is enabled * * @return mixed|null */ public function is_enabled() { return apply_filters( 'simply_static_integration_' . $this->id . 'enabled', $this->can_run() ); } /** * Check if the integration is active. * * @return boolean */ public function is_active() { $options = Options::instance(); $integrations = $options->get('integrations'); // Mainly for backwards compatibility. If there is no such option, it means it's all active. if ( empty( $integrations ) ) { return true; } return in_array( $this->id, $integrations, true ); } /** * A Check if this integration can run. * Example: Check if a plugin is activated in DB or a class exists. * * @return boolean */ public function can_run() { if ( $this->always_active ) { return true; } if ( ! $this->dependency_active() ) { return false; } return $this->is_active(); } /** * Return if the dependency is active. * * @return boolean */ public function dependency_active() { return true; } /** * Set if the integration is pro or not. * * @return boolean */ public function is_pro() { return false; } /** * Run the integration. * * @return void */ public function run() { } /** * Include File. * * @param string $path given path. * * @return void */ public function include_file( $path ) { require_once trailingslashit( SIMPLY_STATIC_PATH ) . 'src/' . $path; } /** * Object used for JS part. * * @return array */ public function js_object() { return [ 'id' => $this->id, 'name' => $this->name, 'description' => $this->description, 'active' => $this->is_active(), 'pro' => $this->is_pro(), 'can_run' => $this->dependency_active(), 'always_active' => $this->always_active ]; } }