feat: Theme-Optionen und Schriften-Upload in der Divi-Integration; je ein geteilter Adapter; Restore von theme_options
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5.5
parent
35e92fcb6c
commit
7e7568ea62
@@ -30,12 +30,18 @@ use LIT\MCP\Integrations\Divi\Design\DiviPresetsAssignAbility;
|
||||
use LIT\MCP\Integrations\Divi\Design\DiviPresetsDeleteAbility;
|
||||
use LIT\MCP\Integrations\Divi\Design\DiviPresetsSetAbility;
|
||||
use LIT\MCP\Integrations\Divi\Design\DiviVariablesSetAbility;
|
||||
use LIT\MCP\Integrations\Divi\Design\DiviFontsUploadAbility;
|
||||
use LIT\MCP\Integrations\Divi\Design\DiviThemeOptionsGetAbility;
|
||||
use LIT\MCP\Integrations\Divi\Design\DiviThemeOptionsUpdateAbility;
|
||||
use LIT\MCP\Integrations\Divi\Design\FontCatalog;
|
||||
use LIT\MCP\Integrations\Divi\Design\FontInstaller;
|
||||
use LIT\MCP\Integrations\Divi\Design\PageRewriter;
|
||||
use LIT\MCP\Integrations\Divi\Design\PresetAssignment;
|
||||
use LIT\MCP\Integrations\Divi\Design\PresetComposer;
|
||||
use LIT\MCP\Integrations\Divi\Design\PresetRestorePlanner;
|
||||
use LIT\MCP\Integrations\Divi\Design\SnapshotStore;
|
||||
use LIT\MCP\Integrations\Divi\Design\ThemeOptionsAdapter;
|
||||
use LIT\MCP\Integrations\Divi\Design\ThemeOptionsRestorePlanner;
|
||||
use LIT\MCP\Integrations\Divi\Design\VariableRestorePlanner;
|
||||
use LIT\MCP\Integrations\Divi\Library\DiviLibraryStore;
|
||||
use LIT\MCP\Integrations\Divi\Library\DiviRoles;
|
||||
@@ -74,6 +80,8 @@ use LIT\MCP\Integrations\Divi\ThemeBuilder\ThemeBuilderIntegration;
|
||||
use LIT\MCP\Integrations\Core\EnvironmentComponent;
|
||||
use LIT\MCP\Integrations\Integration;
|
||||
use LIT\MCP\Integrations\Media\MediaUsageSource;
|
||||
use LIT\MCP\Integrations\Media\RemoteFileFetcher;
|
||||
use LIT\MCP\Limits;
|
||||
use LIT\MCP\Integrations\WordPress\BuilderDetector;
|
||||
use LIT\MCP\Integrations\WordPress\Content\ContentComposer;
|
||||
use LIT\MCP\Integrations\WordPress\Schema\ContentSchema;
|
||||
@@ -98,6 +106,13 @@ final class DiviIntegration implements Integration, Bootable
|
||||
|
||||
private GlobalVariablesAdapter $variablesAdapter;
|
||||
|
||||
private ThemeOptionsAdapter $themeOptionsAdapter;
|
||||
|
||||
/** One per request: the catalog holds Divi's big font list (ruling W5). */
|
||||
private FontCatalog $fontCatalog;
|
||||
|
||||
private FontInstaller $fontInstaller;
|
||||
|
||||
/** @var (Closure(): bool)|null Whether lit/divi-insert is enabled (ruling P9, E9, audit M2); null = always. */
|
||||
private ?Closure $diviWritable;
|
||||
|
||||
@@ -123,6 +138,9 @@ final class DiviIntegration implements Integration, Bootable
|
||||
$this->designWriter = new DesignSystemWriter();
|
||||
$this->colorsAdapter = new GlobalColorsAdapter();
|
||||
$this->variablesAdapter = new GlobalVariablesAdapter();
|
||||
$this->themeOptionsAdapter = new ThemeOptionsAdapter();
|
||||
$this->fontCatalog = new FontCatalog();
|
||||
$this->fontInstaller = new FontInstaller();
|
||||
$this->diviWritable = $this->gate(static fn (ToolAvailability $t): bool => $t->allows('lit/divi-insert'));
|
||||
$this->libraryInsertable = $this->gate(
|
||||
static fn (ToolAvailability $t): bool => $t->allows('lit/library-insert')
|
||||
@@ -280,7 +298,8 @@ final class DiviIntegration implements Integration, Bootable
|
||||
new SnapshotStore(),
|
||||
new PresetRestorePlanner($this->designWriter, DesignRights::unfilteredHtml()),
|
||||
new ColorRestorePlanner($this->designWriter, $this->colorsAdapter),
|
||||
new VariableRestorePlanner($this->designWriter, $this->variablesAdapter)
|
||||
new VariableRestorePlanner($this->designWriter, $this->variablesAdapter),
|
||||
new ThemeOptionsRestorePlanner($this->designWriter, $this->themeOptionsAdapter)
|
||||
),
|
||||
new DiviPresetsAssignAbility(
|
||||
$this->designWriter,
|
||||
@@ -306,7 +325,21 @@ final class DiviIntegration implements Integration, Bootable
|
||||
$this->variablesAdapter,
|
||||
$this->designChange(),
|
||||
$this->globalUsages(),
|
||||
new FontCatalog()
|
||||
$this->fontCatalog
|
||||
),
|
||||
new DiviThemeOptionsGetAbility($this->themeOptionsAdapter),
|
||||
new DiviThemeOptionsUpdateAbility(
|
||||
$this->designWriter,
|
||||
$this->themeOptionsAdapter,
|
||||
$this->fontCatalog,
|
||||
$this->designChange()
|
||||
),
|
||||
new DiviFontsUploadAbility(
|
||||
$this->fontCatalog,
|
||||
$this->fontInstaller,
|
||||
new RemoteFileFetcher(),
|
||||
$this->log,
|
||||
new Limits()
|
||||
),
|
||||
];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user