Skip to main content
Înapoi la blog

Drupal dincolo de site-ul de prezentare: portaluri, zone de membri și instrumente interne

Valentin Zsigmond
Valentin Zsigmond7 septembrie 20265 min de citit

Când se gândesc la Drupal, cei mai mulți oameni văd motorul din spatele unui site public: pagini, articole, un formular de contact, o casetă de căutare. E o imagine corectă, și de aici pornesc majoritatea proiectelor. Dar e doar jumătate din ce face bine platforma. Aceleași calități care fac dintr-un site Drupal un site public de încredere, conținut structurat, permisiuni fine, un strat de API matur și un traseu de actualizare predictibil, fac din el o fundație foarte bună pentru lucrurile pe care o firmă le rulează în spatele unui login: portaluri de clienți, zone de membri, extraneturi pentru parteneri și instrumente interne.

Știm asta din interior. Portalul pe care clienții noștri îl folosesc zilnic, cu tichete, pontaje, facturi, controale de găzduire și documentație, este o aplicație Drupal. Rulează pe aceeași instalare ca site-ul nostru de prezentare, împarte conturile de utilizator cu el și se livrează prin același pipeline. Articolul de față e despre cum arată un asemenea proiect, când are sens și ce câștigi când îl construiești pe o platformă în care ai deja încredere.

Unde se termină site-ul de prezentare și unde începe aplicația

Un site de prezentare vorbește cu toată lumea pe același ton. O aplicație știe cine ești. În momentul în care un site trebuie să arate lucruri diferite unor oameni diferiți, să țină minte ce au făcut data trecută sau să-i lase să schimbe ceva singuri, a trecut în zona aplicațiilor. Exemple frecvente pe care le întâlnim:

  • O zonă de client în care cumpărătorii urmăresc starea comenzilor, proiectelor sau cazurilor lor, descarcă documente și deschid solicitări.
  • O secțiune de membri pentru o asociație sau un furnizor de cursuri, cu conținut accesibil în funcție de nivelul de membru și data reînnoirii.
  • Un extranet pentru parteneri, din care distribuitorii iau liste de prețuri, materiale de marketing și date de produs pe care publicul nu trebuie să le vadă.
  • Un instrument intern care înlocuiește un tabel partajat: aprobări, inventare, programări, o bază de cunoștințe.

Fiecare dintre acestea însemna, pe vremuri, un al doilea sistem: un produs separat, cu propriul login, propriul aspect și propriul calendar de actualizări. Drupal te lasă să le construiești ca parte a site-ului pe care îl ai deja, și tocmai de aici vine cea mai mare parte a beneficiului.

De ce se potrivește Drupal pentru acest tip de lucru

Primul motiv e modelul de conținut. Drupal tratează totul drept conținut structurat, cu câmpuri, relații și revizii: o factură, un tichet, un curs și un caz de suport sunt toate entități cu o formă definită. Descrii o singură dată ce înseamnă un „caz”, iar platforma îți dă formulare, listări, filtre, validare, un API și un istoric de revizii pentru el. Jumătate dintr-un portal obișnuit e exact acest gen de instalație, și aici vine deja inclusă.

Al doilea motiv e controlul accesului. Rolurile și permisiunile străbat tot ce există în Drupal, până la nivel de câmp. Un client își vede doar propriile înregistrări. Un account manager își vede conturile. Departamentul financiar vede facturile, dar nu poate edita tichete. Aceste reguli sunt declarate, testate și exportate împreună cu configurația site-ului, nu împrăștiate prin cod scris de mână, ceea ce contează enorm când lucrezi cu datele altora.

Al treilea motiv e că portalul trăiește lângă site-ul public, nu pe lângă el. Un singur login, un singur sistem de design, o singură căutare, un singur set de traduceri, o singură livrare. Când paginile publice și zona de client împart același cod, o schimbare de brand sau de navigare se face o singură dată. Când împart aceeași bibliotecă de componente, portalul arată și se comportă ca restul site-ului, nu ca un produs lipit pe lângă.

Iar al patrulea motiv e longevitatea. Aplicațiile au tendința să supraviețuiască entuziasmului care le-a creat. Calendarul public de lansări al Drupal și ferestrele lungi de suport înseamnă că portalul pe care îl construiești anul acesta are un traseu clar de actualizare pentru următorii ani, în același ritm cu restul site-ului.

Interfețe moderne pe o fundație Drupal

Un portal trebuie să se simtă ca o aplicație: filtrare rapidă, formulare care validează pe măsură ce scrii, ecrane care se actualizează fără reîncărcarea paginii. Aici intră în joc frontend-ul nostru bazat pe componente. Construim interfața din componente React pe care Drupal le randează și le hidratează, astfel că aplicația se simte instantanee, în timp ce fiecare bucată de date trece în continuare prin permisiunile și validarea Drupal. Nu există un al doilea backend de ținut sincronizat și nicio logică de business duplicată. Frontend-ul e o fereastră către platformă, iar platforma rămâne singura sursă de adevăr.

Portalul nostru e construit exact așa. Tichetele, pontajul, partea financiară, administrarea găzduirii și wiki-ul echipei sunt fiecare un modul care își înregistrează paginile și navigarea într-un nucleu mic, așa că funcțiile pot fi adăugate, mutate sau retrase independent. Modelul funcționează la fel de bine la scară mică: o zonă de client cu trei ecrane poate folosi aceeași abordare ca una cu treizeci.

Integrarea cu ce rulezi deja

Un portal rar stă singur. Arată date care trăiesc într-un sistem de facturare, un CRM, un depozit sau un helpdesk. Stratul de API al Drupal e proiectat pentru asta: conținutul poate fi preluat din și trimis către alte sisteme, programat sau la cerere, portalul fiind fața prietenoasă peste mai multe sisteme din spate. Pentru că integrarea trăiește în module Drupal cu propriile teste și configurări, supraviețuiește actualizărilor și schimbărilor de personal.

Același strat funcționează și invers. Portalul tău poate expune propriul API, astfel că o aplicație mobilă, sistemul unui partener sau un instrument de raportare pot citi aceleași înregistrări, sub aceleași permisiuni. Când construiești aplicația pe platformă, primești ambele direcții la prețul uneia.

Cum arată un asemenea proiect

Pornim de la oamenii care îl vor folosi și de la înregistrările de care au nevoie, nu de la funcții. Prima discuție produce de obicei o listă scurtă: cine se autentifică, ce trebuie să vadă, ce are voie să schimbe și care sisteme dețin deja acele informații. De acolo modelăm conținutul, definim rolurile și construim ecranele în ordinea frecvenței cu care vor fi folosite. O primă versiune e adesea live în câteva săptămâni, pentru că o mare parte din mecanismul de bază există deja.

Apoi crește. Pentru că fiecare parte a portalului e conținut structurat în spatele unor permisiuni bine definite, adăugarea unui nou tip de înregistrare sau a unei noi audiențe e o schimbare mică, nu o reproiectare. Portalurile construite așa tind să acumuleze valoare în liniște, ecran cu ecran, rămânând în același timp pe același traseu de actualizare cu site-ul public.

Dacă ai un tabel care a devenit un sistem, o zonă de clienți pe care tot vrei s-o construiești sau un proces cu partenerii care rulează pe e-mail, hai să vorbim. Îți arătăm cu plăcere cum e alcătuit portalul nostru și cum ar putea arăta o versiune a lui pentru tine.

Distribuie articolul
Valentin Zsigmond
Scris de
Valentin Zsigmond
Fondator și inginer principal

Arhitect Drupal full-stack cu aproape două decenii de experiență în conducerea unor echipe mari în medii enterprise. A fondat Tilizy Digital pentru a aduce expertiză de nivel senior direct organizațiilor care au nevoie de ea. Mentor pentru zeci de dezvoltatori Drupal și creatorul SDX, o extensie Drupal pentru construirea de interfețe moderne cu React și Vue.

Ți-a plăcut articolul?

Dacă te-ai regăsit în articol, imaginează-ți ce am putea face împreună pe site-ul tău Drupal.