Hozzászólás hivatkozása hierarchikus, több oldalas megjelenítés esetében

szato képe

Adott:
- Egy "Legfrissebb hozzászólások" blokk.
- A hozzászólások több oldalon (lapozóval, hierarchikusan) jelennek meg és a legfrissebbek vannak hátul.

Feladat:
A legfrissebb blokkban, egy hozzászólás cím hivatkozása a megfelelő oldalra/hozzászóláshoz vigyen.

Probléma:
Új hozzászólás esetében az utolsó oldalra kell vinnem a látogatót. Különösebben ez nem is gond, egy kis trükkel megoldható: az URL-t felparaméterezem egy nagy page azonosítóval, pl.: ...?page=999, így biztos az utolsó oldalt nyitja.
A probléma akkor áll fenn, ha az új hozzászólás válasz vmelyik előzőre - pl. több oldal esetében az első oldal első hozzászólására válaszol. Így az első oldalra kellene navigálni a felhasználót.

Milyen megoldási javaslataitok van erre? Nekem ezek jutnak eszembe:
1) lekérni a blokk megjelenítésekor, hogy a hozzászólás hányadik oldalon jelenik meg - ez nekem nem tetszik, mert szerintem felesleges erőforrást emészt. Megjelenített hozzászólásonként:
- lekérni, hogy a hozzászólás node-jához mennyi hozzászólás van (SQL),
- lekérni, hogy az aktuális hányadik (vszínű ehhez is SQL kell)
- hozzászólások/oldal -ból kiszámolni, hányadik oldalon van.
2) quote module + hierarchia kikapcsolása - így mindig az utolsó oldalon jelenik meg a legfrissebb hozzászólás és ott van az idézet is - a hozzászólás amire válaszolt. Nem megfelelő, mert hierarchiás megjelenítést ki kell kapcsolni (ami adott).
3) írok a drupal.hu-ra és hátha kiderül az ideális megoldás :)

Drupal verzió: 
pp képe

Az a gond, hogy a # után rész nem kerül elküldésre a szerver felé, tehát azt a szerver oldalon nem tudod kideríteni. Az egyik lehetőség, hogy saját modult fejlesztesz mint amit az egyben írtál. A másik, hogy nem xdb, hanem 100x darab hozzászólást jelenítesz meg. ;)

Sajnos a Drupal értelmes eszmecserékre lett kitalálva nem végnélküli flamelésre. ;)

pp

0
0
szato képe

Persze a "jó megoldás" mindig relatív - néha meg szubjektív :)
Vszínű a v1 nem végtelen számú blog/blokk esetében, jó cachel párosítva nem is olyan rossz.
Egyébként #utáni részt akár plusz URL paraméterként is oda lehet biggyeszteni, nem? Segítene bármiben is? Ebben az esetben valójában csak a hozzászólás azonosítójáról van szó.
Elméletileg az is egy megoldás, hogy plusz paraméterben nem a comment ID-t, hanem az eredeti üzenet (amire a válasz történt) azonosítóját küldöm vmi egyedi megjelenítés oldalra - ahol a cikk, alatta pedig csak az eredeti üzenet, és a hozzá tartozó válaszok vannak. Ez a megjelenítés lehet egy views blokk pl.
Ez szerintem több bonyodalmat okozna és megbontaná a megjelenítés egységét is - normál cikket nézve minden hozzászólás megjelenik, a blokkból klikkelve meg csak 1-2, és ez zavaró.

Szóval maradok az egyesnél:
- saját module
- vagy views lekérés eredményét használva, vagy a module-ban saját query
- az eredmény blokként visszaadva

Teljesítmény optmalizálás szempontjából finomítani lehet:
- a blokk tartalmát (cache) file-ból (pl. modulneve_delta.html) kéri le
- amennyiben nem létezik a file: lefutnak a queryk és a kimenet blokként visszaadva megjelenik, plusz file-ba írás
- nodeapi-ban: hozzászólás beküldés/törlés/módosítás esetében a cache file törlése

0
0
aboros képe

ha mondjuk views blokkot választasz, azt a rendszer cacheli majd szépen.
ha saját modulodban saját lekérdezéssel állítod elő a blokkod, akkor is cacheli a drupal.
nem kell neked fileba írogatnod, gondold el, a világ egyik legjobb cms frameworkjéről beszélünk, az hogy tud kesselni, tök alap.

szépen is néznénk ki ha minden blokkra nekem kéne megoldani, hogy fileba kiírás meg ilyenek.. szerencsére nem így van.

0
0

-
clear: both;

szato képe

Tudok róla, de ezzel megspórolok egy adatbázis lekérést ;) Persze ebben az esetben nincs (sok) értelme, egyetértek.
A legjobb vmi boost module féle lenne - de azt ugye pl. felhasználókra szabni nem lehet.

0
0
aboros képe

én kérek elnézést, nem volt még dolgom olyan nagy látogatottsággal, hogy egy lekérdezést megéreztem volna.

0
0

-
clear: both;

pp képe

http://drupal.org/node/26966

Szóval nem ismeretlen a probléma és dolgoznak rajt. Ha van időd akkor segíts a tesztelésében.

pp

0
0
husztisanyi képe

A javasolt módszerek nekem nem működtek, vagy nem jól állítottam be őket. : (
Van valakinek D6-ra használható megoldása?

Views-zal listáztatom ki a hozzászólásokat, oda kellene működő comment link.

0
0
husztisanyi képe

Végül is a Permalink nevű modul segített, a Views-nál pedig az "Output this field as a link" beállításnál a permalinkkel egyező output-ot adtam meg: comment/[cid]#comment-[cid]
/A [cid] valójában egy "Hozzászólás: Azonosító" mező./

0
0