[[planning-data-types]]

=== Alapfogalom: a tartalomtípusok alapjai

[role="summary"]
Milyen logika mentén szervezi a Drupal a webhely adatait, és hogyan tudjuk ezt tartalmaink tárolására kihasználni.

(((Entitás,áttekintés)))
(((Taxonómia kifejezés,áttekintés)))
(((Szótár,áttekintés)))
(((Tartalom,entitástípus)))
(((Entitástípus,áttekintés)))
(((Entitásaltípus,áttekintés)))
(((Blokk,entitástípus)))
(((Hozzászólás entitástípus,áttekintés)))
(((Kapcsolatfelvételi űrlap entitástípus,áttekintés)))
(((Űrlap entitástípus,áttekintés)))
(((Tartalom entitástípus,áttekintés)))
(((Egyéni blokk,entitástípus)))
(((Mező,áttekintés)))
(((Felhasználói fiók entitástípus,áttekintés)))
(((Modul,Comment)))
(((Modul,Contact)))
(((Modul,Taxonomy)))
(((Modul,User)))
(((Modul,Node)))
(((Modul,Custom Block)))
(((Modul,File)))
(((Comment modul,entitástípus)))
(((Contact modul,entitástípus)))
(((Custom Block modul,entitástípus)))
(((File modul,entitástípus)))
(((Taxonomy modul,entitástípus)))
(((User modul,entitástípus)))
(((File modul,entitástípus)))

==== Szükséges előismeretek

* <<understanding-data>>
* <<understanding-modules>>

==== A tartalmi entitás fogalma

Egy _tartalmi entitás_ (vagy ahogy gyakran csak rövidítjük, egy _entitás_) olyan adat, aminek a célja, hogy a látogatók elé kerüljön: lehet sima vagy HTML-formázott szöveg, képek, fotók, csatolt fájlok, bármi. Ezen tartalmi entitások meghatározása általában az alaprendszer moduljaiból ered, de sok olyan közösségi modul is létezik, amely egy adott célú tartalmi entitást definiál.

Fontos még, hogy ezek _entitástípusokba_ vannak sorolva, amelyeknek más-más célja van, és akár teljesen eltérően is megjelenhetnek a webhelyen. Ha ez eddig túl egyszerűnek hangzott volna, akkor sok entitástípus továbbosztódik _entitásaltípusokra_, melyek lehetővé teszik apróbb (például megjelenítést befolyásoló) különbségek megvalósítását közöttük. A könnyebb megértés végett íme egy áttekintő táblázat néhány gyakori entitásról:

[width="100%",frame="topbot",options="header",grid="rows"]
|=============================================
| Entitástípus | Entitásaltípus | Felelős modul | Fő célja

| Tartalom egy eleme | Tartalomtípus | _Node_ modul
  | Ez fogja kitölteni a webhely oldalainak legnagyobb, középső területét.
| 3+| *Példa:* A termelői piac példánknál maradva 3 altípusát hozzuk létre ennek az entitásnak: egy _Egyszerű oldalt_ (amit majd az olyan sima szöveges oldalak létrehozásához fogunk használni, mint a Rólunk, Impresszum és Küldetés), egy _Árus oldala_ (amit már nemcsak mi, adminisztrátorok fogunk tudni szerkeszteni, hanem szerepkörük révén a kereskedők is a sajátjaikat), és egy _Recept oldalt_ (amit pedig már dinamikusan, mezőhivatkozásokból állít elő a Drupal). +
{nbsp} +
{nbsp} +

| Hozzászóláslánc | Hozzászólástípus | _Comment_ modul
  | Felhasználók személyes megjegyzései, amelyeket leggyakrabban tartalmakhoz (lásd előző sor) fűznek.
| 3+| *Példa:* Egy blogon a naplóbejegyzések alatt gyakran lehet kommentelni. A mi termelői piac webhelyünkön azonban nem fogunk hozzászólásokat használni. +
{nbsp} +
{nbsp} +

| Felhasználói fiók | (nincs altípusa) | _User_ modul
  | Minden, a webhelyre bejelentkezési joggal rendelkező személlyel kapcsolatos adatot ilyen entitásként tárolunk.
| 3+| *Példa:* Ma már minden dinamikusan működő webhelyen van valamilyen felhasználói profil: a legegyszerűbb a felhasználónév és e-mail cím kiírása, de a közösségi hálózatok természetesen jóval részletesebb adatlapokat biztosítanak. +
{nbsp} +
{nbsp} +

| Egyéni blokk | Blokktípus | _Custom Block_ modul
  | Általában rövidebb szövegrészletek kisebb képekkel, amelyeket gyakran az oldalsávokon, vagy fej- és láblécekben helyeznek el.
| 3+| *Példa:* A termelői piac webhelyén készítünk például egy _Nyitvatartás_ blokkot a jobb oldalsávra. +
{nbsp} +
{nbsp} +

| Taxonómiakifejezés | Taxonómia-szótár | _Taxonomy_ modul
  | Leginkább a többi fajta entitás (lásd fentebbi sorok) címkézésével azok kategorizálására használatos.
| 3+| *Példa:* A termelői piac webhelyén osztályozhatjuk a _Recept_ tartalomtípus elemeit egy taxonómia-szótárral (mondjuk legyen a neve _Szükséges összetevők_), amiben két kifejezés (répa és paradicsom) van felvéve. Egy blogon a bejegyzéseket akár két, egymással párhuzamosan működő szótárral is címkézhetjük: míg a _Téma_ szótár három kifejezése (szakmai, hobbi, magánélet) a poszt témaköre szerint, addig a _Címkék_ szótár változó kifejezései pedig a megemlített fogalmak alapján csoportosíthatják ugyanazt a blogbejegyzést. +
{nbsp} +
{nbsp} +

| Fájl | (nincs altípusa) | _File_ modul
  | Lehet például egy fotóillusztráció egy cikkhez vagy egy letölthető jelentkezési lap PDF-ként, a lényeg, hogy a webhely szoftvere kezeli.
| 3+| *Példa:* Példánknál maradva a _Recept_ és _Árus_ tartalomtípusok (lásd fent) egyaránt kínálhatnak képfeltöltési lehetőséget, amit a háttérben a webhely fájl entitásokként fog látni. +
{nbsp} +
{nbsp} +

| Kapcsolatfelvételi űrlap | Űrlaptípus | _Contact_ modul
  | Ezen az űrlapon keresztül a látogatók úgy írhatnak e-mailt a webhely üzemeltetőinek, hogy nem kell tudniuk hozzá a címzett e-mail címét.
| 3+| *Példa:* A termelői piac webhelyén is használunk kapcsolatfelvételi űrlapot.
|=============================================
{nbsp} +

==== Mik azok a mezők?
Így, hogy már alaposan átnéztük az entitástípusokat (első oszlop), jogosan merül fel a kérdés, hogy miben térnek el az altípusaik (második oszlop) egymástól? Elsősorban abban, hogy különböző fajta adatokat is képesek tárolni úgy, hogy közben megmaradnak ugyanannak a szülő-entitástípus gyermekének. Ez úgy lehetséges, hogy a _mezők_ eltérő készletéből épülnek fel.

Minden fentebb említett entitásaltípus tulajdonképpen nem más, mint mezők egy készlete.

Bár eddig talán úgy tűnhetett, hogy az adatokat maguk az entitásaltípusok tárolják, ez nem így van. Létezik ugyanis egy még mélyebb szintű építőelem, a mező. Ahogy neve is sejteti, ez már igen közel áll az adatbázisszintű mező fogalmához (csakhogy ezeket még a Drupal kezeli), és mint ilyen, természetesen ez is csak egyféle formátumú adatot tud tárolni – például dátumot, formázatlan szöveget vagy egy fájlt (arra mutató hivatkozásként, nem binárisan). Hasonlóan az entitástípusokhoz, mezőket is általában az alaprendszer moduljai definiálnak, de sok olyan közösségi modul is létezik, amely egy adott célú tartalmi entitást biztosít a létezőkön felül.

Adminisztrátorként mi magunk is tetszőlegesen rakhatunk össze új entitásaltípusokat a webhelyen elérhető mezőkből. Így a jövőben minden egyes elem, amit ebben az új entitásaltípusunkban mentünk majd el, mindig ugyanazokat a mezőket fogja tartalmazni.

Hogy jobban megértsük, térjünk vissza a fenti táblázat első sorában említett példánkhoz: az _Egyszerű oldal_ és _Árus oldal_ egyaránt tartalomtípusnak számít (hiszen hagyományos értelemben véve valóban a webhely tartalmai, csak külön fajtájúak). Sőt, még közös mezőjük is van: egy hosszabb szöveg begépelésére alkamas szövegmező, legyen a címe mondjuk _Bemutatkozószöveg_. Ilyenkor ha az _Egyszerű oldal_ típusból készítjük a termelői piac webhelyünk ismertető oldalát „Rólunk” címmel, akkor csak ebbe a hosszú szövegbeviteli mezőbe írhatjuk piacunk ismertetőjét, míg ha egy kereskedő szerkeszti az _Árus oldal_ típusból készült saját adatlapját, akkor – amellett, hogy ő is kitöltheti a _Bemutatkozószöveg_ mezőt saját köszöntőjével – azon látni fog még egy további _Cégnév_, _Logó_ és _Honlapom linkje_ mezőt is.

Végezetül összefoglalva talán már érthető, hogy amikor például a saját profiloldalunkon átállítunk valamit, tulajdonképpen nem teszünk mást, mint a mezők értékét definiáljuk abban az entitástípus–entitásaltípus–entitáselem metszetben.

==== Kapcsolódó témák

* <<planning-structure>>
* <<content-create>>
* <<structure-content-type>>
* <<structure-taxonomy>>
* <<user-concept>>
* <<block-concept>>

// ==== Egyéb források


*Közreműködők*

Írta és szerkesztette: https://www.drupal.org/u/jhodgdon[Jennifer Hodgdon] és https://www.drupal.org/u/gdunham[Grant Dunham]. Fordította: https://www.drupal.org/u/balu-ertl[Balu Ertl] (https://www.drupal.org/brainsum[Brainsum]).
