Staging treści między środowiskami.

Learn DXPR BuilderManage the siteNaar productie

Staging treści to budowanie i recenzowanie stron kreatora DXPR, zanim zobaczą je odwiedzający. Są dwa sposoby: osobna witryna stagingowa, której treści przenosisz na produkcję, albo rewizje Drupala i moderacja treści w jednej witrynie. Ta strona opisuje oba i podaje dokładnie, co zapis w kreatorze robi z rewizjami i stanami moderacji, ponieważ to decyduje, które podejście sprawdzi się u ciebie.

Co robi zapis w kreatorze

Każdy zapis z edytora wykonuje te kroki:

  1. Wczytuje domyślną rewizję strony w edytowanym języku.
  2. Sprawdza, czy bieżący użytkownik może aktualizować stronę.
  3. Zapisuje nowy HTML do pola.
  4. Jeśli typ encji ma rewizje, tworzy nową rewizję i czyni ją domyślną. Bieżący użytkownik zostaje jej autorem, z komunikatem dziennika Saved with DXPR builder i czasem żądania.
  5. Usuwa blokadę edycji dla tej strony i rewizji, potem zapisuje stronę.

Żądanie stojące za zapisem opisane jest w punktach końcowych API.

Każdy zapis w węźle albo bloku Drag and Drop tworzy więc nową rewizję, niezależnie od tego, czy typ treści ma zaznaczone Create new revision, a karta Revisions wymienia każdy zapis z komunikatem dziennika kreatora. Drush dxb:page:update też tworzy rewizję, z komunikatem dziennika Updated via dxb:page:update Drush command.

Kreator nie ma kontrolki stanu moderacji i nigdy nie ustawia moderation_state. Gdy moderacja treści jest włączona dla typu treści, nowa rewizja zachowuje stan rewizji wczytanej przez kreator, a moderacja treści stosuje reguły tego stanu przy zapisie:

  • Opublikowana strona pozostaje opublikowana, a nowa rewizja od razu wchodzi na żywo.
  • Nieopublikowana strona w stanie Draft pozostaje w stanie Draft.
  • Problemem jest strona z opublikowaną domyślną rewizją i nowszym oczekującym szkicem: kreator wczytuje rewizję opublikowaną, nie szkic, więc zapis tworzy nową opublikowaną rewizję z opublikowanej treści i odkłada zmiany szkicu na bok.

Stany zmieniaj formularzem edycji węzła. Do procesu recenzji wewnątrz jednej witryny trzymaj strony nieopublikowane (Draft), gdy redaktorzy pracują nad nimi w kreatorze, i publikuj formularzem, gdy recenzja się zakończy.

Praca z witryną stagingową

Osobna witryna stagingowa omija powyższe ograniczenia moderacji i pozwala interesariuszom recenzować prawdziwą stronę.

  1. Redaktorzy budują i zmieniają strony w witrynie stagingowej.
  2. Recenzenci zatwierdzają je tam.
  3. Przenieś zatwierdzone treści na produkcję jedną z metod poniżej.
  4. Sprawdź stronę na produkcji jako anonimowy odwiedzający.

Kopia bazy danych

Skopiuj całą bazę danych ze stagingu na produkcję:

drush sql:sync @staging @production

Zastępuje to całą treść produkcyjną, więc najpierw wykonaj kopię zapasową produkcji i spodziewaj się utraty zmian wprowadzonych na produkcji po kopii. Plików to nie obejmuje; synchronizuj je jak opisano poniżej.

Selektywny eksport treści

Aby przenieść pojedyncze strony, wyeksportuj węzeł modułem takim jak Default Content, łącznie z mediami i plikami, do których strona się odwołuje, i zaimportuj go na produkcji. Kreator trzyma swój HTML w polu tekstowym, więc wartość pola podróżuje z węzłem. Ścieżki obrazów w HTML wskazują do sites/default/files/dxpr_builder_images, więc skopiuj też te pliki.

Wdrożenie samej konfiguracji

Jeśli to, co zbudowano, jest układem wielokrotnego użytku, a nie konkretną stroną:

  1. Na stagingu zapisz układ poleceniem More > Save as template na pasku kontenera. Tworzy to szablon użytkownika.

  2. Przejdź do DXPR Studio > DXPR Builder > User Templates i wybierz Create page template w operacjach tego szablonu.

  3. Wyeksportuj konfigurację:

    drush config:export
    
  4. Wdróż plik dxpr_builder.page_template.*.yml i zaimportuj go na produkcji:

    drush config:import
    
  5. Redaktorzy zaczynają nowe strony od szablonu na produkcji. Szablony stron pojawiają się w pustych kontenerach.

Synchronizacja plików

Przesłane pliki z kreatora trafiają do dxpr_builder_images, dxpr_builder_videos i dxpr_builder_files w domyślnym katalogu plików witryny. Synchronizuj je wraz z treścią:

rsync -avz staging:/path/to/files/ production:/path/to/files/

Współdzielony magazyn plików, na przykład S3 zamontowany w obu środowiskach, usuwa ten krok.

Rewizje i wycofywanie

Ponieważ każdy zapis jest rewizją, wycofywanie jest operacją Drupala:

  1. Otwórz kartę Revisions strony.
  2. Znajdź rewizję sprzed niechcianego zapisu; każdy zapis kreatora pokazuje Saved with DXPR builder.
  3. Kliknij Revert.

Wycofanie tworzy kolejną rewizję, więc historia pozostaje nienaruszona.

Blokady edycji

Gdy redaktor pierwszy raz kliknie w kontener, edytor wysyła żądanie dxpr_toggle_content_lock do /dxpr_builder/ajax, a tabela dxpr_lock zapisuje encję, rewizję, język i użytkownika. Gdy inny redaktor otworzy stronę, edytor odpytuje dxpr_content_lock_status, ukrywa kontrolki kontenera i pokazuje przycisk Locked z nazwą posiadacza blokady. Zapis usuwa wiersz. Inny redaktor może też kliknąć Locked i potwierdzić, aby przejąć blokadę; od tej pory wygrywa ostatni zapis.

Co dalej?