Weblabor fejlesztés - Hosszú témák követése
Sziasztok!
Már néhány alkalommal felmerült, hogy a többszáz hozzászólást tartalmazó témákat nehéz követni. Bár nem az én dolgom lenne, de szeretnék javaslatokat kérni erre a témára, hátha találkozott már valaki kész megoldással, vagy van valami jó ötlete!
(Nem utolsó sorban, ha bárki más fórumot akar csinálni, akkor ott is felhasználhatja ezeket a tippeket.)
■ Már néhány alkalommal felmerült, hogy a többszáz hozzászólást tartalmazó témákat nehéz követni. Bár nem az én dolgom lenne, de szeretnék javaslatokat kérni erre a témára, hátha találkozott már valaki kész megoldással, vagy van valami jó ötlete!
(Nem utolsó sorban, ha bárki más fórumot akar csinálni, akkor ott is felhasználhatja ezeket a tippeket.)
Lépcsőzetes
Azt nem tudom, hogy lehet-e külön a gyökér szintű hozzászólásokat limitálni, de azt lenne jó szerintem alacsony szinten (pl.20) tartani, mert sokszor új témába illő kérdést tesznek fel itt, ill. nem lesz 100 db 1 kilóméter hosszú szál. A személyes vitákat meg (pl. kinek hosszabb a szerkesztője :)) Hídvégi Gábor barátunk (vagy más) úgyis komolyan véleményezi.
Mindenképp hasznos lenne vmi etikett-oldal is, jobb, mint a mostaniak. (Nemrég még nekem is volt illendőségi kérdésem.) Ott le lehetne írkálni ezeket is, talán használna.
Szerintem jó, hogy
Igazad van,
Esetleg letölteni a teljes fát kéne, majd js-el összecsukni azokat a szálakat (gyökérelem marad), amelyikben "nincs zöld pötty". De ezt is kinyithatóra. Aki meg most nézi először a 200 kommentet, az így járt. Szerintem így jó lenne és nem is olyan nehéz megvalósítani.
Ritka
drupal
(persze tévedés joga fenntartva, csak beleéltem magam egy ilyen site gazdájának a szerepébe)
Így van
Hát nem tudom, plusz egy kis
Majd valamelyik nap csinálok egy greasemonkeyt erre, aztán meg van oldva a probléma...
Ne greasemonkeyt írj
Egyébként tudtommal a WL több egyedi fejlesztést is tartalmaz; de ez a szálkövetés alapfunkció a comments(?) modulban. (Nem vagyok Drupal-os, csak egy-kétszer kipróbáltam, lestem "tőle".)
Én nem tudom, legutóbb még
Mindjárt megcsinálom ezt az összecsukós js-t...
Több tagnak is van
Mindegy
Inferno, nem olyan rossz ám az a Drupal, legalábbis én sok apró varázslatot lestem el belőle (ötlet szintjén). Sokan azért szeretik, mert kb. percek alatt összeklettyolgatható belőle egy jó kis blog/fórum oldal. Mondjuk aki kellően beleássa magát a core-ba, az már nem menekül tőle - tisztelet a kivételnek -, én meg anélkül, hogy jól kiismerném, nem kezdem el használni. (De többször közel álltam hozzá.)
Nem azért mondom, hogy rossz
Lehet
Nekem valahogy szükségem van
js
Én egyelőre egy user scriptet
Egyelőre valami alap verziót létrehozok, aztán lehet még ötleteket adni hozzá...
update: notepad++ -ban csináltam, amikor elkészült töröltem a régi verziót, amiről kiderült, hogy az új :D nagyon vidám volt :D mindjárt kerítek valami IDE-t js-hez, a cloud9-et úgyis ki akartam próbálni... Most nézem, hogy ez a cloud9 egy online IDE (ami szerintem elvetélt ötlet), azért majd kipróbálom, de erre biztosan nem alkalmas. Kipróbálom aptanát eclipse pluginként, kíváncsi vagyok...
Az Aptana-val kapcsolatban
Alakul a cucc, már összecsuk
Nem sajátosság, hanem
A tartalom típusnál állítható egyébként. Létre kéne hozni egy flame (vitaindító) tartalom típust és arra beállítani, hogy ne legyen beágyazott a hozzászólás megjelenítés és csókolom. Aki meg flamelni akar az tol egy ilyen vitaindítót és hajrá van, lehet trollkodni.
pp
(a megoldás szövegezése a szerző személyes véleményét tükrözi az ilyen hosszú szálakról. Ne vitázz vele, felesleges, ő egy - gyakran önmegtartóztató - troll ilyen szempontból :D)
OK, akkor fogalmazzunk úgy:
ha be vagyunk lépve, akkor
$(function(){ var
RSS-en nem megy
Én RSS-en keresztül kapom a híreket és Thunderbirdben olvasom, szinte sosem bejelentkezve. 30 hozzászólásnál már kezd nehezen áttekinthető lenni, hogy mi az, amit még nem olvastam.
Nem lehetne egy olyan opció, hogy beszélgetésszerűen vagy időrendi sorrendben visszafelé jelenjenek-e meg a hozzászólások? Mert akkor csak átkattintanék, és elolvasnám a tetején az újakat.
Üdv:
Dávid
Az időrendi sem rossz ötlet,
Üdv!Ha a hozászolások csak
Ha a hozászolások csak visszafele lesznek olvashatóak, akkor törlöm magam! Egyébként nekem az, hogy folyamatosan beljebb van húzva a hsz. nem tetszik, mert mikor elérjük a válaszok miatt a 2 centis szélességet nagyon zavaró, hogy 10 karakter sem fér ki egy sorba. A kódblokkokat meg mindig oldalra kel görgetni soronként.
Az új hozászolásokat tenném a felső szintre, és az azokra adott választ a válaszokra adott válaszokkal együtt egyel beljebb húznám és kész. Fejlécben meg permalink a előzményre.
A kódblokkokat meg kattinthatóvá tenném, hogy megjeleníthető legyen nagyban is.
Lefejlesztem
Megpróbálom a végén
Pontosan mi a probléma? Nehéz
Nekem néha az utóbbi macerás
Nekem is, viszont nehezen
Az újakat viszonylag egyszerű
Amivel nekem gondom szokott lenni, hogy rajzolok :D
Este átküldöm janoszennek a userscriptet, ami összecsukja a nem új commenteket, remélhetőleg felteszi valamikor, vagy átírja olyanra, ami neki tetszik.
A másik, hogyha sok a kérdés-válasz, akkor nagyon kicsi lesz a box. Ezt talán úgy lehetne orvosolni, hogy a már olvasott szülő ágak szöveg részét és a behúzást eltüntetni. Ezt még nem tanulmányoztam, de szerintem megoldható.
A behúzást egy egyszerű css
A navigációt úgy is meg lehet oldalni, hogy minden kommentbe belinkeled a szülőt (vagy pl. minden olyan kommentbe, ami preorder bejárással adott korlátnál messzebb van a szülőtől).
Összegzés
1. Mivel a fát (behúzást) a HTML magában hordja (div-ben div és bal margó), aránylag egyszerű js-el megoldható, hogy az olvasott al-kommentek ne jelenjenek meg (vagy csak pl. a címük). Végig kell iterálni a gyerekeken és csak CSS-el eltüntetni, nem törölve a tartalmat. Szerintem felesleges külön fastruktúrát lekérni, stb., minden komment könyvjelzőzve van, ott az id.
2. U.ez a js meg kell oldja a kinyitást is, szerintem ezt úgy kéne, hogy az összecsukott szálak helyére összecsukáskor odatesz egy linket a kinyitásra. Itt megint csak a gyermekek CSS-ét kell visszaállítani.
3. A "két centis" kommentekre megoldás lehet az is, hogy x-edik mélység után nincs bal margó, én azonban inkább azt javasolnám, hogy relatív margó legyen (pl. 1.0em) és js-el nézzük, hogy az adott div szélessége nem kisebb-e, mint pl. 12em. Ha kisebb, akkor legyen a margin-left 0. Ez mondjuk kissé erőforrásigényes játék 200+ kommentnél, de az összecsukás is az.
4. Semmi esetre se szüntessük meg a szálkövetést és választható legyen az összecsukás is. Esetleg sütiben lehetne is tárolni a Júzer beállítását, hogy azok, akik esetleg semmilyen változást nem szeretnének, ne "pártoljanak el", aki meg szereti, ne kelljen klattyolgatni az összecsukásért.
5. Ennyi elég is lenne, kár tovább bonyolítani.
Kérlek Titeket szavazzatok valamerre, hogy egységes elképzelés alakulhasson ki.
Szerintem CSS-el meg lehetne
Szerintem az lenne a legjobb, ha a kialakult szokásokhoz igazítanánk a dolgot. Rendszerint van egy témaindító delikvens, aki nyit egy témát, és részletezi a problémáját.
Ezután jönnek a kommentárok egymás alá, több szemszögből megközelítve a témát. Ezek egyenként is ki válthatnak hosszú eszmecseréket, amiknek beláthatatlan a kanyarulata. És ezeket az eszmecseréket kéne másképpen kezelni. Pl.: Beljebb húzva, sűrűbben tálalva mint a legfelső szintű válaszokat. Ezen az alsó szinten véleményem szerint felesleges több szintre hozni a dolgokat. Kb. olyasmire gondolok mint a Facebook közösségi modulja, csak megfejelve pár hasznos dologgal ami pl. a követést segíti.
Tök jó
Facebook modult meg írd meg előbb Drupal modulnak, aztán kérdezd meg a látogatók véleményét róla. Szerintem egyik WL-hez férő embernek sincs most felesleges pár napja/hete erre.
Ha ezt csináljátok, akkor felesleges is folytatni, mert csak kismillió különvélemény lesz, de eredmény nem. Mindegy, én megpróbáltam.
Nem tudtam konkrétumra
3. A "két centis" kommentekre
Akkor már inkább meg kéne számolni a mélységet. A root div id-je: "comments", az attól viszonyított távolságból kiderül az igazság... Annyi, hogy az indented className-t le kell venni az ennél mélyebben lévő containerekről. Én mondjuk direkt elég általános scriptet írok, hogy csak pár dolgot kelljen átírni, ha esetleg beépítik az oldalba, szóval nálam van node fa, meg minden ilyesmi.
Szavazni nem tudom mire kellene. Ami nekem kell, hogy összecsukódjanak az olyan commentek, amiket már olvastam, és csak az újak látszanak, ha meg ki akarom nyitni a teljes fát, akkor ki lehessen. Ez még most a reggel meg is lesz.
Ne scriptezzünk, ha nem
Valahogy jelezni kell, hogy
Előzmény
Szerkesztés: Most látom, hogy ezt már javasolta tgr a 30-asban is, tehát ez a második szavazat.
Ha vizuálisan nem jelenik
Ezt nem értem. Úgy képzelem,
Nem ide tartozik, de az új
Egyetértek
LOL - fátol az érdőt
Például, ha valaki úgy kezd egy hozzászólást, hogy "nem ide tartozik" akkor tol egy új téma gombot és oda bemásolja az előzmény linkjét, ha szükséges.
Ezen könnyesre röhögtem magam most. :D
Lehet, hogy nem lennének hosszúak a szálak, ha mindenki használná az új téma linket?
pp
Lehet, de mivel láthatóan nem
Szerintem sokkal jobb érzés
+1
Kompromisszum: új téma link marad, de kicsit "arrébb", mégis jól láthatóan (több hely köztük). Vélemény?
Arányaiban milyen gyakran
Szerkesztők
Szerk.: mostanában viszont (figyelmetlenség?) sűrűn klattyolok a szerkesztésre, látom, hogy ez van elöl. Á, nem jó középre tenni, mert nincs mindig ott...
Ha új témát nyitok, asszem
I rest my case.
Szerintem meg, emberek
És az mennyi?
Nem ide tartozik, de az új
Nem állandó
Feltettem a user scriptet,
Ha valakinek van kedve leránthatja, esetleg javíthat rajta. Most csak firefox-ra van kipróbálva...
Kipróbáltam nekem bejön
Én bele raknám azt a funkciót, hogy a kód blokkok megnyithatóak legyenek nagyban, hogy jobban olvasható legyen, ha nincs kedved hozzá megcsinálom és átküldöm, aztán sztem userscripts.org-ra fel is lehet tolni.
UI.: Most, hogy bele néztem a kódba, nem lett volna könnyebb a jQuery API-t használni? Úgy tudom benne van a Drupal-ban, minden esetre én lementettem.
Szándékosan nem használtam
A commentFolder package-t lehetne még egy kicsit jobban átdolgozni, a commentReader-ben is vannak olyan részek, amik általánosak, meg vannak olyanok, amik nagyon esetlegesek, pl hogy a textnode-ok miatt csúszhat, hogy hányadik element-ben van a comment id-je. A másik meg, hogy a változókban sem lehet elnevezésből megmondani, hogy mi van bennük potosan. Az van, hogy a node-oknak alapból van egy id-je, meg a controllereknek is. Az előbbieknek automatikusan generált létrehozáskor, az utóbbiaknak meg az anchor id-je, ami a commenthez tartozik. A kettőt kötik össze a gyűjtemények. Nekem nem sok időm lesz rá, hogy foglalkozzak vele, ha úgy gondolod, akkor belefejleszthetsz, aztán vagy kiteszem én a git-re, vagy felteszed máshova, nekem mindegy... Pár dolog van csak: összecsukás, szétnyitás, újak szétnyitása, a hash-ben lévő szétnyitása. Amit ezen felül lehetne, az pl a nagyon mélyen lévőknél az, hogy pár szülő node-ot becsukni (ez azért zűrösebb, mert a comment blokkokat kell eltüntetni hozzá, nem a gyerekeket tartalmazókat, szóval valamivel komolyabb bejárási forma kell hozzá.
szerk:
Ja most nézem, tényleg van hozzá jquery is, jobb lenne átírni arra, és akkor esetleg be lehetne tölteni magában az oldalban is, nem csak userscriptben, meg nem lenne akkora para azzal, hogy egyik böngésző beveszi a sortörést külön textnode-nak, a másik meg nem...
Lehetne olyat is
Még arra gondoltam, hogy az egy-egy comment-hez berakott linkek helyett lehetne inkább egy toolbar-t csinálni, ami position fixed, és egy-egy kattintással kijelölni az ágakat, aztán a toolbarral lenyitni meg összecsukni őket, meg esetleg ugyanígy megszüntetni egy-egy ágon a behúzásokat...
Majd ha lesz egy kis időm, akkor még refaktorálom kicsit a kódját, meg átteszem jquery alá, hogy cross-browser legyen... (Utána akár magába az oldalba is bele lehetne ágyazni.)
Ez alatt mit értesz pontosan?
Persze, te is megcsinálhatod, ha van kedved hozzá. Szívesen feltöltöm... Ha átkerülne jquery alá, akkor esetleg magába az oldalba is be lehetne ágyazni...
A kódblokk nagyításán azt
Hát ez elég szimplán
Közben azt nézem, hogy ezzel
Majd valamikor átírom ilyenre, és akkor sokkal emészthetőbb lesz az egész. Mondjuk így sem rossz, csak van egy kicsit kavarodás a Node - Controller mapping miatt... A legnagyobb gond, hogy nincs semmi garancia arra, hogy a getElementsByClassName-nek milyen a rendezése. Szóval könnyen lehet, hogy előbb hozom létre a gyerek csomópontot, és csak utána a szülőt, ami miatt nem tudom beállítani a gyerek szülőjét a létrehozás után közvetlenül, mert az még nem létezik... Végülis ki kell próbálni jquery-vel, és ha rendezett pl msie alatt is ilyen szempontból, akkor úgy még tovább egyszerűsíthető az egész... A jquery-ben az a jó, hogy megszűnteti a sortörések miatti TextNode-okból fakadó kellemetlenségeket, szóval sokkal biztosabb lesz vele a kód... (Most nagyon érzékeny arra, hogy van e sortörés vagy sem, el is száll néha, ha olyanja van, szóval mindenképp át kell tenni legalább jquery-re.)
Chrome-ra
https://gist.github.com/3742305
jQuery-t behúzza netről, mert a króm ilyen buta, hogy hiába van az oldalon jquery, nem tudja használni azt a script.
Láttam pár napja leírást
Az igazán érdekes az lenne, ha weblabor csak egy API-t adna, amin keresztül el lehet érni a megfelelő commenteket, és amivel mindenki saját gm scriptet vagy hasonlót tudna csinálni :-)
Gyakorlatilag innen
http://stackoverflow.com/questions/2246901/how-can-i-use-jquery-in-greasemonkey-scripts-in-google-chrome
Elég ciki, hogy ez 2010-es,
Kipróbáltam, ez se rossz, bár
Én mögé raktam a teljes comment fát, aztán pl az újakat meg a location.hash-ben lévőket automatikusan kibontottam. Mondjuk úgy is meg lehet mindent, hogy nem csinálsz fát a háttérben, csak a DOM-on mászol körbe... Úgy egyszerűbb, csak kevésbé követhető egy laikusnak, hogy mi mit csinál. (Az enyém a jquery nélkül elég esetleges, hogy mikor működik, és mikor nem... :D)
Ötlet a túl keskeny
A dolog természetesen tele van határesetekkel, például mi legyen azokkal a hozzászólásokkal, amik teljesen takarásba kerülnének.
Mobil
Szerintem simán jó lenne adott szint / szélesség után elvenni a bal margót, csak kapcsolható legyen. Így a user eldöntheti mit akar. De leginkább ebből a kettőből kéne gyúrni egy harmadikat, mindkettőnek van haszna/hátránya.
Hosszú témák mobilon
Nekem úgy tűnik, jelenleg az összes hozzászólást kirakja a "/koveto" alatt. (pl. az "Érdemes belevágni..." c. témának valamennyi hozzászólása látszik és kicsit sokáig tart átlapozni)