feat: Divi-Fähigkeiten (DiviFeature, Requirement, ConstantRequirement) an Call, Mirror und Manifest; alle acht Adapter getaggt; Tests für Vollständigkeit und die gepinnte Zuordnung
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5.5
parent
e6e0f914ba
commit
392fe7c569
@@ -6,6 +6,7 @@ namespace LIT\MCP\Integrations\Divi\ThemeBuilder;
|
||||
|
||||
use LIT\MCP\Integrations\Divi\Release\Call;
|
||||
use LIT\MCP\Integrations\Divi\Release\DiviAdapter;
|
||||
use LIT\MCP\Integrations\Divi\Release\DiviFeature;
|
||||
use LIT\MCP\Integrations\Divi\Release\DiviLocked;
|
||||
use LIT\MCP\Integrations\Divi\Release\Manifest;
|
||||
use LIT\MCP\Integrations\Divi\Release\Mirror;
|
||||
@@ -84,16 +85,31 @@ class DiviThemeBuilder implements DiviAdapter
|
||||
return new Manifest(
|
||||
Manifest::THEME_BUILDER,
|
||||
calls: [
|
||||
new Call('et_theme_builder_get_theme_builder_post_id', 2),
|
||||
// liveId(): reads the live post, or creates it like Divi's first save.
|
||||
new Call(
|
||||
'et_theme_builder_get_theme_builder_post_id',
|
||||
2,
|
||||
[DiviFeature::ThemeBuilderRead, DiviFeature::ThemeBuilderWrite]
|
||||
),
|
||||
new Call('et_theme_builder_get_theme_builder_template_ids', 2),
|
||||
new Call('et_theme_builder_get_template', 1),
|
||||
new Call('et_theme_builder_insert_layout', 1),
|
||||
new Call('et_theme_builder_store_template', 3),
|
||||
new Call('et_theme_builder_insert_layout', 1, [DiviFeature::ThemeBuilderWrite]),
|
||||
new Call('et_theme_builder_store_template', 3, [DiviFeature::ThemeBuilderWrite]),
|
||||
new Call('et_theme_builder_get_flat_template_settings_options', 0),
|
||||
new Call('et_theme_builder_clear_wp_cache', 1),
|
||||
// clearSiteCaches() also runs after every page save with a site-wide scope (DiviSaver).
|
||||
new Call(
|
||||
'et_theme_builder_clear_wp_cache',
|
||||
1,
|
||||
[DiviFeature::ThemeBuilderWrite, DiviFeature::PageWrite]
|
||||
),
|
||||
// store_template needs Divi's et_() helper (E15).
|
||||
new Call('et_'),
|
||||
new Call('ET_Core_PageResource::remove_static_resources', 3),
|
||||
new Call('et_', null, [DiviFeature::ThemeBuilderWrite]),
|
||||
// Also called by DiviPages::clearPageCss() – a break locks both features.
|
||||
new Call(
|
||||
'ET_Core_PageResource::remove_static_resources',
|
||||
3,
|
||||
[DiviFeature::ThemeBuilderWrite, DiviFeature::PageWrite]
|
||||
),
|
||||
],
|
||||
postTypes: self::postTypes(),
|
||||
keys: [
|
||||
@@ -106,23 +122,27 @@ class DiviThemeBuilder implements DiviAdapter
|
||||
'et_theme_builder_api_save',
|
||||
null,
|
||||
'Vorlagenliste des Live-Theme-Builders (_et_template mit Sicherung et_tb_templates_backup_) und '
|
||||
. '„ungenutzt“-Markierung'
|
||||
. '„ungenutzt“-Markierung',
|
||||
[DiviFeature::ThemeBuilderWrite]
|
||||
),
|
||||
new Mirror(
|
||||
'tb-store-template',
|
||||
$dir . 'theme-builder.php',
|
||||
'et_theme_builder_store_template',
|
||||
null,
|
||||
'Bedingungen (_et_use_on, _et_exclude_from) und Aktiv-Schalter (_et_enabled) einer Vorlage'
|
||||
'Bedingungen (_et_use_on, _et_exclude_from) und Aktiv-Schalter (_et_enabled) einer Vorlage',
|
||||
[DiviFeature::ThemeBuilderWrite]
|
||||
),
|
||||
new Mirror(
|
||||
'tb-load-setting-options',
|
||||
$dir . 'theme-builder.php',
|
||||
'et_theme_builder_load_template_setting_options',
|
||||
null,
|
||||
'Zerlegen der Bedingungs-IDs (TemplateConditions)'
|
||||
'Zerlegen der Bedingungs-IDs (TemplateConditions)',
|
||||
[DiviFeature::ThemeBuilderRead, DiviFeature::ThemeBuilderWrite]
|
||||
),
|
||||
]
|
||||
],
|
||||
features: [DiviFeature::ThemeBuilderRead]
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user