Zdjęcie główne wpisu bloga Workflows i Content Moderation

Workflows i Content Moderation

22.05.2019

Workflows i Content moderation — moduły, które przedstawię są dodatkami pozwalającymi rozszerzyć możliwości Drupala o zarządzanie zawartością, rewizjami i dodawać niestandardowe statusy. 

Workflows i Content Moderation

Workflows i Content moderation usprawniają nam pracę z zawartością w Drupalu 8. Standardowo zawartość w Drupalu (Node) ma status opublikowany lub nie. Admini widzą i mogą edytować wszystkie wpisy. Zwykły użytkownik, może przeglądać zawartość ze statusem ‘opublikowane’. Przy małych stronach lub tam, gdzie treść nie jest często aktualizowana, takie rozwiązanie zazwyczaj wystarcza. Problem pojawia się przy stronach, gdzie jest dużo zawartości i jest ona często aktualizowana. W dużych redakcjach nad tekstami pracuję bardzo często więcej niz jedna osoba. Niektóre z nich piszą artykuły, inne dodają zdjęcia, a jeszcze inne akceptują zmiany, nanoszą poprawki i publikują gotowe wpisy. Dodatek Workflows pomaga, gdy edytujemy treść na stronie, ale nie skończyliśmy wszystkich zmian, a zawartość nie jest gotowa do publikacji. Wtedy zapisujemy taka wersje jako np. jako ‘draft’. Tekst możemy edytować później, a użytkownicy do momentu publikacji widzą starą wersję. Przy bardziej złożonym przepływie pracy, gdzie ścieżka od szkicu do publikacji jest bardzo długa moduł ten jest bardzo przydatny. Jeżeli gotowy artykuł musi zostać zatwierdzony, np. przez inna osobę, używamy wtedy dodatkowego Content moderation, ustawianie statusów możemy przypisać do określonych ról. Przykładem może być załączona grafika. Widzimy tutaj takich użytkowników jak specjalista SEO, edytor treści, osoba publikująca. Droga od szkicu do opublikowanej wersji musi przejść przed 7 statusów. Najpierw edytor tworzy pierwszą wersję wpisu, którą przegląda edytor treści, nanosi on poprawki, a gdy wpis jest gotowy, przekazuje dalej do moderacji. Moderator może cofnąć wpis lub zaakceptować. Wtedy specjalista od SEO, nanosi zmiany i dodaje słowa kluczowe, opisy, tagi, i inne rzeczy związane z optymalizacją pod wyszukiwarki. Gdy wpis jest gotowy, edytor dodaje zdjęcia lub galerie, a całość czeka na ostateczną moderację, którą zajmuje się użytkownik z rolą Publisher. Zarządzanie takim procesem w zwykłym Drupalu byłoby uciążliwe, a w bardziej rozbudowanych przypadkach, prawie niemożliwe. Moduł ten powoduje, że każdy użytkownik ma dostęp do wpisu na różnych etapach produkcji i może zmieniać status w ściśle określonych miejscach. Powoduje to mniejszy bałagan oraz przejrzystość pracy, bez problemów jesteśmy w stanie ustalić, na jakim etapie prac aktualnie jesteśmy. To wszystko możemy osiągnąć modułem Workflows.

Drupal 8 workflow

Instalacja

Moduł Workflows jest modułem corowym. Od kilku wersji nie ma już statusu Experimental. To znaczy, że wystarczy go tylko zainstalować. Włączamy od razu moduł Content moderation, który rozszerza jeszcze możliwości modułu Workflows i dostarcza bazowe funkcjonalności, które pokażemy poniżej.

Install workflow

Konfiguracja

Pierwsze co należy zrobić, aby moduł zaczął działać to przejście do:
admin/config/workflow/workflows
następnie dodać nasz workflow. Przy włączonym module Content moderation będziemy mieć dostępny jeden typ workflow - Content moderation.

add workflow

Następną rzeczą jaką wykonamy jest przypisanie workflow do naszych nodów lub encji. Jeżeli stworzymy customową encję, która posiada rewizje także możemy użyć modułu workflows.

workflow apply to entity

Aktualnie mamy dwa statusy: Draft i Published. Jeżeli potrzebujemy, możemy dodać swój.
Dodajmy status: Gotowe do publikacji.

Add transtion

Dodając ‘transition’ możemy sterować, kiedy nasz status będzie widoczny na liście. Dla przykładu, chcemy, aby Ready to Publish można było ustawić, jeżeli wpis ma status ‘Draft’. Dodatkowo każdy 'transition' możemy przypisać do osobnej roli. 
 

transtion

Widzimy nową pozycję:

index tranistions

Teraz mamy poprawnie skonfigurowany moduł. Przechodzimy do zakładki content i wybieramy istniejący node lub tworzymy nowy. Od razu widzimy dodatkowe pole z select listą oraz aktualny stan naszego wpisu. 

status

Co więcej, dla użytkownika z dostępem do zmiany statusów, dostajemy widoczny blok z formularzem do zmiany statusu. Można łatwo od strony frontedowej zmienić aktualny stan wraz z krótką informacją czego dotyczy zmiana.

box

Dostępny jest także nowy widok w content Moderated Content, gdzie widzimy wszystkie oczekujące wersje. Jest to widok, więc możemy w razie potrzeby edytować jego wygląd, zawartość lub filtry.

moderation content

Tak wygląda podstawowa konfiguracja modułu i dodanie podstawowych funkcjonalności, które mogą nam się przydać przy pracy w naszym portalu.

Rewizje i szkice

edit panel

Zapoznamy się teraz z widokiem od strony edytora wpisu, jakie funkcje i narzędzia dostarcza nam moduł Workflows.
Na pierwszy rzut oka widać kilka nowych opcji.
View — tutaj widzimy ostatnią opublikowana wersję, czyli to, co widzi użytkownik końcowy. Może być ona starsza niż to, co znajdziemy w Lates version.

Latest version — tutaj mamy podgląd na ostatnią edytowaną wersje, przykładowo ze statusem draft. Tę wersję widzi tylko admin. Zwykły użytkownik nie ma do niej dostępu. A my możemy wrócić do edytowania wpisu za jakiś czas.
Revisions — historia update'ów naszej zawartości, możemy przywrócić poprzednia wersje.

revisions

Uprawnienia w Content Moderation

Jak wspomniałem, każda rola może mieć różne dostępy. Przydaję się to, gdy mamy wielu pracowników i wiele ról w firmie i każdy odpowiada za coś innego.
Dla przykładu, jeżeli mamy dwie role, edytor i moderator oraz przykładowy workflow:
wersja robocza -> gotowe do publikacji -> opublikowane.

Czyli mamy zmianę statusu:
wersja robocza -> gotowe do publikacji
Dostęp do takiej akcji możemy dać tylko dla użytkownika o roli edytor. Przez co będzie mógł on dokonywać poprawek i zmian, ale nie będzie mógł opublikować opisu.
Natomiast dla użytkownika o roli moderator damy dostęp do akcji:
gotowe do publikacji -> opublikowane
Dostęp taki pozwoli na opublikowanie wpisu i będzie on dostępny dla wszystkich użytkowników.

Każda zamiana statusu może być przypisana do innej roli:

uprawnienia content moderation

Własne moduły i API

Standardowo dostajemy moduł Workflow oraz Content Moderation, gdy jednak potrzebujemy coś bardziej wyspecjalizowanego możemy stworzyć własny customowy kod.
Pluginy — aby rozszerzyć działanie modułu workflow, trzeba stworzyć swój własny WorkFlowType. Musi być on rozszerzeniem klasy WorkflowTypeBase, przykładowa definicja takiego pluginu.
Warto sprawdzić też kod modułu Content Moderation i zobaczyć jakich metod i klas używa.

/**
* Attaches workflows to content entity types and their bundles.
*
* @WorkflowType(
*   id = "content_moderation",
*   label = @Translation("Content moderation"),
*   required_states = {
*     "draft",
*     "published",
*   },
*   forms = {
*     "configure" = "\Drupal\content_moderation\Form\ContentModerationConfigureForm",
*     "state" = "\Drupal\content_moderation\Form\ContentModerationStateForm"
*   },
* )
*/

Moduł Workflow czyli Workflows bez S

Istnieje alternatywna wersja, aby wdrożyć podobne rozwiązania na naszej stronie.
Bardzo łatwo można pomylić moduł Workflow z Workflows, który jest dostępny tutaj na Drupal.org
https://www.drupal.org/project/workflow, jest modułem contribowym znanym z Drupala 7.
Działanie modułu jest bardzo podobne. Jeżeli ktoś potrzebuje podobnej funkcjonalności, ale z jakiś powodów corowy Workflows mu nie pasuje, może spróbować tego rozwiązania.
Moduł workflow posiada kilka podmodułów i jest trochę bardziej rozbudowany, więc może zadowolić bardziej wymagających użytkowników.

Workflow

Podsumowanie

Jak widzimy Drupal ciągle się rozwija i dodawane do rdzenia są nowe funkcjonaliści. Pozwalające paroma kliknięciami zmienić przeznaczenie naszej witryny i ułatwić nam pracę. Workflows i Content moderation jest jednym z wielu przykładów, jak dodatkowe moduły poprawiają i usprawniają pracę w Drupalu 8. Droga wpisu od szkicu do opublikowanej wersji jest prezentowana przejrzyście. Dzięki dodatkowym statusom, każdy pracownik wie, kiedy i gdzie musi wykonać swoją pracę. Workflows i Content moderation na pewno sprawdzi się w redakcjach, portalach informacyjnych, gdzie nad tekstami pracuje duża grupa ludzi czy duże zespoły. Możliwość wprowadzenia podziału pracowników na role jak np. moderator, specjalista SEO, edytor tekstu, wydawca i inni powoduje mniejsze prawdopodobieństwo przestojów czy popełniania błędu przy tworzeniu zawartości. Dlatego, jeżeli szukasz takiego lub podobnego rozwiązania na swojej stronie warto zastanowić się na Drupal 8 + Workflows.

Zapraszamy także do przeczytania innych naszych wpisów na blogu Droptica!
 

Podchodzimy do każdego projektu indywidualnie!
Sprawdź nasze usługi

Wszystkie usługi
Drupal
Symfony
React
PHP
DevOps
Nodejs
Design/UX