Students Save 30%! Learn & create with unlimited courses & creative assets Students Save 30%! Save Now
Advertisement
  1. Code
  2. Creative Coding
Code

Usare Wordpress per lo sviluppo di applicazioni Web : La Gestione Utenti

by
Difficulty:IntermediateLength:MediumLanguages:
This post is part of a series called Using WordPress for Web Application Development.
WordPress for Web App Development: Events, Actions, and Filters
WordPress for Web App Development: Sessions

Italian (Italiano) translation by Piergiorgio Sansone (you can also view the original English article)

Per tutta questa serie , abbiamo visto come WordPress può servire da base per lo sviluppo di applicazioni web.

Il fatto è che, fino a questo punto, non abbiamo davvero dato uno sguardo alle caratteristiche di WordPress che  contribuiscono davvero a costruire applicazioni web. Invece, abbiamo impiegato il nostro tempo a spiegare come WordPress servisse come base pittosto che come un framework ed abbiamo visto come è organizzato a confronto dei moderni framework disponibili.

In particolare, abbiamo dato uno sguardo al modello di progettazione event-driven in contrasto con il popolare design-pattern  MVC (e sue varianti), e di come questo si collochi nel contesto di WordPress.

Con questo, abbiamo lavorato per ripensare l'architettura dell'applicazione, come alla sua struttura nel contesto di WordPress per aiutarci ad ottenere una migliore modello concettuale, a come le cose si incastrano all'interno di WordPress, ed a come approfittare del sistema di ganci - vale a dire, le azioni e filtri - ed a come i vari punti influenzano il ciclo di vita di una pagina WordPress.

 Anche se questo merita una maggiore attenzione , dobbiamo dare un'occhiata alle strutture che WordPress offre a scatola chiusa, al fine di comprenderne pienamente le caratteristiche e alle API con cui abbiamo a che fare, prima di poter realmente vedere come utilizzarle.

Nel corso dei prossimi 2 articoli andremo a fare proprio questo.


Componenti dell'Applicazione Web

Quando pensiamo alle componenti di un'applicazione web, ci vengono alla mente parecchie cose . Questo per dire che oltre alla consueta architettura del database, del middleware e del presentation layer , ci sono anche le seguenti componenti :

  • La Gestione degli Utenti
  • I Permessi
  • La gestione delle Sessioni
  • Le funzionalità email
  • La serializzazione dei dati ed il recupero
  • La URL routing (a volte indicato come la riscrittura degli URL o riscrivere le regole o anche solo delle rotte)
  • Il Caching
  • Il Supporto per query pesonalizzate

 Anche se questo elenco non è affatto completo, colpisce ciò che accade nella costruzione di una applicazione web standard (naturalmente, se ci sono punti che sono mancati, non esitate a parlare di loro nei commenti).

E no - questo non è prescindibile. A volte, le applicazioni web non avranno la gestione degli utenti, a volte gli utenti non avranno ruoli, forse non avrete bisogno di caching, e così via.

Ma il punto non è quello di fare un caso per tutte le cose di cui abbiamo bisogno. Invece, si tratta di far un caso per le cose che sono disponibili e di cui avrete bisogno.

Cosi, detto questo, diamo un'occhiata a ciò che WordPress ci offre in termini di Gestione utenti, permessi, fuzionalità email e gestione delle sessioni.


Gestione Utenti e Permessi

Chiunque abbia utilizzato WordPress, - che sia stato per il blogging o una gestione di base dei contenuti - trova familiare l'utilizzo del sistema utenti di base. Cioè, si crea un nome utente, una password, e quindi compilare il tuo profilo tanto quanto si desidera.

Inoltre, gli sviluppatori più esperti hanno familiarità con le idee di ruoli e funzioni. Mi piacerebbe anche di dire che, coloro che utilizzano WordPress hanno familiarità con il sistema, anche senza aver mai consultato il Codex o pasticciato con la scrittura di qualsiasi codice user-based.

Ma l'idea generale è davvero semplice: Gli utenti  rappresentano un profilo individuale per un account WordPress. Il loro ruolo è indicato in base a quale gli è stato assegnato nella creazione dell'utente.

Questi ruoli includono :

  • Abbonato
  • Collaboratore
  • Autore
  • Redattore
  • Amministratore

Ancora, a molti di noi,  che hanno lavorato con WordPress sono familiari, giusto? Ma come si inseriscono le funzionalità nella foto?

In poche parole, le funzionalità vengono assegnate in base alle autorizzazioni concesse agli utenti sull'applicazione WordPress, cosi come le restrizioni su alcune aree dell'applicazione. Questo è relativamente ben documentato nel Codex.

Add New User with a Role
Aggiungere un nuovo utente con un Ruolo

Ma ecco il punto: se stiamo costruendo un'applicazione su WordPress, le API disponibili consentono di bloccare gli utenti ad aree personalizzate che abbiamo creato, in base al loro ruolo e capacità.

Programmazione Creazione di un Utente

In primo luogo, diciamo che a un certo punto mentre si lavora sulla vostra applicazione web,volete essere in grado di fornire all'utente la possibilità di registrarsi o iscriversi utilizzando un modulo di iscrizione custom (in contrasto con il metodo standard di creare l'account utente in backend come indicato sopra).

Questo può esser fatto creando un template con un form che legge i dati del post.

Infatti, può essere realmente semplice come catturare l'indirizzo email dell'utente. Dico questo , perchè anche se i nomi utenti sono carini e divertenti, le email tendono ad essere uniche per un individuo in modo da facilitare il controllo dell'errore.

Quindi i passaggi per farlo potrebbero essere :

  • Catturare l'indirizzo email dell'utente
  • Verificare che l'utente esista con quella email
  • se non esiste, creare l'utente
  • Altrimenti, non creare l'utente e generare un messaggio di errore

Relativamente semplice, giusto? Chiaramente, questo comporta che siate in grado di generare una password per l'utente una volta creato il suo account. Fortunatamente, c'è un API per questo.

Quindi , vi mostro un esempio come programmare la creazione di un utente in base ad uno specifico indirizzo email (mentre auto-genera una password).

Dopo di che, è necessario creare realmente una nuova istanza di WP_User.

Questo è ciò che ci permetterà di impostare i ruoli per l'utente indicato.

Configuriamo il Ruolo e le Funzionalità dell'utente

Infine, è il momento di determinare quale ruolo e la gamma di funzionalità verrà assegnata all'utente.

Da un lato, è possibile codificare i valori in base alle opzioni che WordPress offre. La verità è che si può anche creare ruoli e funzionalità personalizzate. Per ora, questo è al di fuori del campo di applicazione dell'articolo; tuttavia, si potrà vedere in una serie futura.

Quindi diciamo che vogliamo che tutti gli utenti attualmente iscritti  abbiano  il ruolo di abbonati. Potete vedere l'insieme di funzionalità che gli saranno concesse in questo articolo del Codex.

L'impostazione di un ruolo è banale :

A questo punto, programmando avete creato con successo un nuovo utente all'interno dell'applicazione WordPress, senza utilizzare nessuna delle funzionalità amministrative di default.

E' sufficiente , collegare questo fino al vostro template, validarlo, pulirlo e controllare i dati in arrivo $_POST e sarete pronti a partire.

Il codice completo è simile al seguente:

Niente male, vero?

Controlliamo il Ruolo e le funziomalità dell'utente

Ma la creazione di un utente e poi salvare le sue informazioni nel database è solo la metà dell'attività, giusto?

Una volta che l'utente si è autenticato si vorrete probabilmente limitare il contenuto disponibile in base al suo ruolo. Quindi questo solleva la questione: Una volta che un utente è connesso, come si fa a recuperare il ruolo di un utente?

Per fortuna, le API di WordPress 'rendono questo relativamente facile:

  • Innanzitutto, dobbiamo essere in grado di di ottenere l'ID dell'utente corrente
  • Dopo di che, siamo in grado di prendere il ruolo dell'utente e procedere con logica condizionale da qui

Dobbiamo sfruttare la funzione wp_get_current_user(), e poi avremo bisogno di ottenere un'istanza dell'oggetto WP_User utilizzando l'ID dell'utente corrente e dopo saremo in grado di dare uno sguardo alla le funzionalità dell'utente.

Date un'occhiata al codice seguente:

Niete male, vero?

Questo rende molto facile scrivere codice condizionale come ad esempio:

Però c'è un modo alternativo per fare questo:

Ma questo solleva la questione da dove arriva questo? scopri esattamente questo.

Le differenze tra i due approcci dipendono da come orientato agli oggetti che si desidera che il codice sia.

Quando c'è un approccio orientato agli oggetti, sono meno propenso ad utilizzare global (come nel primo esempio) Tuttavia, anche il secondo esempio fornisce una soluzione relativamente semplice. Scelta tua.

Comunque, una volta in grado di verificare il ruolo di un utente , potete ridurlo ad accedere ad una specifica area dell'applicazione.


Ma gli utenti hanno bisogno delle email!

Avete ragione: Per lo meno, gli utenti hanno bisogno di ricevere e-mail quando sono stati creati i loro account, e hanno devono essere in grado di ricevere e-mail ogni volta che qualcosa sul loro conto è cambiata.

Ancora, WordPress fonisce un API che consente di fare questo in modo veramente facile, ma può essere esteso al di là di semplici azioni come ad esempio quando le informazioni sul profilo di un utente vengono modificate.

Infatti, in considerazione del fatto che WordPress ha una ricco sistema di eventi, si potrebbe potenzialmente agganciare a qualsiasi numero di eventi ed inviare e-mail quando succede qualcosa. Questo ovviamente è eccessivo, ma sta a dimostrare quanto le API siano effettivamente potenti.

Quindi, nella prossima sezione , ci occuperemo delle API WordPress dedicate alle email e come possiamo utilizzarle per inviare messaggi relativi a certe attività, nonchè a come possiamo agganciarla ad altre funzioni nell'applicazione.

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.