---
url: 'https://dxpr.com/pl/hc/dokumentacja/nauka-dxpr-builder/programowanie/architektura'
title: 'Architektura | DXPR'
author:
  name: Jurriaan
  url: 'https://dxpr.com/users/jurriaan'
date: '2026-10-24T11:38:18+00:00'
updated: '2026-10-24T17:19:22+00:00'
copyright: 'Copyright DXPR. All rights reserved.'
type: article
summary: |-
  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ą.
tags:
  - 'Architecture and APIs'
image: 'https://dxpr.com/themes/custom/dxpr_com/images/dxpr-share-card.jpg'
published: true
og:
  site_name: DXPR
  updated_time: '2026-10-24T17:19:22+0000'
  'image:alt': 'DXPR, powered by Drupal: AI-powered Drupal for marketers.'
schema:
  '@context': 'https://schema.org'
  '@graph':
    -
      mainEntity: {  }
    -
      '@type': TechArticle
      headline: Architektura
      description: |-
        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ą.
      image:
        '@type': ImageObject
        url: 'https://dxpr.com/themes/custom/dxpr_com/images/dxpr-share-card.jpg'
        width: '1200'
        height: '630'
      datePublished: '2026-10-24T11:38:18+0000'
      dateModified: '2026-10-24T17:19:22+0000'
      author:
        '@type': Organization
        '@id': 'https://dxpr.com/#organization'
        name: DXPR
        url: 'https://dxpr.com/'
        logo:
          '@type': ImageObject
          url: 'https://dxpr.com/themes/custom/dxpr_com/dxpr-logo-dark.svg'
          width: '1348'
          height: '501'
      publisher:
        '@type': Organization
        '@id': 'https://dxpr.com/#organization'
        name: DXPR
        url: 'https://dxpr.com/'
        logo:
          '@type': ImageObject
          url: 'https://dxpr.com/themes/custom/dxpr_com/dxpr-logo-dark.svg'
          width: '1348'
          height: '501'
      mainEntityOfPage: 'https://dxpr.com/pl/hc/dokumentacja/nauka-dxpr-builder/programowanie/architektura'
      articleSection: 'Architektura i API'
    -
      '@type': WebPage
      '@id': 'https://dxpr.com/pl/hc/dokumentacja/nauka-dxpr-builder/programowanie/architektura'
      description: |-
        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ą.
      breadcrumb:
        '@type': BreadcrumbList
        itemListElement:
          -
            '@type': ListItem
            position: 1
            name: 'Strona Główna'
            item: 'https://dxpr.com/pl'
      publisher:
        '@type': Organization
        '@id': 'https://dxpr.com/#organization'
        name: DXPR
      inLanguage: pl
---
[Centrum pomocy](/pl/hc)/[Dokumentacja](/pl/hc/dokumentacja) /[Poznaj DXPR Builder](/pl/hc/documentation/learn-dxpr-builder) /[Rozszerzenia](/pl/hc/documentation/learn-dxpr-builder/extend) /[Architektura i API](/pl/hc/documentation/learn-dxpr-builder/extend/architecture) # Architektura.

 Poznaj DXPR BuilderRozszerzeniaArchitektura i API

   ## W tym przewodniku

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](/pl/hc/dokumentacja/nauka-dxpr-builder/programowanie/wlasne-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](/pl/hc/documentation/learn-dxpr-builder/development/api#editor-routes).

## 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.