Files
Jordan DiazandClaude Fable 5.1 273c3dd781 feat(plugins): ganchos de ciclo de vida y checkpoints boot_plugins y post_variables
Fase 0 del instalador de plugins (docs/plugins/fase0-instalador-diseno.md del
repo de Forge). Un plugin puede llevar install.php, uninstall.php, enable.php,
disable.php y status.php; los ejecuta runPluginLifecycle() dentro de la web
por action_ws=pluginLifecycle, sea Forge o el CMS legacy quien instale.
showInstall() reutiliza el mismo nucleo (installPluginArtifacts) en vez de
duplicar install.sql/schemaPresets.

Checkpoints nuevos, sin efecto hasta que un plugin los declare:
- boot_plugins: en init.php, con la BD ya conectada.
- post_variables: tras cada require de lib/variables.php (slug.php, sesion.php,
  lib/recursos.php), una vez por peticion. Un plugin llega DESPUES del bloque
  de cache de variables.php y puede pisarlo.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HPL66q9F33YZxbLPUT7KW8
2026-09-12 22:40:42 +00:00

50 lines
1.9 KiB
PHP
Executable File

<?
require_once "variables.php";
// Checkpoint `post_variables` (2026-09-12): variables.php ya ha corrido. Un plugin
// puede pisar aqui lo que decida la web (p.ej. la cache) antes de resolver la
// pagina. Una sola vez por peticion aunque se cargue desde varios sitios.
if (function_exists("addPlugins") && !defined("POST_VARIABLES_DISPARADO")) {
define("POST_VARIABLES_DISPARADO", true);
$postVariablesVar = array();
addPlugins("post_variables", $postVariablesVar);
}
require_once "FileJoiner.php";
$fileType = "css";
switch (@$_REQUEST["fileType"]) {
case "css":
$files = array(
"..".RUTA_PLANTILLA."/css/bootstrap.min.css",
"..".RUTA_PLANTILLA."/css/bxslider.min.css",
"..".RUTA_PLANTILLA."/css/swipebox.min.css",
"..".RUTA_PLANTILLA."/css/animate.css",
"..".RUTA_PLANTILLA."/css/rrssb.css",
"..".RUTA_PLANTILLA."/css/cesta.css",
"..".RUTA_PLANTILLA."/style-base.css",
"..".RUTA_PLANTILLA."/style.css"
);
$fileName = "..".RUTA_PLANTILLA."/css/main.css";
break;
case "js":
$fileType = "js";
$files = array(
"..".RUTA_PLANTILLA."/js/bootstrap.min.js",
"..".RUTA_PLANTILLA."/js/bxslider.min.js",
"..".RUTA_PLANTILLA."/js/jquery.swipebox.min.js",
"..".RUTA_PLANTILLA."/js/wow.min.js",
"..".RUTA_PLANTILLA."/js/rrssb.min.js",
"..".RUTA_PLANTILLA."/js/fetch.js",
"..".RUTA_PLANTILLA."/js/lazy-loader.js",
"..".RUTA_PLANTILLA."/js/liveSearchModal.js",
"..".RUTA_PLANTILLA."/js/cesta_class.js",
"..".RUTA_PLANTILLA."/js/mis-scripts.js"
);
$fileName = "..".RUTA_PLANTILLA."/js/main.js";
break;
default: die("");
}
$fj = new FileJoiner($files, $fileType, @$fileName);
header($fj->getContentType());
die($fj->getFile());
?>