![Creant comunitats d'usuaris dinàmiques i participatives a Drupal 10](/sites/default/files/styles/imatge_articles/public/2024-07/crear-comunitats-dinamiques-a-drupal-10.png?itok=bmhSSZ2T)
En aquest article t'explique com he muntat un projecte web Drupal 10 per a crear comunitats d'usuaris dinàmiques que servisquen per a crear grups de treball o cursos formatius.
Aquest projecte web conté diferents comunitats d'usuaris privades i independents les unes amb les altres. En principi, quan un usuari accedirà a la web, nomès veurà una gran imatge minimalista i un parell d'opcions al menú:
La pàgina de "Acerca de" explicarà de què es tracta el projecte i quines possibilitats ofereix:
El cercador és emergent i també minimalista:
MENÚ PRINCIPAL PERSONALITZAT I DINÀMIC
Per tal d'aconseguir que el menú principal mostre poques opcions per als usuaris anònims, però mostre les opcions que vull per als usuaris autenticats, instal·larem el mòdul Menu Item Role Access. Així mostre una navegació usable i minimalista controlant exactament què vull que es mostre i per a quins tipus de rols.
AUTENTICACIÓ D'USUARIS
Els usuaris s'autentiquen, via LDAP, contra la base de dades de l'Active Directory de la meua organització. Ací vaig escriure l'article "Instal·lant el mòdul LDAP a Drupal 10 per una autenticació d'usuaris centralitzada" on explique com instal·lar i configurar el mòdul de LDAP de Drupal per a que els usuaris s'autentiquen directament via LDAP.
I com que la contrasenya que ficaran els usuaris és la de l'Active Directory i no la contrasenya local, vaig pensar que la pestanya de "He oblidat la contrasenya" portaria a la confusió als usuaris, i aleshores vaig instal·lar el mòdul No Request New Password el qual amaga eixa pestanya, i al final el formulari d'accès a Drupal queda molt net i minimalista:
LES COMUNITATS DE LA WEB
Una vegada l'usuari s'autentica a la web, apareixerà directament en la vista /comunidades gràcies al mòdul Redirect after login amb el qual podem controlar a quina pàgina redirigim els usuaris una vegada s'han autenticat bé.
I aleshores es mostren totes les comunitats. Els usuaris tenen rols, i veuran tantes comunitats com rols tinguen assignats. En aquest cas, estic accedint amb l'usuari administrador de la web que pot veure totes les comunitats:
Cada comunitat té:
- Comunicacions: són com butlletins massius que arriben, via correu electrònic, a tots els usuaris que tinguen el rol d'eixa comunitat. Les comunicacions les creem amb el mòdul Simplenews. Crearem una comunicació per a cada una de les comunitats que tinguem en el nostre projecte.
- Fòrums: són espais per al debat i discussions de temàtiques diverses, o en cas de tractar-se de formació per a resoldre dubtes i pràctiques d'exercicis. Per a tenir fòrums, no cal instal·lar res, simplement activarem el mòdul Fòrum del core de Drupal 10.
- Llistat dels usuaris: on es veu el nom de l'usuari i la imatge, per a generar proximitat i comunitat en línia. Aquest llistat (en block y en pàgina) l'he fet amb una View, mòdul que també tenim al core de Drupal 10.
- Pàgina o pàgines senzilles: ací es poden crear tots els continguts que es vulga, amb text pla o HTML, insertant vídeos de Youtube o Vimeo, àudios de Ivoox o Soundcloud, etc, etc, etc. Les pàgines senzilles són uns tipus de continguts també preinstal·lats per defecte a Drupal 10. Simplement activarem el format Full HTML perquè el gestor de la comunitat o el professor del curs puga fer servir qualsevol ferramenta amb HTML.
Ací una vista per damunt de les 6 comunitats d'exemple:
FÒRUMS DE LES COMUNITATS
Crearem un fòrum per a cada comunitat, i els usuaris (en cas de ser una comunitat d'usuaris) o els alumnes (en cas que creem cursos de formació) podran enviar publicacions als fòrums així com respondre comentaris en les publicacions dels fòrums dels altres usuaris.
Tant les publicacions dels fòrums com els comentaris tindran format full HTML, per tant podran afegir imatges, llistes, taules, negretes, enllaços, etc.
Quan un usuari publica alguna cosa, quedarà registrat el seu nom d'usuari, la data i es mostrarà també la seua imatge de perfil. Per això la importància d'afegir imatges en els perfils dels usuaris:
GESTIÓ DELS USUARIS
A Drupal podem configurar que els usuaris es registren ells asoles, o podem configurar que només els administradors puguen crear usuaris. En el meu cas, com ja he explicat abans, els usuaris realment existeixen a la base de dades de l'Active Directory i s'autentiquen via LDAP. Però he importat tots els usuaris de la meua organització a Drupal perquè no siga necessari crear-los manualment o que ells mateixa es registren. D'aquesta manera importe els usuaris massivament i ells ja poden fer servir les funcionalitats de la seua comunitat. Ací en aquest article "Important massivament un llistat de més de 1200 usuaris a Drupal" vaig explicar com fer la importació d'usuaris a Drupal 10.
Doncs bé, una vegada importats els usuaris, ja podem accedir a la gestió d'usuaris normal de Drupal i, si volem, assignar-los un rol (o més) al vol durant la importació.
En el perfil dels usuaris veurem que podem afegir camps personalitzats, jo en aquest cas he afegit un anomenat "Entidad Local", però podríem afegir tots els camps que necessitem fàcilment.
També des del perfil d'usuari de Drupal és on li assignem el rol, les comunicacions que rebrà l'usuari, podrem importar o exportar subscripcions a les comunicacions, podrem configurar si rebrà un correu quan hi haja un comentari al fòrum de debat, etc.
CONFIGURACIÓ DE LES NOTIFICACIONS PER CORREU ELECTRÒNICS ALS USUARIS
Quan algun usuari publica alguna cosa al fòrum, ja siga una publicació nova o un comentari a alguna publicació existent, els usuaris de la comunitat rebran una notificació per correu electrònic informant-los que hi ha novetats al fòrum. Açò ho fem amb el mòdul Notify
Quan un usuari gestor de la comunitat publica una comunicació, tots els usuaris de la comunitat rebran, per correu electrònic, eixa comunicació. Açò ho fem amb el mòdul Simplenews. En la configuració de simplenews, crearem una comunicació per a cada una de les comunitats.
Podem configurar que els usuaris, una vegada es registren, que tinguen activats una o més comunicacions, o que les comunicacions siguen invisibles a ells, d'aquesta manera els usuaris no podran deshabilitar-se la subscripció de determinades comunicacions.
CONTROL D'ACCÉS I PERMISOS A LES COMUNITATS
El control dels usuaris en aquesta web el farem amb els rols. Crearem un rol per cada comunitat.
A més a més, en una taxonomia que anomenarem "Categories", crearem un terme per cada comunitat.
I ara, amb el mòdul Taxonomy Access Control Lite" farem el control de rols que poden veure certes taxonomies. I és en aquest punt on li direm, per exemple:
- Usuaris del rol "escritor" poden veure publicacions categoritzades amb el terme "escritores".
- Usuaris del rol "matemático" poden veure publicacions categoritzades amb el terme "matemáticos".
- Usuaris del rol "físico" poden veure publicacions categoritzades amb el terme "físicos".
Aleshores, tant el tipus de contingut Comunidad, com els fòrums, com les comunicacions, tindran un camp anomenat "Taxonomy" i, a l'hora de publicar-ho, indicarem un terme de la taxonomia "Categories" i, per tant, un usuari del rol "escritor" no podrà veure les publicacions dels termes "matemático" o "físico" de la taxonomia "Categories".
I d'aquesta manera tenim les comunitats de manera independent les unes amb les altres.
En la feina, necessitava un llistat gran de categories, concretament una anomenada Entidades Locales on estan tots els municipis i mancomunitats de la província de Castelló. I ací en l'article "Important massivament un llistat de categories en una taxonomia de Drupal" explique com podem fer açò amb el mòdul Term CSV Export Import.
MÉS SEGURETAT EN L'ACCÈS A USUARIS: DOBLE FACTOR
En el projecte que he muntat a la meua feina, l'accés als usuaris ja és prou segur perquè els usuaris s'autentiquen via LDAP contra la base de dades de l'Active Directory. Però, a més a més, hem implantat un sistema de doble factor OTP amb Drupal.
En aquest article explique pas a pas com ho he fet "Configurant l'accés d'usuaris a un projecte Drupal 10 amb doble factor OTP" instal·lant i configurant el mòdul Two-factor Authentication (TFA), i també el mòdul Encrypt i també el mòdul Real AES
Per a no repetir-me, et redirigisc una altra vegada a l'article "Configurant l'accés d'usuaris a un projecte Drupal 10 amb doble factor OTP" i, una vegada configurada la clau i el mòdul tfa, l'usuari s'autenticarà a la web amb el seu usuari i contrasenya de l'Active Directory via LDAP i a continuació Drupal 10 li demanarà que fique el codi OTP que li apareix a l'apliació del seu smartphone:
També hem implementat la caixeta informativa de la informació i gestió del consentiment les cookies, i ho he documentat en l'article "Implementant el consentiment de les Cookies a un projecte Drupal 10".
FUNCIONALITATS ESTÈTIQUES
A les pàgines senzilles de les comunitats podem crear qualsevol tipus de format fent servir HTML pur i dur o insertar vídeos o objectes a partir de l'HTML, ací teniu a l'esquerra una imatge i a la dreta un video de Youtube:
Quan fem click a una imatge, la imatge es mostra de manera emergent fent un zoom automàtic superposant-se sobre la pàgina mateixa, això ho fem amb el mòdul Colorbox (el qual requereix el mòdul Ctools). I també vaig instal·lar la llibreria Lity per a poder generar també finestretes emergents en els vídeos de Youtube i així fidelitzava als usuaris a veure el video dins de la pàgina de la comunitat i no eixir-se a la web de Youtube. Tinc un article explicant com instal·lar-ho en Com fer enllaços emergents a vídeos de Youtube i a imatges en una pàgina HTML.
El Theme d'aquest projecte és el theme Mili, amb algunes modificacions de CSS que he anat necessitant de tant en tant al meu gust per a ficar bordes a les comunitats i a les imatges.
Les rutes de les pàgines, o urls, les he personalitzat gràcies al mòdul Pathauto fàcilment. I el fil d'ariadna també l'he personalitzat gràcies al mòdul Easy Breadcrumb i d'aquesta manera un usuari que accedeix a les comunicacions d'una comunitat o a un fòrum d'una comunitat, no veurà a les miguetes de pa la ruta estàndard de Drupal que li faria tornar al nivell superior de les comunicacions o del fòrum, sinó que cree una estructura perquè sempre note que està dins de la seua comunitat i no en l'arrel de /forum, sinó en Nom_Comunitat/forum inventant-me algunes rutes del fil d'ariadna.
LLISTAT DE TOTS ELS MÒDULS INSTAL·LATS
- Menu Item Role Access
- Lightweight Directory Access Protocol o LDAP
- No Request New Password
- Redirect after login
- User CSV Import
- Simplenews
- Notify
- Taxonomy Access Control Lite
- Term CSV Export Import
- Two-factor Authentication (TFA)
- Encrypt
- Real AES
- COOKiES Consent Management
- Colorbox
- Pathauto
- Easy Breadcrumb