API 참조.

Learn DXPR BuilderExtendArchitectuur en API’s

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