rss_feed = new ACTLOGPRO_Feed_RSS(); // Don't initialize JSON feed here - do it on demand $this->json_feed = null; } /** * Lazy load JSON feed functionality * * @since 1.0.0 * @return bool True if JSON feed was successfully loaded */ private function ensure_json_feed_loaded() { if ($this->json_feed !== null) { return true; } // Check if premium is enabled if (!ACTLOGPRO_Premium_Helper::is_premium_enabled()) { return false; } // Check if extension interface is available if (!class_exists('ACTLOGPRO_Extension_Interface')) { return false; } // Check if extensions have been loaded yet $features = ACTLOGPRO_Extension_Interface::get_premium_features(); // If no features are registered, manually trigger extension loading if (empty($features)) { ACTLOGPRO_Extension_Interface::load_extensions(); } // Try to trigger JSON feed initialization if not already done ACTLOGPRO_Extension_Interface::initialize_premium_feature('json_feeds'); // Check if JSON feed class is now available if (class_exists('ACTLOGPRO_Feed_JSON')) { $this->json_feed = new ACTLOGPRO_Feed_JSON(); return true; } return false; } /** * Generate a new feed access token * * @param string $feed_type The type of feed (json or rss) * @return string The generated token */ public function generate_token($feed_type) { if ($feed_type === 'rss') { return $this->rss_feed->generate_token(); } elseif ($feed_type === 'json' && $this->ensure_json_feed_loaded()) { return $this->json_feed->generate_token(); } return ''; } /** * Get the current feed token * * @param string $feed_type The type of feed (json or rss) * @return string The current token or an empty string if not set */ public function get_token($feed_type) { if ($feed_type === 'rss') { return $this->rss_feed->get_token(); } elseif ($feed_type === 'json' && $this->ensure_json_feed_loaded()) { return $this->json_feed->get_token(); } return ''; } /** * Get the secure feed URL * * @param string $feed_type The type of feed (json or rss) * @return string The secure feed URL */ public function get_secure_feed_url($feed_type) { if ($feed_type === 'rss') { return $this->rss_feed->get_secure_feed_url(); } elseif ($feed_type === 'json' && $this->ensure_json_feed_loaded()) { return $this->json_feed->get_secure_feed_url(); } return ''; } }