API 参考.
DXPR Builder 定义的 PHP 服务、JavaScript 扩展点和路由。服务 ID 来自 dxpr_builder.services.yml,路由来自 dxpr_builder.routing.yml。各路由的请求和响应详情请参阅 API 端点。
PHP 服务
| 服务 ID | 类(位于 src/) |
用途 |
|---|---|---|
dxpr_builder.service |
Service\DxprBuilderService |
为输出准备构建器内容,处理路径令牌,构建图标集注册表 |
dxpr_builder.license_service |
Service\DxprBuilderLicenseService |
许可证状态、计费用户、与 DXPR 的编辑人员同步 |
dxpr_builder.key_service |
Service\DxprBuilderKeyService |
读取和存放产品密钥 |
dxpr_builder.jwt_decoder |
Service\DxprBuilderJWTDecoder |
解码产品密钥载荷 |
dxpr_builder.user_settings |
Service\UserSettings |
每位编辑人员自己的编辑器设置,存放在用户数据中 |
dxpr_builder.content_lock |
Service\ContentLock |
记录哪位用户正在编辑实体修订 |
dxpr_builder.content_migration |
Service\ContentMigrationService |
运行内容迁移;收集服务项,其标签为 dxpr_builder.content_migration |
dxpr_builder.profile_handler |
Service\Handler\ProfileHandler |
将档案转为编辑器设置 |
dxpr_builder.handler.block |
Service\Handler\BlockHandler |
渲染作为元素放置的 Drupal 区块 |
dxpr_builder.handler.view |
Service\Handler\ViewHandler |
渲染作为元素放置的视图显示 |
dxpr_builder.template_image_validator |
Service\TemplateImageValidator |
验证模板预览图片 |
dxpr_builder.rl_variant.extractor、dxpr_builder.rl_variant.registrar |
RlIntegration\Service\* |
A/B 测试变体;没有 RL 模块时不活动 |
dxpr_builder.rl_sort.extractor、dxpr_builder.rl_sort.registrar |
RlIntegration\Service\* |
智能排序实验;没有 RL 模块时不活动 |
logger.channel.dxpr_builder |
核心日志通道 | 日志通道 dxpr_builder |
DxprBuilderServiceInterface
由 dxpr_builder.service 实现。您最可能调用的方法:
insertBaseTokens($content):将本站基本 URL、文件目录和模块路径替换为令牌。编辑器以这种形式存放内容。replaceBaseTokens(&$content): void:将令牌展开回当前环境的 URL。stripHtmlElementPersists(string $markup): string:移除data-az-persist属性。对编辑器外写的标记运行它;编辑器加载时重建它们。getCmsElementNames():作为元素提供的区块和视图显示,带缓存。getIconSets(): array:YAML 发现和hook_dxpr_builder_icon_sets_alter()之后的图标集注册表。
$markup = \Drupal::service('dxpr_builder.service')->insertBaseTokens($html);
DxprBuilderLicenseServiceInterface
由 dxpr_builder.license_service 实现。
isBillableUser(?AccountInterface $account = NULL): bool:user 1 以及拥有edit with dxpr builder且未被排除 DXPR Builder 编辑的活动账户返回 TRUE。getLicenseInfo():DXPR 许可证服务器的许可证状态,带缓存。没有产品密钥时返回免费套餐:一个用户和 100 个内容项。syncAllUsersWithCentralStorage(string $operation, string $json_web_token = ''): void: 将本站编辑人员发送到 DXPR。$operation是接口常量之一:DXPR_USER_SYNC_OPERATION(sync)、DXPR_USER_ADD_OPERATION(add)或DXPR_USER_REMOVE_OPERATION(remove)。
DxprBuilderKeyService
getApiKey(): ?string:产品密钥。api_key_storage设置为key时读取key_provider命名的 Key 实体;否则读取json_web_token。setApiKey(string $key_value, string $storage_type = 'config', ?string $selected_key_id = NULL): void: 将密钥存入配置或 Key 实体。
DxprBuilderJWTDecoder
decodeJwt(string $access_token):返回产品密钥的sub、scope和dxpr_tier声明,令牌不可读时各项为 NULL。结果按令牌缓存。
JavaScript 扩展点
编辑器脚本在 window.dxprBuilder 上共享两个数组。在创建数组的脚本与读取它们的 dxpr_builder.js 之间(它运行时读一次),将您自己的对象推入它们。
| 数组 | 创建方 | 该 dxpr_builder.js 的处理 |
|---|---|---|
dxpr_param_types |
dxpr_param_types.js |
将每个对象注册为参数类型,用 register_param_type() |
dxpr_elements |
dxpr_elements.js |
create_dxpr_elements() 用 register_animated_element() 注册每个定义,转换其 params 用 make_param_type() |
模块注册的参数类型有 boxmodel、checkbox、checkboxes、colorpicker、datetime、dropdown、dxb_slider、html、icon、image、images、link、links、numericfield、row_layout、saved_datetime、social_links、textarea、textfield 和 video。type 未知的参数渲染为普通文本输入框。
自定义元素展示了完整的元素定义,以及如何在正确的时机加载它。
编辑器路由
访问图例:billable 是 _dxpr_builder_billable_user 检查(user 1,或拥有 edit with dxpr builder 且未被排除的活动账户);CSRF 是 _csrf_token。
| 路径 | 路由名 | 方法 | 访问 |
|---|---|---|---|
/dxpr_builder/ajax |
dxpr_builder.ajax_callback |
any | billable、CSRF |
/dxpr_builder/ajax/file_upload |
dxpr_builder.ajax_file_upload_callback |
POST、DELETE | billable、CSRF |
/dxpr_builder/ajax/ai/chat |
dxpr_builder.ai_chat |
POST | edit with dxpr builder、billable、CSRF |
/dxpr_builder/ajax/ai/image |
dxpr_builder.ai_image |
POST | edit with dxpr builder、billable、CSRF |
/dxpr_builder/ajax/ai/image/edit |
dxpr_builder.ai_image_edit |
POST | edit with dxpr builder、billable、CSRF |
/dxpr_builder/csrf |
dxpr_builder.csrf_refresh |
any | billable |
/dxpr_builder/ajax/help_link_validator |
dxpr_builder.ajax_help_link_validator |
any | billable |
/dxpr_builder/media-library |
dxpr_builder.media_library |
any | view media |
/dxpr_builder/entity-link-suggestions |
dxpr_builder.entity_link_suggestions |
GET | edit with dxpr builder、CSRF |
/dxpr_builder/user-settings |
dxpr_builder.user_settings |
POST | edit with dxpr builder、CSRF |
管理路由
所有管理页面都在 DXPR Studio > DXPR Builder 下。Tab 列显示管理菜单中的标签。
| 路径 | 选项卡 | 权限 |
|---|---|---|
/admin/dxpr_studio |
DXPR Studio | administer dxpr builder configuration |
/admin/dxpr_studio/dxpr_builder |
DXPR Builder | administer dxpr builder configuration |
/admin/dxpr_studio/dxpr_builder/settings |
General Settings | administer dxpr builder configuration |
/admin/dxpr_studio/dxpr_builder/ai_settings |
AI | administer dxpr builder configuration |
/admin/dxpr_studio/dxpr_builder/content |
Content Items | administer dxpr builder configuration |
/admin/dxpr_studio/dxpr_builder/migration-status |
Migrations (under Content Items) | administer dxpr builder configuration |
/admin/dxpr_studio/dxpr_builder/page_template |
Page Templates | administer site configuration |
/admin/dxpr_studio/dxpr_builder/user_licenses |
User Licenses | administer dxpr builder configuration |
/admin/dxpr_studio/dxpr_builder/profile |
User Profiles | administer dxpr_builder_profile |
/admin/dxpr_studio/dxpr_builder/user_templates |
User Templates | administer site configuration |