logo

Dodatni tipovi blokova (EBT) - Novo iskustvo rada sa Layout Builder-om❗

Dodatni tipovi blokova (EBT) – stilizovani, prilagodljivi tipovi blokova: slajdšouvi, kartice sa tabovima, kartice, akordeoni i mnogi drugi. Ugrađena podešavanja za pozadinu, DOM Box, javascript dodatke. Iskusite budućnost kreiranja rasporeda već danas.

Demo EBT moduli Preuzmite EBT module

❗Dodatni tipovi pasusa (EPT) – Novo iskustvo rada sa pasusima

Dodatni tipovi pasusa (EPT) – analogni skup modula zasnovan na pasusima.

Demo EPT moduli Preuzmite EPT module

Scroll

1.6. Proizvodi i kategorije - kreiramo tabele baze podataka

26/05/2025, by Ivan

Pre nego što kreiramo funkcionalnost proizvoda i kategorija, hajde da razmotrimo informacije koje će biti potrebne našim klijentima i administratorima sajta. Potrebno je pružiti dovoljno informacija o proizvodu: treba prikazati ime proizvoda, detaljan opis proizvoda, cenu proizvoda. Takođe možemo postaviti fotografiju proizvoda, kao i dodatne slike. Možda će biti potrebna i težina proizvoda za računanje troškova dostave. Količina proizvoda na lageru je važna da se ne bi prodavao proizvod koji nemamo. Za administratora sajta biće potreban ID proizvoda, kao i čitljiv URL za pretraživače.

Na kraju, trebalo bi da imamo bar sledeća polja:

Podaci Opis
ID Broj proizvoda za internu upotrebu sajta
Ime Ime proizvoda
ČPУ (čitljiv URL) Potrebno više za pretraživače
Opis Detaljne informacije o proizvodu
SKU Šifra proizvoda za korisnike sajta
Cena Cena proizvoda
Zalihe Količina proizvoda na sajtu
Glavna slika Glavna slika proizvoda
Dodatne slike Dodatne slike proizvoda

U narednim člancima proširićemo ovaj spisak, ali za sada nam ovo je dovoljno.

Kategorije proizvoda imaju svoj spisak polja:

Podaci Opis
ID Broj kategorije za internu upotrebu sajta
Ime Ime kategorije
Opis Opis kategorije
ČПУ (čitljiv URL) Čitljiv URL za pretraživače

Mogli bismo da nastavimo dalje i implementiramo strukturu podataka i funkcionalnost za prikaz proizvoda i kategorija pomoću našeg framework-a, ali ako to uradimo sada, izgubili bismo mnogo fleksibilnosti. Većina sadržaja ima mnogo zajedničkih informacija. Ako pronađemo te zajedničke informacije i napravimo apstraktni tip sadržaja, naš framework će biti fleksibilniji. Mogli bismo koristiti različite funkcionalnosti za te tipove materijala bez dupliranja koda. Takve funkcionalnosti mogu biti:

  • Verzionisanje sadržaja
  • Ograničavanje pristupa
  • Komentari na sadržaj, stranice, proizvode
  • Ocene stranica, proizvoda

Stranice

Stranice će biti uobičajeni statični delovi našeg sajta: Kontakti, informacije o dostavi i plaćanju itd. Podaci ovih stranica prikazani su u sledećoj tabeli:
Podaci Opis
Ime Ime stranice
ČПУ (čitljiv URL) URL stranice
ID Interni broj stranice
Naslov (heading) Sadržaj h1 taga
Title Sadržaj taga <title>
Sadržaj Sadržaj stranice
Ključne reči Sadržaj meta taga za ključne reči
Opis Sadržaj meta taga za opis

Sadržaj (Content)

Stranice su osnovni tip sadržaja koji ćemo proširivati kada bude bilo potrebno da se skladišti više polja. Stranice kategorija su ustvari iste stranice, ali sa dodatnim poljima za povezivanje sa proizvodima.
Podaci Opis
ID Broj za internu upotrebu
Ime Ime sadržaja
ČПУ (čitljiv URL)
Sadržaj Sadržaj stranice
Tip Tip sadržaja (npr. stranica, proizvod, kategorija)
Redosled Sortiranje sadržaja, na primer za stavke u meniju
Roditelj Roditelj sadržaja, potrebno za hijerarhiju, npr. za podkategorije ili katalog stranica
Meta ključne reči Ključne reči
Meta opis Meta opis
Datum kreiranja Datum kreiranja
Autor Autor sadržaja
Aktivan Da li sadržaj treba da bude prikazan posetiocima
Siguran Polje za ograničavanje prava, na primer da se prikazuje samo registrovanim korisnicima

Revizije

Drupal ima sistem revizija, mi ćemo imati sličan sistem.
Podaci Opis
ID Interni broj sadržaja
Trenutna revizija Broj trenutne revizije
Sada kada smo isplanirali naše tipove sadržaja, možemo pristupiti kreiranju baze podataka. Za svaki tip ćemo napraviti posebnu tabelu. Kao rezultat, trebalo bi da imamo sledeće tabele:
Tabela Opis
Content Za čuvanje veza aktivnih verzija sadržaja sa informacijama koje se ne menjaju za različite verzije, na primer autor sadržaja.
Versions Za čuvanje podataka pojedinačne verzije sadržaja
Content types Za upisivanje tipova materijala našeg framework-a i povezivanje sadržaja sa tipom materijala.
Products Za proširenje podataka o proizvodima
Revision history Za čuvanje istorije revizija

Content

Svi sadržaji na sajtu biće uskladišteni u ovoj tabeli. Ako želimo da proširimo tip materijala, to ćemo raditi u posebnoj tabeli. Na primer, proizvodi će biti uskladišteni u tabeli Content, ali će biti povezani sa tabelom Products preko ID-a.
Polje Tip Opis
ID Integer (auto increment) Polje za povezivanje sa drugim tabelama
Current_revision Integer Polje za povezivanje sa tabelom verzija
Active Boolean Pokazuje da li je sadržaj objavljen ili nije
Secure Boolean Da li je sadržaj dostupan samo autorizovanim korisnicima
Parent Integer Povezanost sa roditeljskim sadržajem
Order Integer Polje za sortiranje sadržaja
Author Integer ID korisnika koji je kreirao sadržaj
Type Integer ID tipa sadržaja za proširenje podataka
Path Varchar Polje za čuvanje čitljivog URL-a
Sada možemo izvršiti SQL upit i kreirati tabelu Content:
CREATE TABLE `content` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `current_revision` int(11) NOT NULL,
  `active` tinyint(1) NOT NULL,
  `secure` tinyint(1) NOT NULL,
  `parent` int(11) NOT NULL,
  `order` int(11) NOT NULL,
  `author` int(11) NOT NULL,
  `type` int(11) NOT NULL,
  `path` char(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;