node reference a másik irányból

jamji képe

Van két tartalomtípus:
-üzlet
-árucikk

Az árucikknél node reference-ként ott az üzlet, hogy hol érhető el. Egy árucikk több üzlethez tartozhat.
Az üzlet típusnál semmiféle mező sem tartalmazza az árucikket, mégis meg kéne jeleníteni az üzlet teljes nézetében a kapcsolódó árucikkeket. Hogyan?

Drupal verzió: 
aboros képe

nagyon általános hiba ez és szerintem teljesen rossz megközelítés. mindig mindenki mindenhol a cck -t és a mezőket erőlteti és közben nem látja a fától az erdőt. ezt például miért node_reference -el??? taxonomy meg dísznek van? :)

én úgy próbálnám, hogy:

  • van egy szótárad, hogy 'üzletek', beállítod ahogy gondolod. (nincs hierarchia, kötelező, többet is lehet jelölni, mittudomén)
  • nat modult is beüzemeled (http://drupal.org/project/nat) és megmondod neki, hogy ha új 'üzlet' típusú tartalom jön létre, akkor automatikusan jöjjön létre neki a megfelelő term az 'üzletek' szótárban.
  • a termékeket már úgy küldöd be, hogy az 'üzletek' szótárból kiválasztod a term -eket, ahol kapni lehet az adott terméket.

hogy magát az üzletet hogyan kötöd a term -hez, arra tucatnyi ötletet tudok elképzelni, nekem eddig az tűnt praktikusnak, hogy magát az 'üzlet' típusú tartalmat is beleteszem a saját maga term -jébe az 'üzletek' szótárban.

ezek után sokkkkkal könnyebb dolgod lesz a szűrésekkel, ugyanis a taxonomyt pontosan erre találták ki. csak a cck mindenkinek elveszi az eszét és mindent mezőbe akar megcsinálni, ha kell, ha nem. pedig a mezők alapján szűrögetés enyhén szólva macerás, pláne a term -ek alapján szűrögetéshez képest. valójában, ha más taxonomyt nem használ az oldalad, akkor 'csak' a taxonomy/term/x nézetet felülírod és kész is vagy.

szerintem a node_reference mezőnek akkor van értelme, ha egy node -ból egy max 2-3 másik node -ra akarsz hivatkozni, azt se túl gyakran. ha egyik node -ból sok másikra akarsz hivatkozni és ráadásul minden esetben, akkor már nem valami használható, akkor az már taxonomy!

0
0

-
clear: both;

Illyés Edit képe

taxonomy meg dísznek van? :)

Nem, de egy term-nek csak neve, leírása, szinonímái, szülői/gyermekei vannak, a node típus pedig tetszés szerint bővíthető.

hogy magát az üzletet hogyan kötöd a term -hez, arra tucatnyi ötletet tudok elképzelni

Hallhatnánk ebből a tucatból egy párat?

nekem eddig az tűnt praktikusnak, hogy magát az 'üzlet' típusú tartalmat is beleteszem a saját maga term -jébe az 'üzletek' szótárban.

Nekem meg pont nem tűnt annak, elég szerencsétlenül jön ki, hogy a 45. sz. csemegebolt benne van a 45. sz. csemegebolt nevű kategóriában (az üzlet által árult termékek mellett). Sminkben ezt a kategóriát el kell rejteni, és ha több száz üzleted van, amelyeknek sok a tulajdonsága, akkor nagyon könnyen egy kezelhetetlen taxonómia-dzsungellel kell dolgoznod. Mondjuk listázd ki az 50 és 100 m2 közötti alapterületű, 5 alkalmazottnál többet foglalkozató üzleteket, stb. Minden tulajdonságra, ami alapján később le akarsz kérdezni, kategóriákat kell létrehoznod, míg node típus esetén van egy alapterület meződ és kész.

ezek után sokkkkkal könnyebb dolgod lesz a szűrésekkel, ugyanis a taxonomyt pontosan erre találták ki.

Egyszerű szűrőfeltételek esetén valóban. A világ viszont gyakran elég bonyolult.

a mezők alapján szűrögetés enyhén szólva macerás,

Miért is? Eddig nekem semmiféle nehézséget nem okozott.

szerintem a node_reference mezőnek akkor van értelme, ha egy node -ból egy max 2-3 másik node -ra akarsz hivatkozni, azt se túl gyakran.

Miért ne lehetne 1 node-ból több százra, vagy több ezerre hivatkozni node reference-szel? Miért jobb ebben az esetben több ezer term, mint több ezer node? (Egyáltalán: be tudod tölteni azt a sok kategóriát a memóriába?)

Taxonómiát érdemes használni, ha a kategóriának csak neve van, esetleg leírása:

  • Piros (term name)
  • #ff0000 (description)

(Megjegyezném, hogy ha meg is akarjuk valahol jeleníteni a description mezőt, akkor az már bonyolultabb, mintha egyszerűen egy node mezője lenne.)

Ha több dolgot is el tudunk a kategóriáról mondani, főleg, ha ott változó értékek lehetnek (alapterület, alkalmazottak száma) akkor már node típust érdemes csinálni. Továbbá node-ot érdemes használni akkor, ha a webhelyen a munkafolyamat ezt megkívánja – jogosultságkezelés, verziókezelés, időzítés, csatolmányok és még egy csomó szolgáltatás a Drupalban könnyebben megoldható node-okkal mint term-ekkel.

Mivel nem tudjuk, miféle webhelyet, alkalmazást fejleszt a kérdező, ezért nem is lehet egyértelműen kijelenteni, hogy számára a CCK vagy a Taxonomy a jobb megoldás.

Hogy a kérdésre is válaszoljunk, az adott node-ra node reference útján hivatkozó node-okat Views modullal tudod kilistázni, és Viewfield modullal beilleszteni a szülő node-ba. Egyszer csináltam is erről egy videót, csak most a honlapom költözése miatt nem elérhető, ha küldesz egy üzenetet a kapcsolati űrlapomon, akkor átküldöm.

Szerk.: Sajnos sikerült a költözés közben úgy elpakolni a fájlokat, hogy most nem találom őket. :( Viszont közben már a Drupal.org kézikönyvbe is bekerült a téma.

0
0
aboros képe

szerencsére a drupalban mindenkinek megvan a lehetősége, hogy a saját szájízének megfelelő logika szerint építsen fel dolgokat, általában egy feladatnak számtalan megoldása lehetséges és legtöbbször nincs olyan, hogy általánosan meg lehetne fogalmazni, hogy az egyik megközelítés jó a másik meg rossz. ezt nyilván te is tudod, nem okításnak szánom. :)

mindemellett tényleg nem volt valami szép tőlem, hogy a problémafelvetésre megoldás helyett a saját logikám erőltetését küldöm be válaszként, elnézést kérek, hajlamos vagyok erre, igyekszem elhagyni majd ezt a szokásomat. (bizonyos szempontból ez offolás végülis)

általában próbálok minél kevesebb modult használni (újabban) igyekszem kerülni a viewst. (félek is a views in core iránytól) ezért nem szeretem a node_reference -es megoldást, mert akkor már kelleni fog a views meg akkor már viewfield is vagy insertview és sokszor ezt csak egyetlen funkció (termékek üzletekhez kapcsolása, egy-kettő max 3 nézet) miatt nem tartom hasznosnak. legtöbbször csak túl 'robosztus' lesz tőle a dolog. (nekem, az én munkáim szintjén)

a munkafolyamattól persze nagyon sok függ, sokcsoportos, sok adminos, roppantösszetett munkafolyamatos oldalt még nem csináltam, talán ezért nem tértem még át a node_reference technikára.

értem az indokokat amiket felsoroltál és elgondolkodom rajtuk, mindenestre sajnálom, ha butaságot írtam és az offért is bocs.

0
0

-
clear: both;

Illyés Edit képe

Nem írtál butaságot, csak a hozzászólásod címe az volt, hogy "hibás megközelítés". Nem tudjuk, hogy mi a feladat, ezért azt sem tudjuk eldönteni, hogy mi a helyes megközelítés. Az egyik legsúlyosabb döntés, amit a munka kezdetén meg kell hozni az az, hogy CCK vagy Taxonomy vagy valami saját fejlesztés. Ezután ha már jó sok minden elkészült a webhelyen, és/vagy jó sok tartalmat feltöltöttek, akkor utána már nehéz váltani (bár nem lehetetlen).

0
0
Sweetchuck képe

Már másokban is felmerült ez az igény, és volt próbálkozás a megvalósításra, de a Drupal 5-öshöz nem készült el. http://drupal.org/project/ReferencedByFilter (nem tudok más modulról, de lehet hogy van.)
D6-hoz a views2-őt lehet használni erre a célra. (Én még nem próbáltam)

Még régebben én is elkezdem írni egy ilyen D5-ös modult, - nem volt tudomásom a ReferencedByFilter-ről - de amikor olvastam a készülő Views2-ről akkor leálltam vele. A nagyon alap dolgok működnek, de a Views támogatása minimális.

0
0
jamji képe

Belehegesztettem a node tpl fájljába egy nézet megjelenítő függvényt, aminek paraméterként meg tudtam adni, hogy mit is jelenítsen meg, de a viewfild pont ezt csinálja, csak valahogy eddig elkerülte a figyelmemet.

Köszönöm!

0
0