Sorszámozott hozzászólások

Rico képe

Sziasztok!

Az a célom, hogy minden hozzászólás kapjon egy sorszámot ami áttekinthetőbbé, "meghivatkozhatóbbá" tenné a beszélgetések elemeit.

1)

Ez a megoldás (http://drupal.org/node/296170) nem jó, mert ha másképp rendezi sorba a júzer a hsz-eket, akkor az új sorrend szerint kap sorszámot, és nincs egy hsz-nek egy fix száma, amivel hivatkozható lehetne (a beszélgetésben, cid tudom hogy van, de az globális).
Másrészt ha módosítja az egy oldalon megjelenő hsz-ek számát, akkor is borul a rendszer.
Itt az adott smink comment.tpl.php módosításáról van szó.

<h3 class="title"><?php print $title;... //helyett
<h3 class="title">#<?php echo $id + ($_GET['page'] * 300);
 
 print $title;
//és 300 hsz van egy oldalon alapbeállításként

Szeretném ha megmaradna a tagok lehetősége a hsz-ek tetszés szerinti rendezéséhez.

2)
Ezt meg nem tudom hová tegyem, pedig kipróbálnám:
http://drupal.org/node/169964

Kezdetnek jó lenne az is, ha timestamp szerint kapna minden hsz egy sorszámot.

De istenigazából egy hierarchikus számozás tetszene:
1.
2.
-2.1.
-2.2.
--2.2.1.
--2.2.2.
--2.3.
3.

(Nem értek a php-hez, de a kódolás általános elveit ismerem eléggé annyira (azt hiszem), hogy sikerrel illesszek be új- vagy módosítsak meglévő kódot.
Kerestem itt a fórumon erre, de nem találtam semmit.)

Fórum: 
Rico képe

Na tanúbizonyságot is tettem a php variálási képességeimről :)
Igazából már késő van (nekem), és nem gondoltam át, hogy is fog reagálni a motor ha php nyitó meg záró tag-eket illesztek be. Marad a code tag.
Emellett reflexből a mentést nyomtam, nem előnézetet. Bocs.

Tehát ami nem azt csinálja, ami nekem kell: (minek is beküldeni...):

<h3 class="title">#<?php echo $id + ($_GET['page'] * 300);?> &nbsp;<?php print $title; ?></h3>
0
0
vikicica22 képe

Kipróbáltam én is és működik.
Lenne, egy kérdésem ezzel kapcsoltban hogyan lehet a sorendet megfordítani?
Most így számol: 1,2,3, de én így szeretném 3,2,1.

0
0
Rico képe

Nem lehet szerintem. Épp ez az egyik ok, amiért _nem_ ez a számomra megfelelő megoldás.

A kérésem releváns része ez:

2)
Ezt nem tudom hogyan használjam:
http://drupal.org/node/169964

3)
Jó lenne az is, ha timestamp szerint kapna minden hsz egy sorszámot, ezt hogy lehet megvalósítani?

3)
Istenigazából egy hierarchikus számozás tetszene:
(Az azonos szintű/szülőjű hsz-ek között a beküldés időpontja alapján.)
-1.
-2.
--2.1.
--2.2.
---2.2.1.
---2.2.2.
---2.3.
-3.

0
0
Rico képe

Van valakinek tapasztalata ebben a témában, amit megosztana velem/velünk?

0
0
pp képe

Lécci ne uppolj.

0
0
zschopper képe

Minden hozzászólásnak van egy thread értéke, ami visszaadja, hogy mik a "szülői" / jellel elválasztva. Ezen el lehet indulni.

Mi az az "UP"-polás? Olyan mint a tikkelés? ;)

update:
én ha - ilyen igény lenne - modult hoznék létre, ami letárolja az adott hsz sorszámát (hierarhikusat és rendeset is) új hsz beküldésnél. Persze a komment törlésre is oda kell figyelni (adott bejegyzés törlése, és igény szerint a többi átszámozása). A kérdés az, hogy mi legyen egy törölt (mondjuk moderált) hozzászólás "gyerek" hozzászólásaival.

0
0
Rico képe

Köszi a választ!

Nekem ez nagy falat akkor.

[Szerk.: beszédesebb cím]

0
0
Rico képe

Nem adom fel :)

A thread mezőből indulok ki, ahogy zschopper javasolta.

Itt tartok:
http://kepfeltoltes.hu/081108/1109835723drupal_comment_thread_01_www.kep...

A smink comment.tpl.php-jába ezt írtam:
 print ($comment->thread)

Két problémám van:

1.

A már létező hsz-ok esetén az első gyermek-elemek 00 végződésű thread-értéket kapnak, a comment.module egyik (Drupal 5.12-ben 764.) sora miatt: $thread = $parent->thread .'.'. int2vancode(0) .'/';

A zárójeles számot 1-re javítva az újonnan keletkező hsz-ok már 01-el indulnak, ami hivatkozott képen is látszik, a 3. hsz-nél.

(?) Újra kéne építeni a comments tábla thread mezőjét, de azt nem tudom hogyan lehet.

2.

Bár használható, de csúnya. Jobb lenne egy 1.1.2.1.2.13/ formátum, tehát csak számok, és nincs 'vezető' nulla.

Ha jól értettem, a 'vancode' egy 36-os számrendszerű szám, ezért vissza kéne konvertálni a vancode2int funkcióval, de nem az egész thread értéket így: (vancode2int($comment->thread)), mert az hatalmas számokat ad vissza, hanem valahogy egyenként a pontokkal elválasztott kétjegyű számokat.

Ezáltal tudnánk a thread értéket a '0j.01.02.01.01.01.02.01.01/' -ból '19.1.2.1.1.1.2.1.1/' formátumúra alakítani.

(?) De hogy ezt hogy lehet...?

- - -
OFF: A comment.module fájlban javítottam egy sort ez alapján: http://drupal.org/node/97327

0
0
pp képe

kb. de nem próbáltam ;)

 
  $szetdob = explode('.',$comment->thread);
  foreach ($szetdob as $key => $val) {
    $szetdob[$key] = vancode2int($val);
  }
  $szeptrhead = join('.',$szetdob);

pp

0
0
Rico képe

Tyű István, köszi!

Beillesztettem a comment.tpl.php-ba, és a
 print $szepthread . '/ ';
kóddal hívtam meg.
Tökéletesen működik!

Sshot:
http://kepfeltoltes.hu/081108/drupal_comment_thread_02_www.kepfeltoltes....

OFF:
Programozás? Nem volt még időm php-t tanulni, meg programozni sem. Sajna. Használtcikk boltom van, csak szabadidőmben/alvás helyett webmesterkedek.

0
0
Rico képe

A már létező hsz-ok esetén az első gyermek-elemek 00 végződésű thread-értéket kapnak, a comment.module egyik (Drupal 5.12-ben 764.) sora miatt: $thread = $parent->thread .'.'. int2vancode(0) .'/';

A zárójeles számot 1-re javítva az újonnan keletkező hsz-ok már 01-el indulnak, ami hivatkozott képen is látszik, a 3. hsz-nél.

(?) Újra kéne építeni a comments tábla thread mezőjét, de azt nem tudom hogyan lehet.

Már csak ez kéne, és valami olyat csináltunk, amit a Drupal.org-on sok keresés után sem találtam, pedig van rá igény.

Mondjuk a comment.module módosítása "core hack", mi ilyenkor a legjobb megoldás?

0
0
nevergone képe

Mondjuk a comment.module módosítása "core hack", mi ilyenkor a legjobb megoldás?

Miért kellene azt a mezőt egyáltalán bántani?

0
0
Rico képe

Mert a comment.module szerint "az első gyermek-elemek 00 végződésű thread-értéket kapnak", ami szerintem furcsa, programozók már megszokták lehet, de egy átlagember számára a sima számozott listában az első elem egyes sorszámot kap, nem nullát. (A nulla nem szám.)

Vagy el lehet érni másképpen is hogy 1-es legyen az első gyermek elem?

A legelső Hsz így is 1-es sorszámot kap, csak a gyermek Hsz-ek kezdő sorszámával van a baj.

0
0
nevergone képe

De akkor ne azt írasd ki! Annak a mezőnek az értékét ne piszkáld, az mutatja meg, hogy az adott hozzászólás melyikre válaszolt (melyik a szülője), ha nem tudod pontosan, hogy mit csinálsz, ne menj bele ilyenbe.
Szerintem inkább code4beer, vagyis pár sörért biztosan megcsinálja neked valaki normálisan.

0
0
Rico képe

Gondolom elolvastad az eddigi beszélgetést, és látod hogy minden stimmel.
Már hozzá is piszkáltam, ahogy korábban írtam, és minden tökéletes maradt, csupán a már meglévő HSZ-ek sorszáma nem frissült, az új gyermek-elemek már 1-essel kezdődnek.

(Illetve bízom a PP által adott jól működő kódban is.)

Ha tudnám újraépíteni az eddigi hsz-ek thread értékét az új szabály szerint, akkor kész is lenne.

Engem annyira nem zavar a core hack sem, csak működjön, legfeljebb minden frissítésnél átírom a comment.module-ban azt a nullát egy 1-esre.
Végülis azt hiszem ilyenkor egy patch-et szokás készíteni hivatalosan, és kérni hogy kerüljön be a változtatás a core comment.module-ba.

0
0
nevergone képe

Az a baj, hogy neked van egy meglátásod, amelynek a megvalósítása alapvetően hibás. Ez abból is fakad, hogy nem értesz a PHP -hez (te mondtad feljebb), és mélyebb ismeretekkel sem rendelkezel a Drupal belső működéséről. Akkor mit szeretnél te, és miért átiratni a Drupal core -ban?
Amit szeretnél, az megoldható egyszerűbben is jobban más módon, a Drupal szemléletmódját követve, nem pedig a magad hibás álláspontját ráerőltetve. Pedig ott a weblabor, ott is megoldották, és nem hiszem, hogy ezért bármit is átírtak volna a Drupalban.

Szóval szerintem, ha megkéred, más megoldja neked, valószínűleg nem teljesen ingyen. Vagy ha magadtól szeretnéd, ess neki a PHP megtanulásának!

0
0
Rico képe

Sokat segítene, ha konkrét információt kapnék arról, hogy mi a megvalósításban az alapvetően hibás.
A PHP-t pedig tapasztalati, gyermekded, trial-and-error módszer szerint tanulom, pici darabokban, például ezen a feladaton keresztül, és nagyon élvezem.
Tanulnék belőle, ha konkrét segítséget kapnék, mint ahogy pp kódjából is tanultam.
Pont azért fordultam ehhez a közösséghez, mert magamtól nem ment.

Előnyben részesíteném a közösségi együttműködést azok között, akiknek ugyanerre van szüksége, vagy szívesen segít az ügyben ahhoz képest, hogy pénzt ajánljak egy megoldásért.

Ha pedig egy 0 egyesre módosításával a thread érték sminkbarátabbá válik úgy, hogy megőrzi funkcionalitását, miért ne kerülhetne be a core-ba?

0
0
nevergone képe

Sokat segítene, ha konkrét információt kapnék arról, hogy mi a megvalósításban az alapvetően hibás

Eleve az, hogy egy olyan mező értékét (thread) akarod piszkálni, amit a rendszer állít elő és tart karban, neked pedig általában csak annyi a közöd hozzá, hogy kiolvasod, bár általában ennek sincs sok értelme.
Attól tartok, teljesen rossz úton keresed a megoldást, mindenféle kód-gányolást akarsz megejteni, pedig ezekre végképp semmi szükség. Ezért mondtam, hogy ha magadtól szeretnéd összehozni, akkor előbb ismerd meg a PHP -t és a Drupal szemléletmódját, programozói felületét.

Ha pedig egy 0 egyesre módosításával a thread érték sminkbarátabbá válik úgy, hogy megőrzi funkcionalitását, miért ne kerülhetne be a core-ba?

Mellesleg annak az értéknek nem csak itt van szerepe, előbb tájékozódj.

0
0
Rico képe

Rugalmas vagyok, szívesen módosítom a nézőpontomat, de sajnos amiket írsz, mind csak valaminek a tagadása, és nem olyan, amin el tudnék indulni más irányba.

Hol van még szerepe? Ott problémát okoz, ha nem 0 hanem 1 az első gyermek elem sorszáma? Megőrzi a funkcionalitását, vagy nem?

0
0
nevergone képe

Én ebből kiszálltam, részemről a téma lezárva. :)

0
0
aboros képe

hát pont ez az, ha fel kell tenni ezeket a kérdéseket, akkor inkább ne piszkáld azt az értéket, hiszen nem lehet tudni, mi függ még attól.

látszólag minden működik - hozzáteszem egyelőre :) - de egy drupal core modul működését módosítod teljesen önkényesen. ezt a modult aztán más modulok is használni fogják esetleg és ők nem fogják tudni ám, hogy a te drupalodban nem 0 az, hanem 1. ha erre bármelyik is építeni fog és emiatt aztán diszfunkciós lesz szegényem, akkor meg majd nyomozhatod hetekig, hogy miért nem megy az a te drupalodon, ami mindenki másén igen.

magad is írod, hogy ez egy sminkelési kérdés, akkor jó lenne talán a smink rétegben megoldani ezt és hagyni szépen az adatbázis réteget, hadd végezze a dolgát, ahogyan az meg van írva. (biztos nem véletlenül 0 az, hidd el)

kezdők általában nagyon nehezen szokták belátni, hogy a core hack rossz dolog és nem szabad csinálni. aztán persze rájönnek egy idő után, van aki olcsóbban ússza meg, van aki drágábban, de mennyivel egyszerűbb lenne elfogadni, hogy nem szabad csinálni, sluszpasz. :)

(elnézést, hogy ideféloffoltam ezt, próbálok hozzászólni valami konstruktívat is majd:)

0
0

-
clear: both;

nevergone képe

Ez elég konstruktív volt, amúgy szerintem a template.php -ben simán be lehet sorszámozni a hozzászólásokat egy statikus változó (index) használatával. Hogy ezt hogy értelmezi a delikvens, az másik kérdés, én elsőre erre indulnék el. :)

0
0
Rico képe

Köszi, ez is már konstruktív nekem, bámulom is a szavakat, de ahhoz hogy megértsem, meg kellene tanulnom a PHP-t és általában a programozást. Egy kevés programozást tanultam, C nyelvet, jó is voltam belőle, de elfelejtettem, mert nem használom.

Olyan módszer kell, ami megtartja a lehetőségét annak, hogy a felhasználók átrendezzék a HSZ-eket időrendben, vagy akár egyszerű nézetbe. Ezért tűnik jónak a thread értékből indulni, az aktuális megjelenítés sorrendje nem jó alap.

OFF
Az "amatőr" Drupal felhasználó kérdése. Van itt egy delikvens, aki nem tanulta meg a PHP-t, de használja a Drupalt, és saját igényei szerint szeretné módosítani. Keresett orrba-szájba a drupal.org-on, a .hu-n és a neten, hátha már megvan valahol amit akar, de nem talált. Ezért a magyar drupal közösséghez fordul, ahol azok nagy része, akik reagálnak, tudnak PHP-ben programozni, a delikvenshez képest mindenképpen.
Tiszteletben tartom a szakértelmeteket. Azt gondolom rossz érzés lehet nézni, ahogy valaki aki nem tanulta meg annyi ráfordítással a "webépítést" mint te, próbálkozik, ötletei vannak, megoldást keres, és nem a te szakmai tapasztalaton és sok tanuláson, hibán érett profizmussal nyúl a dolgokhoz, és egyedül próbál eredményre jutni.
Valahol a Drupal azzal hogy elérhetővé teszi hozzá-nem-értők számára a profi webhelykészítést, a profi "webépítők" munkájának egy részét helyettesíti, és bosszantó lehet, főleg akkor, ha a hozzá nem értő még pénzt is kér és kap a Drupal telepítéséért, beállításáért, sminkmódosításért. Ez egy köztes személy, aki nem profi webfejlesztő, de ismeri a modulokat, és tudja adminisztrálni a Drupalt, és minimális szinten módosítani. XHTML-t, CSS-t nagyjából tudja, de ha PHP-ről, JS-ről van szó, csak kapizsgál, vagy azt se. Én ilyen vagyok, bár pénzt nem keresek a Drupallal, és kérem a megbocsátásotokat emiatt. Szeretem a Drupalt és annyit tanulok amennyit bírok, ott voltam Szegeden, voltam DUG-on is. De más a munkám, és kevés a szabadidőm. Van-e létjogosultságom? Szerintem igen.

0
0
nevergone képe

Az a baj, hogy te magad mondod azt, hogy nem értesz a PHP -hez, de már a core -ba akarsz átirogatni dolgokat. Ha azt szeretnéd tudni, hogyan módosíthatod vagy szabhatod testre a működését, akkor mindenképpen meg kell ismerned a fentebb linkelt anyagokat, és a PHP programozási nyelvet. Csak azért, mert jól bántál a homokozóvödörrel, még nem fogsz tudni felhőkarcolót építeni.
Vagy rászánod ezt a (nem kevés) időt és energiát (viszont a tudás hatalom), vagy megiratod másokkal, esetleg egyszerűen leteszel róla.

0
0
Rico képe

Erre válaszul: Van egy ilyen is, ami jó, de ha a user megváltoztatja a megjelenítését az oldalnak, akkor megváltozik a HSz-ok sorszáma is, tehát két, eltérő megjelenítést használó felhasználó ugyanazzal a sorszámmal más HSz-ra fog hivatkozni.
http://drupal.org/node/169964 vagy http://drupal.org/node/296170
Ezek akkor jók, ha a megjelenítés módja rögzített (pl. Weblabor)

Mondjuk a "statikus" szó mintha arra utalna, hogy fix számot kap minden HSz, az vonzó, tehát lehet hogy te másra gondoltál mint az első hivatkozás megoldása.

Jó lenne egy olyan sorszámozás is, ami timestamp vagy cid szerint fix sorrend szerint látja el 1-től fölfelé egy darab számmal a HSz-okat.

0
0
Rico képe

Köszi, így értem. Ebből már tudok tanulni.

Higgyétek el, tudom hogy nem jó a core hack, és a következő mondat teljesen meggyőzött: "ezt a modult aztán más modulok is használni fogják esetleg és ők nem fogják tudni ám, hogy a te drupalodban nem 0 az, hanem 1"

Ha kis jóindulattal vagytok irányomban, akkor érzékelhetitek, hogy igyekszem megérteni a dolgokat, és nem ragaszkodom az elképzeléseimhez.
Azt is láthatjátok hogy önállóan hozakodtam elő a core hack veszélyességével, csak nem voltam teljesen tisztában a beláthatatlanság mértékével.

Végül nem tudtam már egy meglévő hozzászólásomhoz utólag gyorsan hozzáírni, újat pedig nem írtam, de írtam volna egy olyasmit, hogy ha a smink template-ben hozzá lehet adni egyet a az első gyermek sorszámához, az lenne a legjobb.

0
0
Rico képe

Szeretnék tovább haladni az ügyben, akár abban az irányban is, hogy más megoldás jobb lenne.

Nekem tetszik ahová eljutottunk, és már csak az első gyermek HSZ-ok sorszámát lenne jó 0-ról 1-re módosítani valahogyan.

0
0
aboros képe

"0" érték "1" -re cserélése például kábé így...

  $szetdob = explode('.',$comment->thread);
  foreach ($szetdob as $key => $val) {
    $intval = vancode2int($val);
 
    if ($intval == 0) { $intval = 1; }
 
    $szetdob[$key] = $inval;
  }
  $szeptrhead = join('.',$szetdob);

off: megjegyzem ez már nagyon nem drupal kérdés, hogy egy 0 -ból hogyan lehet php -ban 1 -et csinálni. erre van a weblabor, meg a php.net, meg tankönyvek tucatszám.

0
0

-
clear: both;

Pasqualle képe

nem tudom mit csinaltok, de szerintem elso ranezesre hibas ez a kod..
gondolom ha a 0at 1re cserelted, akkor az 1est is talan 2re kellene cserelni..
szoval ha valamit 1tol akarsz sorszamozni ami korabban 0val kezdodott akkor hozza kell adni egyet.. rosszul gondolom?

0
0
aboros képe

a kérdés az volt, hogyan lehet a nullákat 1 -re cserélni. ;)
de abszolút jogos a kifogás, ebben az esetben viszont a kérdést nem értem.. a decimális értékekhez egyet hozzá kell adni aztán szevasz.

0
0

-
clear: both;

Rico képe

Nézzétek meg a comment.module-t. Ha jól értem amit látok, akkor a comment.module először létrehozza az első gyermek elemhez a thread értéket, és azután inkrementálja. Ezért ha nem tévedek, elég a nullát 1-re alakítani, utána minden jól működő marad.

0
0
nevergone képe

csupán inkonzisztens lesz az adatbázis, de ez már kit érdekel?

0
0
Rico képe

Engem. Miért lenne jó nekem ha inkonzisztens az adatbázis?

De most hogy kicsit átgondoltam - sajnos tesztelni most nem tudok -, ha a sminkben adunk hozzá egyet a nullához, attól még az adatbázisból hozott 1 még 1 marad.

A sminkben kell hozzáadni egyet a nullához, de az összes rákövetkezőhöz is. De csak a gyermek HSZ-eknél, mert az első HSz 1-ről indul (ami sztem inkonzisztens).

0
0
nevergone képe

Miért lenne jó nekem ha inkonzisztens az adatbázis?

Nem én akarok a core -ban átiroghatni mindenféle dolgot ad-hoc módon...

0
0
Rico képe

Vedd már észre kérlek hogy már rég nem akarok a core-ban módosítani semmit!!!

Csak addig gondoltam erre, amíg jobb megoldást el sem tudtam képzelni.

De mivel felcsillant a lehetősége, hogy sminkben hozzá lehet adni csak a gyermek HSz-ek sorszámaihoz 1-et PHP-val, azonnal elengedtem ezt a tudtommal veszélyes és káros és kerülendő megoldást.

Nem core-t akarok hekkelni, hanem hierarchikus HSz-sorszámokat akarok.

Még nem tudom hogyan, mert ahhoz ismernem kéne a PHP-t jobban.
Az mindenképpen probléma szerintem, hogy csak a második szinttől kezdve jó a +1.

0
0
Rico képe

Most nem tudom kipróbálni, de szerintem ez lesz az, ezzel kész.

De ha hibás, akkor hol a hiba?

OFF
Igen, valóban ez már nem szorosan Drupal kérdés, hanem PHP kérdés.

Emiatt itt már nincs létjogosultsága?

Azért fordultam hozzátok, mert nincsenek meg az ismereteim ahhoz, hogy a Drupalt hajtó PHP-t használva megvalósítsam amit szeretnék.

Az lett volna az igazságosabb, ha ahelyett hogy itt kérdezem meg, fél év alatt minden szabadidőmet erre fordítva megtanulom a PHP-t és megoldom egyedül?

Szeretnék hinni abban, hogy jól esik segíteni, és akinek nem esik jól, az nem segít és kész. Van-e nektek örömötök abban, hogy hozzájárultatok a célom megvalósításához? Mennyivel tartozom?
Remélem hogy ha valaki másban is felmerül, hogy ilyen sorszámozást szeretne, akkor megtalálja ezt a témát, és öt perc alatt megcsinálja amit akar. Már két-háromszor jártam így, és baromi jó érzés volt, és hálás voltam az előttem járóknak. Azzal hogy hosszas keresés után nyitottam itt ezt a fórumot, és egyedül is sokat próbálkoztam, remélhetőleg én is tettem a közösbe.

0
0
nevergone képe

Azért fordultam hozzátok, mert nincsenek meg az ismereteim ahhoz, hogy a Drupalt hajtó PHP-t használva megvalósítsam amit szeretnék.

Az lett volna az igazságosabb, ha ahelyett hogy itt kérdezem meg, fél év alatt minden szabadidőmet erre fordítva megtanulom a PHP-t és megoldom egyedül?

Nem feltétlenül, de akkor ne fittizz azzal, hogy majd megoldod egyedül, miközben össze-vissza keversz dolgokat, és a legelemibb dolgokkal sem vagy tisztában. Az lett volna a fair, ha mondjuk meghívod aborost (vagy bárkit) egy-két sörre, és ő közben megcsinálja neked. Neked csak két sör, viszont kapsz egy működő megoldást, továbbá nem érzem én sem úgy, hogy visszaélsz a türelmünkkel és a bizalmunkkal.

0
0
Rico képe

OFF
Sajnos nem érek rá. De ha adsz egy számlaszámot, küldök neked pénzt. Mennyit küldjek? A megoldásból (ami még nincs kész, és lehet hogy rossz) mennyi illet téged?

Szerettem volna szép nyugodtan, békésen, fórum téma keretei között megoldani a problémát azokkal, akik ingyen, saját önszántukból, jóindulatból, segíteni akarásból vagy azonos vagy hasonló érdekből akarnak foglalkozni a dologgal.

Ha úgy érzed hogy visszaélek az energiáiddal, ne fecséreld őket rám. Valójában nincs hatalmam visszaélni a te energiáddal. Azt szabadon irányítod arra, amerre akarod.

0
0
ambro képe

Írod: "Az lett volna a fair, ha mondjuk meghívod aborost (vagy bárkit) egy-két sörre, és ő közben megcsinálja neked."

Nem! Az lett volna a normális viselkedés, ha nem kérkedsz azzal a tudással, amit láthatóan te sem birtokolsz!

Megmondom kerek-perec: Én a továbbiakban nem olvasom el a hozzászólásaidat, mert csak félrevezeted az embereket. Én ugyanis ezt szórakozásból csinálom. Ha meg szórakozni akarok, minek mérgelődjek a beírásaidon?

Szevasz!

Ignore On!

0
0
Rico képe

  $szetdob = explode('.',$comment->thread);
  foreach ($szetdob as $key => $val) {
    $szetdob[$key] = (vancode2int($val)+1);
  }
  $szepthread = join('.',$szetdob);

Ennyi.

... ja nem. Ezzel az első második lesz...

http://kepfeltoltes.hu/081108/drupal_comment_thread_03_www.kepfeltoltes....

Hát ez a baj.
Mert a comment.modul 1-el kezdi a számozást, kivéve a gyermek hozzászólásokat. Azoknál 0-val kezdni. Boá.

0
0
Rico képe

Pasqualle képe

nezzetek meg a project modult
itt egy konkret pelda:
http://drupal.org/node/8

minden hozzaszolas szepen sorszamozva van, minden hozzaszolasra hivatkozni lehet szam alapjan pl [#8-1] a node 8-hoz az elso hozzaszolas..

hogyan mukodik? az adatbazisban kulon oszlop tarolja a sorszamot

1. nincs meg egy modul (legalabbis nem tudok rola) ami ilyet csinalna
2. fejlesztes nelkul nem lehet azt az adatbazis oszlopot letrehozni amire itt szukseg van
3. legalabb alap Drupal programozoi tudas nelkul nem lehet modult fejleszteni

0
0
ambro képe

Jól látom ez már a 7-es verzióhoz van? Akkor én a 6-ossal ne is próbálkozzak?

0
0
Pasqualle képe

meg Drupal 5, de ez szerintem teljesen lenyegtelen a szempontodbol

0
0
ambro képe

Írod: "meg Drupal 5, de ez szerintem teljesen lenyegtelen a szempontodbol"

Mért lényegtelen? És pontosan milyen szempontból? És....

Szóval kicsikét bővebben légy szíves!

0
0
Pasqualle képe

azok a hozzaszolasok a project modul hozzaszolasai, Te meg forumot akarsz. ugyhogy az ami ott mukodik azt nem tudod felhasznalni fejlesztes nelkul, de otletnek, hogy merre indulj el tokeletes..

0
0
Rico képe

szerk: De még dolgozom rajta.

Itt tartok:
Valahogy el kéne különíteni az első szintet jelölő számjegyet.

0
0
Rico képe

A smink template-ben (comment.tpl.php) kicsit megmachináljuk a comment.module által kreált thread értéket (szintentként visszakonvertáljuk 36-ból 10-es számrendszerűvé, és hozzáadunk egyet, de úgy, hogy később az első szintnek megfelelő tömb-elemet eggyel csökkentjük):

    $szetdob = explode('.',$comment->thread);
    foreach ($szetdob as $key => $val) {
      $szetdob[$key] = (vancode2int($val)+1);
      }
    $szetdob[0] = $szetdob[0] -1; 
    $szepthread = join('.',$szetdob);
 

Ezután ugyanott, a HSz címében behívjuk az új sztringet:

 print $szepthread . '/ ';

Így néz ki:

http://kepfeltoltes.hu/081108/drupal_comment_thread_04_www.kepfeltoltes....

(A HSz-ok címe után zárójelben a cid van.)

Nna!

Huhh. Most büszke vagyok magamra. Nem is rossz valakitől, aki nem tanulta a PHP-t (Kis W3Schools segített.) :-)

Köszönöm PP a kódot, azt csak a PHP megtanulásával tudtam volna kiötölni. Ezt módosítva tudtam elérni amit akartam, ez volt az alap. Köszönöm nevergone-nak hogy (kicsit nehezen emészthető stílussal, de) megtanított arra, hogy mindig van corehack nélküli megoldás.

Azért nézzétek át kérlek, persze csak szórakozásból, ne szívességből.

0
0
ambro képe

Kérdezek: Szálak nélküli egyesével történő számolást is sikerülhet megcsinálni ezzel a módszerrel?

0
0
Rico képe

Kösz.

Egyesével sokkal könnyebb.

Nézd meg ezt a HSz-t: http://drupal.hu/forum/sorsz%C3%A1mozott-hozz%C3%A1sz%C3%B3l%C3%A1sok#co...

0
0
ambro képe

...de mi van ha én letiltom, hogy az user meg tudja változtatni a kinézetet? Akkor probléma nékül működhet az egyesével történő számozás? Ha igen, akkor légyszke írd meg nekem ide letisztázva az eljárást!

0
0
Rico képe

Itt találtam és most már tudnám is használni: http://drupal.org/node/169964

Smink comment.tpl.php -jébe (nálam Zen Classic, ja és Drupal 5.12):

$page = $_GET['page'];
if ( ! $page ) {
  $page = 0;
}
$comments_per_page = _comment_get_display_setting('comments_per_page');
 
$index_start = ( $page * $comments_per_page ) + $id;

És meghívjuk a HSz címe elején:

 print $index_start;

Vagy dobhatsz köré zárójelet:

 print '(' . $index_start . ') ' ;

Ennyi.

0
0
pp képe

A lényeg, amire rá kellett jönnöd, hogy amit szeretnél (máshogy nézzen ki, vagy valami ott jelenjen meg) az a kinézethez, tehát a sminkhez tartozik. Az eredeti megoldásodban - amit helyesen kukáztál - az volt a baj, hogy rossz helyen akartál belenyúlni a rendszerbe. A thread változó csak azért lett bevezetve, hogy a lekérdezés gyorsan lefusson és a hozzászólások a megfelelő sorrendben legyenek, nem pedig azért, hogy azt júzerek olvassák. Ez a módosításod igen súlyos következményekkel járt volna a rendszered stabilitására nézve ezért is nyertél ezzel a döntéseddel. ;)

Hajrá!

pp

0
0
Rico képe

Köszi!
(Gondolom erre írtad.)

De azért mennyivel egyszerűbb lett volna, ha a comment.module az első hozzászólást ugyanazzal a számmal kezdi, mint az első gyermek hozzászólásokat, nem? Vagy mindkettőt 1-el, vagy mindkettőt 0-val.

Elfogadom, hogy valamilyen okból fontos lehet ez a diszkrepancia, de igazság szerint nehezen hiszem el.

Azt mindenképpen elhiszem, hogy mostanra sok modul indul ki abból, hogy van ez a különbség, és emiatt hibásan működne ha azonos kezdőértékre változna a gyökér és a gyermek HSz thread sorszáma.

Különben régóta tudom hogy fontos a szétválasztást megtartani az adattárolás és a megjelenítés között, mióta HTML+CSS oldalakat kezdtem el gyártani. Azért gondoltam a core-hoz nyúlni, mert nem voltam tisztában a PHP végtelen átformáló képességével, ami lehetővé teszi még azt is, hogy inkonzisztens(nek tűnő) core-t használjunk konzisztensen.

Azért hozzáadni mindenhez egyet, de az első elemből kivonni egyet, eléggé hekk-szagú.

0
0
pp képe

"Azt mindenképpen elhiszem, hogy mostanra sok modul indul ki abból, hogy van ez a különbség, és emiatt hibásan működne ha azonos kezdőértékre változna a gyökér és a gyermek HSz thread sorszáma."

Nem erről van szó! A comment modul használja a thread értéket, senki más. Az, hogy ez miből áll teljesen mindegy, hisz csak azért lett belerakva a hozzászólás rekordba, hogy egyetlen egy lekérdezésből megkapjuk a teljes hierarchiát. Semmi másért. Senkit nem érdekel, az, hogy hogyan néz ki. Senkit nem érdekel, hogy a szülő és a gyermek milyen azonosítót kap, csak az, hogy a sorrend jó legyen. Tehát ezt senki nem használja fel csak a comment modul. Te egy helyen nyúltál bele a comment modulba, mert máshogy szeretted volna, hogy kinézzen. Azonban mint ahogyan fentebb írtam ez nem ezért néz így ki, hogy kinézzen ;), hanem azért, hogy megfelelő sorrend legyen. Lehet, hogy jól fog kinézni a számod, de lehet széttolod a sorrended és olyan működési problémákat okozol, amik nem jönnének elő, mert a comment modul írói álmunkban sem gondolták, hogy ezt valaki megváltoztatja.

"Azért hozzáadni mindenhez egyet, de az első elemből kivonni egyet, eléggé hekk-szagú."
Hát a thread értékből ilyen sorrendet előállítani, na az a hekk szagú.... vízi túrán mindig szoktunk enni egy kis sült halat*... akkor mindig érzem mekkora hekker vagyok ;D

pp
(* ezt ugye úgy hívják, hogy hekk...)

0
0
Rico képe

A hekk-szagú már nálam is "punintended" volt :)

Ha csak a comment modul használja, akkor elég biztos helyen nyúltam bele szerintem,

$thread = $parent->thread .'.'. int2vancode(0) .'/'; //0 helyett 1

de elismerem hogy csak szerintem, és bár jól működött (illetve nem működött teljesen jól, hiszen a meglévők nem módosultak), de tény hogy nem tudhatom milyen galibákat okozott volna önmagán belül, és értem, hogy egy modulban természetesen önmagán belül is problémát okozhat bármely módosítás, és hiúság azt hinni hogy átlátom.

Úgyhogy újra elismerem, hogy a 'kórhekk' kiscicát is öl, meg nyomorba dönt.

Hogy a thread értékből állítunk elő hierarchikus sorszámozást, az szerintem nagyon logikus, és nagyon jól sikerült :)

Black&Hekker

0
0
ambro képe

Holnap megpróbálkozom vele, bár én a 6.6-ot "használom".

0
0
Pasqualle képe

a "lineáris, megjelenítés szerinti számozás"hoz megirt kod ahogy latom nem veszi figyelembe ha egy comment-et torolsz, mert ilyenkor ez a kod ujrasorszamoz. tehat ha a sorszam alapjan probalsz hivatkozni abbol szivas lehet..

0
0
Rico képe

Tényleg, ez pedig fontos.
Ebből a szempontból viszont jó a cid használata, ha arra hivatkozik valaki és törölve lett, akkor ahelyett hogy egy másikat hívnak már így, már nincs ilyen.
(Csak a cid nagyon nagy szám is lehet. A threadre gondolva eszembe jutott, mi lenne ha a cid-et egy magasabb számrendszerben jelenítenénk meg? Kevesebb helyiérték, áttekinthetőbb, legfeljebb nem 32123 hanem OSB (viszont nem tudják, melyik nagyobb).)
...
vagy a törlés helyett szerkeszteni kell a rossz HSzt: Törölve ilyen-olyan okból. Mondjuk ez utóbbi megoldás a megjelenítésen alapuló sorszámozásnál is hat.

0
0
Rico képe

Kicsit dúúúrva ennek a 140 elemű beszélgetésnek ezen 13 mélységű pontján. :)

Viszont egész frappáns és használható lett szerintem az egyedi sorszám és szülőre link eszköz. Most hogy nézegetem, már nem is bánom annyira, hogy nem 1-től kezdődik és csak az aktuális node-ra érvényes, hanem a cid maga, mert szemléletesen mutatja a nagyobb időbeli eltéréseket, például itt.
...
De azért csak jobb lenne ha 1-től indulna node-onként.

0
0
Pasqualle képe

elnezegetve a hosszu szamsorokat, egyetlen dolog jutott az eszembe: remelem nem jut eszebe senkinek ezt a Drupal.hu-n bevezetni..

0
0
Rico képe

Miért, milyen gyakran fordul itt elő 3-4-nél több szintű szál?

Kellett nekem vicces extremitást mutatni naívan.

Azért van olyan nagy mélység, mert könnyebb a válasz linkre valamelyik HSz-on rábökni, mint azon amire valóban válaszol a felhasználó. Az egyik dolog amit remélek, épp az, hogy egy kicsit rendezettebb lesz.
Remélhetőleg arra ösztökéli majd a tagokat, hogy egyrészt tényleg oda kattintsanak, amire válaszolnak, másrészt nyissanak új fórumtémát vagy valamit. (Hiú remény, de hátha.)

Különben szerintem áttekinthetőbb, még ha a hosszú számsor tényleg hülyén is néz ki.
Ha lenne kis időm moderátorkodni, egy-egy nagyobb szálnak csinálnék fórumtémát, és máris rövidebbek a számok.

Akkor is jobb így összegészében :)

0
0
Rico képe

Ha egy hozzászólást node-dá alakítunk, a comment_mover az eredetileg második hozzászólást most mint elsőt 0-ról kezdi számozni, így az a +-1 módosításunkkal 0 marad.
Ezt csak a comment_mover modulba való belepiszkálással tudtam kiküszöbölni. Ami hekknek nevezhető és kerülendő, mert minden frissítésnél újra el kell végezni, és ki tudja milyen galibákat okozhat (szerintem nem okoz semmi galibát).

Hát nagy ára van ennek a sorszámozásnak.

Mindez azért, mert a comment_render függvénynél leírtakkal ellentétben 1.1 helyett 1.0 értéket ad a comment_module az első gyermek HSz-nak. Lehet hogy nem véletlenül, de a leírásban konzisztensen, első és gyermek HSz-nál is 1-ről indító számozás van.

0
0
pp képe

Ez az érték gyakorlatilag tök mindegy, hogy micsoda. A lényeg az, hogy a következőnek nagyobbnak kell lennie eggyel. Nem érdekel senkit, hogy eggyel, vagy nullával kezdődik! Nem azért van, hogy azonosítsa a hozzászólást, arra ott van a cid. Ez azért van, hogy egyszerűen tudd lekérdezni a hierarchikus listát.

pp

0
0
Rico képe

Nem értem miért írod ezt.

Biztos hogy egyre gondolunk?

Technikai szempontból tökmindegy hogy micsoda, ha csak arra használjuk, hogy hierarchikus sorba rendezzük vele a HSz-okat.

De ha ez alapján szeretnénk sorszámokat megjeleníteni a HSz-okhoz (mert nagyon adja magát ehhez), ráadásul úgy, hogy átmozgatás (comment_mover) esetén is helyes maradjon a számozás, akkor bizony fontos hogy mik az alapértelmezett kezdőszámok.

Sajnos az alapértelmezett kezdőszámok nem egyeznek meg a thread érték első és az összes többi helyiértékénél.
Tehát így számoz a comment_module:
01/
01.00/
01.00.00/
01.00.01/
stb.

A comment_mover pedig a megörökölt 2+-dik szintű HSz 00-val kezdődő számozásából készít elsőt, nem úgy mint a comment_module, ami 01-el kezdi az első HSzt. Így a normál első HSz sorszáma (ha nem módosítjuk sminkből) 1-es lesz, az átmozgatott első HSz sorszáma pedig 0. Ez baj.

Ha a comment_module konzisztensen számozna (amit szerinted is megtehetne, mert mindegy hogy mik a számok, a lényeg hogy egymást kövessék), akkor ez nem lenne probléma.
Ha így számozna:
00/
00.00/
00.00.00/
00.00.01/
...Akkor csak sminkből hozzáadnánk egyet minden thread-értékhez és szépen jelenítené meg, és átmozgatás után is jó maradna.

Ha pedig így számozna:
01/
01.01/
01.01.01/
01.01.02/
...Akkor meg nem is lenne szükség módosítani a számot a sminkben a megjelenítéshez, 36-ból 10-es számrendszerre való visszakonvertálás után egyből jól nézne ki minden HSz, és átmozgatás után is jó maradna.

A mostani helyzetben viszont muszáj hozzáadni egyet minden thread-szinthez a sminkben a megjelenítéshez, ÉS kivonni egyet a legelső helyiértékből (mert azt 1-ről és nem 0-ról indítja a comment_module), tehát azt így nem módosítottuk végülis.
De mivel a comment_mover gyakran 2+-dik szintű HSz-okat tesz meg első szintűnek (amiknek adott thread-értékének elejéből lemetsz annyit, amennyit kell), és ezek számozása 0-ról indul, az első szintre helyezetteknek (a fenti +-1 eljárás miatt) 0 marad a kezdőértéke.
Ezért a comment_movert már kénytelen voltam meghekkelni (ami nem core hack, de hack).

Ha bizonyos lenne hogy semmilyen más szerepe nincsen, és esetlegesen kezdődnek 1-el 0 helyett az első szintű HSz-ek (nem pedig valami miatt vagy érdekében), akkor érdemes lenne a core-ban módosítani a számozás kezdőértékeit azonosra, és a frissítés során az összes meglévő thread-értéket az adatbázisban kiigazítani (az első szintből kivonni egyet).

(Szerk.: Picit pontosítottam hogy mit csinál a comment_mover.)

0
0
Rico képe

Vérszemet kaptam.

Kód:

        if (($comment->pid) != 0)
          print ' (' . $comment->cid . ' &gt; ' . '<a href="/node/' . $comment->nid . '#comment-' . $comment->pid . '">' . $comment->pid . '</a>' . ')';
        else
          print ' (' . $comment->cid . ')';
 

Eredmény:

http://kepfeltoltes.hu/081108/drupal_comment_thread_05_id-link_www.kepfe...

Tehát a cím végén zárójelben ott egy sorszám (a HSz globális azonosítója, ami helyett jobb lenne egy helyi, az adott beszélgetésen belüli sorszám, ami vagy a timestamp, vagy a cid szerinti sorrendből van, tehát fix, átrendezésre "immunis").
Ha van szülő HSz, akkor a saját sorszám mellett ott van a szülő sorszáma is, hivatkozásként.

(Ha a megjelenítés sorrendje fix, és mindig az is marad, tehát a felhasználók sosem módosíthatják, és az admin se fogja, akkor össze lehet vegyíteni ezzel, és megvan az egyszerű 1-től induló sorszámozás.)

Ha még az 1-től induló, de átrendezésbiztos sorszámozást is megoldjuk itt, akkor elélvezek nagyon jó lesz!

0
0
aboros képe

használd az l() függvényt!
ez kezelni fogja az útvonal álneveket is. nagyon egyszerű használni.

ésss... nem tudom hanyas drupalban csinálod ezt mert azt nem jelölte be mikor bekülted a témát, de 6.x -ben ezt már inkább a template_preprocess_comment -ben csinálnám. (tu avojd templét buccsering ju nó) a comment címének elejére lehetne tenni a sorszámot szépen és a linkek közé esetleg azt, hogy melyikre válasz.

l() használata viszont mindenképpen javasolt, akárhány.x drupal esetén.

$text = '(' . $comment->pid . ')';
$link = 'node/' . $comment->nid;
$options = array(
  'fragment' => 'comment-' . $c->pid;
);
 
if ($comment->cid != 0) {
  $output = l($text, $link, $options);
} else {
  $output = $text;
}
 
print $output; #vagy attól függ hol vagyunk ugye, lehetne return $output is vagy esetleg a $variables tömb valamely értékének új értékadás 6.x esetén a template_preprocess_comment -ben.

ha mondjuk később pathauto -val csinálsz "szép" url -eket, akkor az l() kezelni fogja azokat tehát a rajta átzavart 'node/%' linkjeid szépen átalakulnak majd 'forum/viszlat-es-kossz-a-halakat#comment-34' -re, ami ugyebár kívánatos lenne. ;)

0
0

-
clear: both;

Rico képe

Hű, köszönöm, ez jó tanácsnak tűnik!

Egy ideig még eltart míg megemésztem, de megfogadom az biztos.

5.12, de 6.6-os Drupalt is használok.

0
0
Rico képe

Ez lett a jó. Drupal 6.x-ben máshogy működik a l() függvény mint 5.x-ben, észbe kellett kapnom.
5.x alá még bűvölöm.

        $text = $comment->pid;
        $path = 'node/' . $comment->nid;
        $options = array(
          'fragment' => 'comment-' . $comment->pid
        );
        if ($comment->pid != 0)
          $output = $comment->cid . ' &gt; ' . l($text,$path,$options);
        else
          $output = $comment->cid;
        print '(' . $output . ') ';

A te kódodban a $c->pid; helyett $comment->pid (nincs pontosvessző) kellett.

TENKSZ!

0
0
aboros képe

gyakran használok lustaságból ilyeneket, hogy egy eseménysor elején:

$c = $comment;

hogy utána már ne kelljen huszonhatszor még begépelnem, hogy $comment->, hanem elég legyen annyi is, hogy $c->cid; (van aki meg angol billentyűzetkiosztással kódol, vágesz;)

mielőtt beküldtem ezt, gondoltam kitisztázom ezeket a $c -ket belőle, hogy jobban érthető legyen elsőre is és sajnabajna egy bennemarad. szori. de így legalább gondolkodni is kellett rajta, ami sose árt és tuti megjegyzed az utat, ami aztán más problémáknál is jól jön majd.

NINCSMIT! :D

0
0

-
clear: both;

pp képe

Használd nyugodtan a hosszú nevet, csak használj normális szerkesztőt. A Quanta pl. kiegészíti amit gépelsz, tehát nem kell végiggépelned a cuccot, mert felkínálja a lehetőségeket. Így a káposzta is megmarad és a kecske is jóllakik.

pp

0
0