Articles

Ubercart je modul za internet prodavnicu za Drupal. Trenutno možda nema dovoljno modula za Drupal Ubercart 8.x (stanje na 16. april), ali uskoro će se pojaviti i biće moguće napraviti prodavnicu ne na Drupal 7, već na Drupal 8.
https://www.drupal.org/project/ubercart
U Ubercart-u je dostupna sledeća funkcionalnost:


Ubercart se instalira kao običan modul:
Prvi blok modula su obavezni za instalaciju:
Cart - modul za korpu.
Country - modul za podešavanje specifične zemlje.
Order - modul za porudžbine.
Product - podešavanja proizvoda.
Store - osnovna podešavanja prodavnice.


Da biste imali katalog kategorija u svojoj prodavnici na Ubercart-u, potrebno je da omogućite modul katalog:
Pre uključivanja modula Katalog, bolje je odmah uključiti module Proizvod, Prodavnica, Zemlja.
Nakon instalacije, imaćemo rečnik naših sekcija proizvoda Katalog:
/admin/structure/taxonomy


Sve što smo do sada razložili, bilo je slično prethodnim verzijama Drupala. Ali sa razvojem, sve je drugačije. Iako Drupal vizuelno izgleda kao Drupal 7, unutra se sastoji od Symfony komponenti, njegovih komponenti, kao i mnogih biblioteka. Zbog toga morate raditi sa novim sistemom plugina, baviti se OOP-om u PHP-u.
Za početak ćemo krenuti od prilično poznatih stvari – Drupal hook-ova, zatim ćemo razumeti kako Drupal radi sa stranicama (rute), dodati novu stranicu, razmotriti kako Drupal obrađuje zahteve.


U ovom članku nećemo pisati kod, već ćemo se pripremiti za pisanje koda. Za to ćemo instalirati Drush. Drush je konzolni alat koji vam omogućava da obavljate mnoge rutinske operacije sa Drupalom: ažuriranje modula, upload/download konfiguracije, pravljenje rezervnih kopija i mnogo toga.
Ako koristite Open Server kao web server za razvoj, ovaj vodič će vam odgovarati:
1. Instalirajte sam server. Možete ga preuzeti sa zvaničnog sajta autora open-server.ru. Tamo je dostupna i dokumentacija za instalaciju.


Ovaj članak ima za cilj da vas upozna sa Drupalom, dalje ćemo pisati primere koda, nakon dodavanja našeg prilagođenog modula.


Počnimo sa kreiranjem našeg modula sa malo reda. Nastavićemo sa razdvajanjem prilagođenih (custom) i doprinosa (contrib) modula. U Drupalu se moduli nalaze u /modules folderu. Sada ne treba da ih stavljamo duboko u /sites/all/modules, iako readme kaže da to treba da radi, ipak koristite /modules folder. Unutar /modules foldera napravićemo dva foldera: custom i contrib. U contrib folderu će biti dodatni moduli sa drupal.org, a naši prilagođeni moduli će biti u custom folderu.
Engleski titlovi:


U ovoj lekciji proširićemo mogućnosti našeg modula i kreirati sadržaj koji će biti dostupan samo registrovanim korisnicima ili korisnicima sa određenom ulogom.
Primere koda možete pogledati na github-u:
https://github.com/levmyshkin/drupalbook8
Počnimo tako što ćemo dodati novi YML fajl direktno u folder našeg modula drupalbook.permissions.yml:


Kada učite Drupal API, često ćete morati da se pozivate na glavnu dokumentaciju na https://api.drupal.org. Ovo je automatski generisana Drupal dokumentacija. Sadrži sve informacije o svakoj funkciji, klasi, metodi, gde su definisane, sa kratkim opisom. Takođe, na ovom sajtu postoji pomoć za API, savetujem da se upoznate sa svim sekcijama:


Možemo koristiti parametre u URL-u za rute. Oni funkcionišu slično kao i kontekstualni filteri u Views. Na primer, u URL možemo proslediti ID različitih entiteta, tekstualne nizove ili sekvencijalne ID-jeve odvojene zarezom ili plusom. U ovoj lekciji ćemo proslediti ID noda i prikazati naslov i telo tog noda u sadržaju.
Primere koda možete pogledati na github-u:
https://github.com/levmyshkin/drupalbook8
Dodajmo rutu u naš modul u fajlu drupalbook.routing.yml:
