Dinamikus "hálózatok" adatbázissal hogyan?

pante képe

Sziasztok!

Van egy alap Drupal7 portálom. Azt szeretném megcsinálni, hogy legyenek űrlapok melyeket ki lehet tölteni és valamilyen logika mentén ezeket össze tudjam kötni egy adatbázisban, ezeket tudjam szűrni valamilyen feltétel szerint és tudjak bennük keresni is.

A problémám az lenne, hogy fogalmam sincs, hogy kezdjek neki. Ehhez milyen modulokra lenne szükségem? Illetve milyen kulcsszavakkal tudnék rákeresni a weben a megvalósításukra?

Elnézést, hogy a témám címe pontatlan, de nem tudtam jobbat kitalálni. Adatokat szeretnék bevinni és közöttük kapcsolatokat építeni. Konkrétan egy tanár-tantárgy nyilvántartóról lenne szó, ahol egy tanár oktathat több tantárgyat is, illetve egy tantárgyat több tanár is, ez az adatbázis űrlapon keresztül bővíthető legyen, lehessen tantárgyak és tanárok között keresni, illetve szűrni valamilyen feltétel szerint.

Köszönöm előre is a segítségeteket!

Drupal verzió: 
Phoere képe

Szerintem túlbonyolítod.

Mondjuk a tanárokat felveszed felhasználónak (vagy egy tartalomtípusnak), a tantárgyakra pedig létrehozol egy taxonómia szótárt.
A felhasználóhoz/tartalomtípushoz hozzáadsz egy kifejezés hivatkozás mezőt, a ami a tantárgy szótárral van összekapcsolva. A kifejezések száma korlátlan legyen.

Ezt követően amikor létrehozol egy tanárt, hozzáadsz annyi tantárgyat ennél a mezőnél, amennyit kell. Természetesen a következő tanárnál ismét megadod a tantárgyakat - akár ugyanazokat.

Ezzel az adatbáziban szépen benne lesznek a tanárok és a tantárgyak és a kapcso9lat is meg lesz közöttük. Hogy azután ezeket hogyan jeleníted meg, hogyan oldod meg a keresést, az már egy következő lépés.

1
0

Csökönyi Ferenc

ipeto képe

Na, úgy látom, népszerű feladat ez manapság :) Attól függően, hogy melyikről milyen információt kell tárolni, ki tartja karban a dolgokat, illetve melyik szereplőnek milyen jogosultságokat kell biztosítani, szerintem többféle megközelítés létezhet:

  1. Ha központi adatkarbantartás van, és mindkettőről viszonylag sok információt kell tárolni, akkor a tanár és a tárgy is lehet 1-1 tartalomtípus, amelyek között az entity reference (vagy régebben a node reference) modullal lehet kapcsolatot teremteni.
  2. Ha mondjuk a tantárgy tényleg csak "címkeként" működik, akkor az kezelhető taxonómiaként
  3. Ha elvárás, hogy a tanárok maguk, önálló felhasználóként szerkesszék az adatlapjukat (vagy bármi mást), akkor azt célszerű a profile2 modulban kezelni. (Lehet tartalomtípus is, de az bonyolultabb, éppen ezzel szívok.
  4. Aztán még szóba jöhet alternatívaként az Organic Groups modul, lásd az előző pontban hivatkozott oldalt.
  5. Bármi is lesz a megoldás, szinte biztosan szükséged lesz a Views modulra az adatok lekérdezéséhez, listák létrehozásához.
1
0
pante képe

Úgy szeretném, hogy a hallgatók is tudjanak tanárokat és oktatott tárgyakat felvinni, illetve ezt a kettőt összekapcsolni. Illetve Views képes arra, hogy a tárgyak hasznosságát osztályozhatja bárki, a pontszámokat átlagolja és egy toplistába rendezi?

0
0
Phoere képe

A hallgatók vihetnek fel tanárokat??? Szerintem nagyon rossz irányból közelíted meg, amit akarsz - vagy legalábbis én nem tudom elképzelni, hogy mit is szolgálna az oldalad.

A tanárokat és a tantárgyakat - normál helyzetben - egy adminisztrátor vihet fel, nem a diákok.

Tehát írj valamit arról, hogy mi a célja ennek az egész drupal oldalnak, amit csináltál.

1
0

Csökönyi Ferenc

ipeto képe

Az értékeléshez van egy csomó célmodul, lásd pl. itt: http://www.drupal4u.org/tips-and-tricks/best-drupal-rating-modules Én egyiket sem használtam még, szóval ajánlani nem tudok. De elvileg úgy is megoldható, hogy egy újabb tartalomtípust (Értékelés) hozol létre, ami kapcsolható a Tárgyhoz és Oktatóhoz is. Az eredmények összesítése szerintem megoldható a views-zal, de lehet, hogy a fent említett modulok is tudják ezt.
Azt én nagyon átgondolnám, hogy a felhasználók vihessenek fel tárgyakat és oktatókat. Láttam már olyat (http://www.markmyprofessor.com), hogy kisebbfajta káosz uralkodott el: ugyanaz az oktató/tárgy többféle néven szerepelt, azonos nevű oktatók összemosódtak egybe... Vagy csak erős tartalmi moderálással.

0
0
pante képe

Köszönöm, megnézem az oldalt és kipróbálom a modulokat.

Igen, jó a hozott példa (markmyprofessor.com) valami hasonlót szeretnék én is, csak nem tudom milyen kulcsszavak alapján keressek a Google-on és a Youtube-on (sok jó how-to videó van Drupalra, csak meg kéne találni őket...)
Arra gondoltam, hogy a tárgyakat és tanárokat id-vel kötném össze, és a user vihetne fel új tanárt vagy új tárgyat (de csakis moderáció mellett) így el lehetne kerülni a káoszt. De ehhez az kell, hogy a user ki tudja választani egy listából, amit felhoz neki a rendszer és ne saját néven írja be, mert borul a rendszer. (pl. itt drupal.hu-n új fórum témánál a modulkereső box, ami pár karakter lenyomása után már fel is hozza, amit ki kell választani)

0
0
ipeto képe

A drupal.hu-n a modulkereső mező egy automatikusan kiegészülő mező, ami a valamire (felhasználó, tartalom, taxonómia-kifejezés) hivatkozó mezőtípusok kitöltéséhez alapból rendelkezésre áll a drupalban, tehát ezen nagyon nem kell agyalni.

A feladatodhoz meg szerintem először azt kellene tisztázni, hogy az egyes tartalmakhoz (tárgy, oktató, értékelés...) milyen adatokat akarsz eltárolni, ill. milyen felhasználótípus(oka)t szeretnél, és melyiknek mit lenne szabad csinálni.

0
0
pante képe

Az a baj, hogy hirtelen halvány gőzöm sincs, hogyan lehetne ezt szépen, elegánsan megcsinálni.
Az adatok feltöltését forms modul és egyéni tartalomtípus segítségével megoldanám, de a különböző node-ok összekötését passzolom.
Pl. Adott X tantárgynál kilistázódik mely tanárok tartják, én hozzáadok egy új tanárt, akinél megadom hogy X tárgyat is tart, ekkor jelenleg meg az X tárgy oktatóinál a tanár neve. Szóval ilyen dinamikusságot szeretnék.
Esetleg van rá valami webes sample vagy Youtube videó vagy ilyen step-by-step tutorial? Nem tudom, hogy keressek rá a Google-ben se magyarul, se angolul, mert az adatbázisok kifejezésre általában Drupal telepítéssel kapcsolatos dolgokat hoz fel, illetve adatbázis hibákat.

0
0
Phoere képe

Mivel még mindig nem világos, hogy pontosan mit is akarsz ezzel az oldallal ezért egy változat. (Amit akarsz, nagyon egyszerűen össze lehet hozni - ha már ismered legalább alapszinten a Drupalt. )
- egy tartalomtípus: "tanár"
- egy taxonómia szótár: "tantárgy" - a 7-es Druplaban már a szótár kifejezései is kaphatanak mezőket, így magán a tantárgy nevén kívül egyéb adatok is hozzákapcsolhatók (pl. tantárgytípus reál/humán stb. - ez csak egy ötlet).
- A "tanár" tartalomtípushoz felveszel egy mezőt, amely "kifejezés hivatkozás" típusú és a "tantárgy" szótárra állítod be. Ha a tantárgyakat nem akarod előre felvenni a szótárba, akkor az "Autocomplete" beviteli típust állítsd be. Ez működik itt is a téma létrehozásánál - de ez esetben csak a tantárgy nevét tudja így menteni, aki új tantárgynevet ír be!!! mezőt
- Kell a Views modul, amellyel majd megjeleníted a az adatokat.

A Views modul segítségével tudsz ún. nézeteket létrehozni. Ez nem egy egyszerű dolog, de ha ráérzel, akkor csodákra képes. (Nekem mondta valaki anno itt a Views-ról: első ránézésre olyan bonyolult, mint egy űrhajó vezérlő pultja. De ha már kiismered magad rajta, akkor szinte bármit megoldasz vele.)
A nézetben tudod megjeleníteni a tanár adatait, köztük a tantárgyainak nevével.
Ugyanakkor tudsz létrehozni nézetet tantárgyakra, amely egy-egy tantárgy adatait jeleníti meg, köztük az azt tanító tanárpok neveit. Természetesen, ha új tanár kerül felvitelre, akkor a lista frissül, mivfel ez nem egy statikus HTML oldal, hanem a megnyitás pillanatában kerül összeállításra az éppen aktuális adatokból.

A Felhasználók jogosultságánál kell beállítani, hogy melyik szerepkör tud létrehozni "tanár" tartalmat, ki vihet fel új tantárgyat a szótárba - logikusan, aki tanárt is felvihet, különben nem fog működni, amit akarsz.

Amit tehát tanulmányozz a neten:
- taxonómia szótárak működése
- autocomplete kifejezés lista mező
- Views modul használata

Ez tehát egy lehetséges megoldás a problémádra, de nem az egyetlen.

A végső célt ismerve lehet kiválasztani a legoptimálisabb megoldást:
- "tanár" tartalomtípus, "tantárgy" taxonómia kifejezés (ez van a mintában)
- "tanár" felhasználó szerepkör, "tantárgy" taxonómia kifejezés
- "tanár" felhasználó szerepkör, "tantárgy" tartalomtípus (ekkor az Entity reference modul is kell, az kapcsolja össze egy mezőn keresztül ezeket.)

Ennél többet az ismert információk birtokában nem tudok segíteni.

2
0

Csökönyi Ferenc

pante képe

Köszönöm, pont ilyen posztra gondoltam, hogy elindít egy úton és tartalmazza, hogy mely modulok használatát kell áttekintenem. Akkor ezeknek utánaolvasok és megpróbálok kihozni valamit, eddig pl. a taxonómiát nem használtam.

0
0