59 lines
1.7 KiB
PHP
59 lines
1.7 KiB
PHP
<?php
|
|
/**
|
|
* Plugin Name: Flysystem Offload
|
|
* Plugin URI: https://git.brasdrive.com.br/Brasdrive/flysystem-offload
|
|
* Description: Reemplaza el filesystem local de WordPress con almacenamiento remoto transparente usando Flysystem v3.
|
|
* Version: 0.3.0
|
|
* Author: Brasdrive
|
|
* License: GPLv2 or later
|
|
* Text Domain: flysystem-offload
|
|
*/
|
|
|
|
declare(strict_types=1);
|
|
|
|
if (! defined('ABSPATH')) {
|
|
exit;
|
|
}
|
|
|
|
if (! defined('FLYSYSTEM_OFFLOAD_PATH')) {
|
|
define('FLYSYSTEM_OFFLOAD_PATH', __DIR__);
|
|
}
|
|
if (! defined('FLYSYSTEM_OFFLOAD_FILE')) {
|
|
define('FLYSYSTEM_OFFLOAD_FILE', __FILE__);
|
|
}
|
|
if (! defined('FLYSYSTEM_OFFLOAD_CONFIG_PATH')) {
|
|
define('FLYSYSTEM_OFFLOAD_CONFIG_PATH', FLYSYSTEM_OFFLOAD_PATH . '/config');
|
|
}
|
|
|
|
$autoload = __DIR__ . '/vendor/autoload.php';
|
|
if (file_exists($autoload)) {
|
|
require_once $autoload;
|
|
}
|
|
|
|
use FlysystemOffload\Plugin;
|
|
use Throwable;
|
|
|
|
add_action('plugins_loaded', static function (): void {
|
|
if (! class_exists(Plugin::class)) {
|
|
error_log('[Flysystem Offload] No fue posible cargar la clase principal del plugin.');
|
|
return;
|
|
}
|
|
|
|
try {
|
|
Plugin::bootstrap();
|
|
} catch (Throwable $exception) {
|
|
error_log('[Flysystem Offload] Error al iniciar el plugin: ' . $exception->getMessage());
|
|
|
|
add_action('admin_notices', static function () use ($exception): void {
|
|
if (! current_user_can('manage_options')) {
|
|
return;
|
|
}
|
|
|
|
printf(
|
|
'<div class="notice notice-error"><p><strong>Flysystem Offload:</strong> %s</p></div>',
|
|
esc_html($exception->getMessage())
|
|
);
|
|
});
|
|
}
|
|
}, 0);
|