Nuevo sistema de gestión de CSS personalizado con panel admin: - Admin/CustomCSSManager: CRUD de snippets CSS (crítico/diferido) - Public/CustomCSSManager: Inyección dinámica en frontend - Schema JSON para configuración del componente Migración de CSS estático a BD: - Tablas APU (~14KB) → snippet diferido en BD - Tablas Genéricas (~10KB) → snippet diferido en BD - Comentadas funciones legacy en enqueue-scripts.php Limpieza de archivos obsoletos: - Eliminado build-bootstrap-subset.js - Eliminado migrate-legacy-options.php - Eliminado minify-css.php - Eliminado purgecss.config.js Beneficios: - CSS editable desde admin sin tocar código - Soporte crítico (head) y diferido (footer) - Filtrado por scope (all/home/single/archive) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
46 lines
1.2 KiB
PHP
46 lines
1.2 KiB
PHP
<?php
|
|
declare(strict_types=1);
|
|
|
|
namespace ROITheme\Shared\Domain\Contracts;
|
|
|
|
/**
|
|
* Contrato para repositorio de snippets CSS
|
|
*
|
|
* Usado por Admin (CRUD) y Public (lectura)
|
|
*/
|
|
interface CSSSnippetRepositoryInterface
|
|
{
|
|
/**
|
|
* Obtiene todos los snippets almacenados
|
|
* @return array<array> Array de snippets deserializados
|
|
*/
|
|
public function getAll(): array;
|
|
|
|
/**
|
|
* Guarda un snippet (crear o actualizar)
|
|
* @param array $snippet Datos del snippet
|
|
*/
|
|
public function save(array $snippet): void;
|
|
|
|
/**
|
|
* Elimina un snippet por ID
|
|
* @param string $snippetId ID del snippet
|
|
*/
|
|
public function delete(string $snippetId): void;
|
|
|
|
/**
|
|
* Obtiene snippets por tipo de carga
|
|
* @param string $loadType 'critical' o 'deferred'
|
|
* @return array<array>
|
|
*/
|
|
public function getByLoadType(string $loadType): array;
|
|
|
|
/**
|
|
* Obtiene snippets aplicables a una página específica
|
|
* @param string $loadType 'critical' o 'deferred'
|
|
* @param string $pageType 'all', 'home', 'posts', 'pages', 'archives'
|
|
* @return array<array>
|
|
*/
|
|
public function getForPage(string $loadType, string $pageType): array;
|
|
}
|