Architektura.

Learn DXPR BuilderExtendArchitectuur en API’s

Kreator DXPR ma trzy części: formater pola w PHP, edytor działający w przeglądarce oraz zestaw tras wywoływanych przez edytor do zapisywania i pobierania danych. Ta strona wyjaśnia, jak do siebie pasują.

Formater pola

Treść to HTML przechowywany w zwykłym polu tekstowym Drupala (text, text_long albo text_with_summary). Pole staje się edytowalne, gdy jego wyświetlanie używa formatera DXPR Builder (dxpr_builder_text, w src/Plugin/Field/FieldFormatter/DxprBuilderFormatter.php).

Formater wczytuje edytor tylko, gdy spełnione są wszystkie te warunki:

  • przeglądający jest rozliczany: użytkownik 1 albo aktywne konto z edit with dxpr builder, niewykluczone z edycji w kreatorze DXPR;
  • przeglądający może aktualizować encję;
  • konto ma adres e-mail;
  • limity użytkowników i treści licencji nie są przekroczone;
  • witryna nie znajduje się na liście blokowanych serwera licencji, a strona nie jest stroną rewizji.

Wszyscy pozostali dostają przetworzony HTML: rozwinięte tokeny ścieżek, bloki i widoki Drupala wyrenderowane w swoich symbolach zastępczych, usunięte atrybuty edytora data-az* i dołączone biblioteki potrzebne treści. Wynik dla zalogowanych użytkowników nie jest buforowany (max-age 0), ponieważ niesie ustawienia dla użytkownika.

Edytor

Edytor to zestaw plików JavaScript wczytywanych jako biblioteka dxpr_builder/editor.builder. Pochodzą z DXPR CDN albo z własnego katalogu dxpr_builder/ modułu, gdy zawiera on lokalną kompilację; ustawienie Asset source w General Settings pojawia się tylko wtedy. Edytor parsuje HTML pola do drzewa obiektów elementów i zapisuje go z powrotem do HTML przy zapisie.

Typy elementów pochodzą z dwóch miejsc w dxpr_builder/build/:

Katalog Typy elementów
dxpr-builder/core-elements/ Container, Section, Row, Column, Tabs i ich panele kart, przełączników i slajdów
dxpr-elements/elements/ Elementy treści oraz elementy układu Collapsibles, Carousel i Positioned Layers

Każdy element trzyma swoje ustawienia we własnym HTML: atrybuty data-azat-*, klasy i style osadzone. Zapisany HTML jest jedynym zapisem układu; nie ma osobnego magazynu układu. Własne elementy pokazują format.

Parsowanie istniejącego HTML

Znaczniki bez atrybutów kreatora mapowane są na elementy, gdy edytor je wczytuje. Kontenery, wiersze i kolumny Bootstrapa stają się sekcjami, wierszami i kolumnami. Rozpoznane komponenty stają się swoimi elementami, na przykład przyciski, alerty, karty, cytaty blokowe, obrazy, ikony, paski postępu, karty i zwijane panele. Tekst, tabele i inne znaczniki osadzone stają się elementami Text, a <iframe> staje się elementem HTML. Luźne tagi <script> i <style> oraz komentarze są odrzucane. Reguły znajdują się w dxpr-builder/base-element/parse-html.js.

Trasy wywoływane przez edytor

Edytor zapisuje przez /dxpr_builder/ajax, przesyła pliki przez /dxpr_builder/ajax/file_upload i sięga do AI przez /dxpr_builder/ajax/ai/*. Większość tras sprawdza kontrolę dostępu rozliczanego użytkownika i token CSRF; pełna lista z wymaganiami dostępu znajduje się w dokumentacji API.

Encje konfiguracyjne

Typ encji Prefiks konfiguracji Zawiera
dxpr_builder_page_template dxpr_builder.page_template Pełnostronicowe układy
dxpr_builder_user_template dxpr_builder.user_template Sekcje zapisane przez redaktorów do ponownego użycia
dxpr_builder_profile dxpr_builder.dxpr_builder_profile Limity dla roli na elementy, bloki, widoki, szablony, zestawy ikon i przyciski edytora tekstu

Sprawdzanie licencji

Klucz produktu to JWT. DxprBuilderLicenseService wysyła go do serwera licencyjnego DXPR, który zwraca status licencji oraz jej limity użytkowników i treści; wynik jest buforowany. Bez klucza produktu obowiązuje plan darmowy: jeden użytkownik i 100 elementów treści. Usługa utrzymuje też w synchronizacji listę redaktorów witryny na serwerze.