
Ubercart è un modulo per creare un negozio online in Drupal. Al momento (al 16 aprile) potrebbero non esserci ancora abbastanza moduli disponibili per Drupal Ubercart 8.x, ma presto verranno rilasciati e sarà possibile realizzare un negozio non più su Drupal 7, ma su Drupal 8.
https://www.drupal.org/project/ubercart
Le seguenti funzionalità sono disponibili in Ubercart:


Ubercart si installa come un normale modulo:
Il primo blocco di moduli è obbligatorio per l’installazione:


Per avere un catalogo di categorie nel tuo negozio su Ubercart, devi attivare il modulo Catalog:
Prima di abilitare il modulo Catalog, è consigliabile attivare subito anche i moduli Product, Store e Country.


Tutto ciò che abbiamo analizzato finora era simile alle versioni precedenti di Drupal. Ma con lo sviluppo dei moduli, tutto cambia. Sebbene visivamente Drupal sembri identico a Drupal 7, al suo interno è composto da componenti di Symfony, dai propri componenti e da numerose librerie. Pertanto, dovrai familiarizzare con il nuovo sistema di plugin e con la programmazione orientata agli oggetti (OOP) in PHP.


In questo articolo non scriveremo codice, ma ci prepareremo a farlo. Per questo installeremo Drush. Drush è un’utilità da console che consente di eseguire molte operazioni di routine con Drupal: aggiornare moduli, caricare/scaricare configurazioni, creare backup e molto altro.
Se utilizzi Open Server come server web per lo sviluppo, questa guida fa al caso tuo:


Questo articolo ha lo scopo di familiarizzarti con Drupal; più avanti scriveremo esempi di codice, dopo aver aggiunto il nostro modulo personalizzato.


Iniziamo a creare il nostro modulo con un po' di ordine. Continuiamo a separare i moduli personalizzati (custom) da quelli contribuiti (contributed). In Drupal i moduli si trovano nella cartella /modules. Ora non è più necessario metterli in profondità dentro /sites/all/modules, anche se il file readme dice che dovrebbe funzionare, è comunque consigliato usare la cartella /modules. All’interno della cartella /modules, creeremo due sottocartelle: custom e contrib.


In questa lezione, espanderemo le funzionalità del nostro modulo e creeremo contenuti che saranno disponibili solo per gli utenti registrati o per gli utenti con un ruolo specifico.
Esempi di codice possono essere visualizzati su github:
https://github.com/levmyshkin/drupalbook8
Iniziamo aggiungendo un nuovo file YML direttamente nella cartella del nostro modulo drupalbook.permissions.yml:


Man mano che impari l'API di Drupal, dovrai spesso fare riferimento alla documentazione principale su https://api.drupal.org. Questa è la documentazione di Drupal generata automaticamente. Contiene tutte le informazioni su ciascuna funzione, classe, metodo, dove sono definiti, dove viene utilizzata una breve descrizione. Inoltre, su questo sito c'è un aiuto per l'API, ti consiglio di familiarizzare con ciascuna delle sezioni:


Possiamo utilizzare i parametri nell'URL per le rotte. Funzionano proprio come i filtri contestuali nelle Views. Possiamo, ad esempio, passare nell'URL l'ID di varie entità, stringhe di testo o ID sequenziali separati da virgola o più. In questa lezione, passeremo l'ID del nodo e mostreremo il titolo e il corpo di questo nodo nel contenuto.
Esempi di codice possono essere visualizzati su github:
https://github.com/levmyshkin/drupalbook8
Aggiungiamo la rotta al nostro file drupalbook.routing.yml del modulo:
