Sziasztok!
Előrebocsájtom, hogy nem vagyok adatbázis, PHP, Drupal, vagy egyéb "mágus", csak próbálkozom a mélyebb ismeretekkel.
Készítettem egy kis apró modult Drupal 6.x alá, elérhető itt:
http://degy.hu/nodepoints.zip
Arra való, hogy az egyes tartalmaknál megjelenít egy "+1" és "-1" linket (a tartalomtípusok beállításainál lehet engedélyezni), és ezekkel pontozni lehet az adott tartalmat. Az adatbázisban eltárolja az adott tartalom pontértékét, illetve a leadott pontok számát.
Szeretném, ha megnéznétek, hogy milyen hibák és hiányosságok találhatóak benne, esetleg mire érdemes figyelni a későbbiekben.
Természetesen a modul több sebből vérzik, pl. nem tudtam megoldani, hogy a linkre kattintva ne navigáljon el a rendszer (így üres oldal lesz, de az üzenet a főoldalon megjelenik, érdemes a linkre az "új lap nyitása" módon kattintani), hanem maradjon az adott oldalon. Azt pedig végképp nem tudtam megoldani, hogy az egész JQuery -vel menjen, így a tartalom mellett megjelenítve a pontok számát rögtön változzon, ha adok neki pontot.
Ezekkel még messze lehetne javítani, de ehhez még "kicsi" vagyok, esetleg ha valaki meg tudja mutatni érthetően a megoldás menetét (vagy el tud rá vezetni), és van kedve/türelme hozzá, azt megköszönöm, biztos sokat tanulnék belőle.
Azt még megírom hozzá, hogy az adott tartalom szerkesztésénél le lehessen tiltani a tartalom pontozását, a tartalom törlésénél törölje a táblából a neki leadott pontokat is, esetleg 0 kezdőértékre vissza lehessen állítani a pontokat és a darabszámukat.
Köszönöm a segítséget! :)
Érdemes lenne egy pillantást
Érdemes lenne egy pillantást vetned a fivestar / jrating modulokra. Azok jó példák, és azt valósítják meg, amit Te is szeretnél.
fivestar -t néztem
A fivestar modult néztem, viszont a kódja elég bonyolult volt ahhoz, hogy (rögtön) értsem, hogy mit miért (és miért pont úgy) csinál.
Viszont mindegyik a VotingAPI -t használja, én pedig úgy gondolom, ez megoldható anélkül is, illetve azt még nem is portolták teljesen Drupal 6 alá.
Választ szeretnél? - Új kérdés, új téma - Tesztoldal - Trollkezelés - Frissítés
linkre kattintva ne navigáljon el a rendszer
probaltad a drupal_goto fuggvenyt beszurni a nodepoints_cucc vegere?
nem rossz ötlet, csak...
Nem rossz ötlet, de pl. ha a főoldalon kattintanak rá, akkor ezzel elmegy az adott node -hoz (persze lehetne figyelni, hogy hol kattintottak rá), meg mi van akkor, ha pathauto -val felülbírálták a "node/" útvonalat?
Választ szeretnél? - Új kérdés, új téma - Tesztoldal - Trollkezelés - Frissítés
hibák és hiányosságok
coder modul. tudom, hogy magadnak irod, mindegy hogyan nez ki, de ha mar masnak is meg akarod mutatni, legyen formas az a kod (igaz, hogy ez szepen olvashato, de szerintem meg fogsz lepodni)..
nem ertem miert hasznalsz DELETE, INSERT utasitast egymas utan. mi a gond az UPDATE-l?
hat engem a hideg razott ki a magyar szovegektol a drupal kodban, de ezt nem rohatom fel neked..
en adnek default erteket a $point valtozonak
function nodepoints_cucc($nid, $point = 0)
mivel az url elerheto anelkul is, hogy rakattintanal, egy ilyen default ertek segit vegiggondolni, hogy lefedtel e minden eshetoseget..
a menu definicioba beletennem ezt is:
'access callback' => 'user_access',
drupal 6.2 ota sokat lehet szivni, ha kimarad..
nem tudom mit talalhatnek meg ilyen rovid kodban. alapvetoen jol nez ki, es elmeletileg mukodik is (ki nem probaltam)..
egy felhasználó, egy szavazat
Tudnátok segíteni abban, hogy milyen módon oldjam meg, hogy egy felhasználó csak egyszer szavazhasson?
Esetleg hozzak létre egy másik táblát, eltárolva benne a felhasználók által adott pontokat, majd az uid szerint (ha már szerepel benne), akkor ne vegyem fel újra a szavazatot?
Választ szeretnél? - Új kérdés, új téma - Tesztoldal - Trollkezelés - Frissítés
másik táblát
hat valahogy ugy, hasonloan ahogy a drupal a {history} tablat hasznalja.
A votingAPI modulba kellene tenyleg belenezni, szerintem abban mar jol atgondolt otletek vannak, amitol jobbat hirtelen nem fogunk kitalalni..