aspirecloud-plugin/aspire-cloud.php
Namith Jawahar f24436bceb
Further Optimized Importer and Ability to sync or import individual plugins (#5)
* Assets Model and Custom Post Types defined

Assets Model and Custom Post Types defined

* Plugin Bulk Import and Clear

Plugin Bulk Import and Clear

* Dynamic Scaling and Retries for Failed Import Cases

Dynamic Scaling and Retries for Failed Import Cases - Significant performance boost and Resilience

* Remove Unused Files

Remove Unused Files

* Further Optimized Importer and Ability to sync or import individual plugins

Further Optimized Importer and Ability to sync or import individual plugins

---------

Signed-off-by: Namith Jawahar <48271037+namithj@users.noreply.github.com>
2025-08-09 20:41:10 +05:30

100 lines
2.5 KiB
PHP

<?php
/**
* AspireCloud - WordPress Core Services API.
*
* @package aspire-cloud
* @author AspireCloud
* @copyright AspireCloud
* @license GPLv2
*
* Plugin Name: AspireCloud
* Plugin URI: https://aspirepress.org/
* Description: WordPress Core Services API.
* Version: 0.0.1
* Author: AspirePress
* Author URI: https://docs.aspirepress.org/aspirecloud/
* Requires at least: 5.3
* Requires PHP: 7.4
* Tested up to: 6.8.1
* License: GPLv2
* License URI: https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
* Text Domain: aspirecloud
* Domain Path: /languages
* Update URI: https://aspirepress.org
*/
// Prevent direct access
if ( ! defined( 'ABSPATH' ) ) {
die;
}
if ( ! defined( 'AC_VERSION' ) ) {
define( 'AC_VERSION', '0.0.1' );
}
if ( ! defined( 'AC_SOURCE_API_ENDPOINT' ) ) {
define( 'AC_SOURCE_API_ENDPOINT', 'https://api.wordpress.org' );
}
add_action(
'plugins_loaded',
function () {
if ( ! defined( 'AC_PATH' ) ) {
define( 'AC_PATH', __DIR__ );
}
if ( ! defined( 'AC_URL' ) ) {
define( 'AC_URL', plugin_dir_url( __FILE__ ) );
}
}
);
// Load the autoloader
require_once __DIR__ . '/includes/autoload.php';
// Initialize the plugin functionality earlier to ensure custom post types register properly
add_action( 'plugins_loaded', 'aspire_cloud_init' );
// Plugin activation and deactivation hooks// Plugin activation and deactivation hooks
register_activation_hook( __FILE__, 'aspire_cloud_activate' );
register_deactivation_hook( __FILE__, 'aspire_cloud_deactivate' );
/**
* Plugin activation callback.
*/
function aspire_cloud_activate() {
// Initialize the controllers to register rewrite rules
aspire_cloud_init();
// Flush rewrite rules on activation to ensure custom post types work
flush_rewrite_rules();
}
/**
* Plugin deactivation callback.
*/
function aspire_cloud_deactivate() {
// Flush rewrite rules on deactivation to clean up
flush_rewrite_rules();
}
/**
* Initialize AspireCloud plugin.
*/
function aspire_cloud_init() {
// Initialize the Passthrough API controller
new \AspireCloud\Controller\Passthrough();
// Initialize the Headless WordPress controller
new \AspireCloud\Controller\Headless();
// Initialize custom post types
new \AspireCloud\Model\Plugins();
new \AspireCloud\Model\Themes();
// Initialize import controllers (admin only)
if ( is_admin() ) {
new \AspireCloud\Controller\PluginImport();
new \AspireCloud\Controller\ThemeImport();
new \AspireCloud\Controller\AssetResync();
}
}