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 |
요소로 배치된 Views 표시 렌더링. |
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 |
core logger channel | 로그 채널 dxpr_builder |
DxprBuilderServiceInterface
다음이 구현: dxpr_builder.service. 가장 많이 호출할
메서드:
insertBaseTokens($content): 이 사이트의 기본 URL, 파일 디렉터리, 모듈 경로를 토큰으로 교체. 편집기는 콘텐츠를 이 형태로 저장.replaceBaseTokens(&$content): void: 토큰을 현재 환경의 URL로 다시 확장.stripHtmlElementPersists(string $markup): string.data-az-persist특성을 제거. 편집기 바깥에서 쓴 마크업에 실행. 편집기가 불러올 때 다시 만듦.getCmsElementNames(): 요소로 제공되는 블록과 Views 표시. 캐시됨.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. 사용자 1과edit with dxpr builder가 있고 DXPR Builder 편집에서 제외되지 않은 활성 계정에 TRUE.getLicenseInfo(): DXPR 라이선스 서버의 라이선스 상태. 캐시됨. 제품 키가 없으면 무료 등급 반환. 사용자 1명과 콘텐츠 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
검사(사용자 1 또는 edit with dxpr builder가 있고
제외되지 않은 활성 계정). CSRF(은)는 _csrf_token.
| 경로 | 경로 이름 | 메서드 | 접근 |
|---|---|---|---|
/dxpr_builder/ajax |
dxpr_builder.ajax_callback |
모두 | 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 |
모두 | billable |
/dxpr_builder/ajax/help_link_validator |
dxpr_builder.ajax_help_link_validator |
모두 | billable |
/dxpr_builder/media-library |
dxpr_builder.media_library |
모두 | 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. 탭 열에는 관리 메뉴의 레이블이 표시됩니다.
| 경로 | 탭 | 권한 |
|---|---|---|
/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 |