• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    TORInyx :: pripominky uzivatelu
    GILHAD
    GILHAD --- ---
    KEJML: Například okoun.cz to má takhle "od nepameti" :)
    Stejně si musíš pamatovat oblíbené/bookmarkované diskuze uživatele a poslední přečtený příspěvek v nich, abys mohl udělat seznam s počtem nepřečtených/nových.
    Takže taková naivní implementace je (ve skutečnosti tam pak je samozřjmě údajů víc a rozhozené po tabulkách a další chytristiky, jako třeba řazení do skupin atd. ), že uživatel má seznam diskuzí a každá z nich má odkaz na diskuzi a id posledního přečteného příspěvku. A když si uživatel nechá zobrazit bookmarky, tak projedeš ten seznam a u každé spočteš kolik nových tam je a jestli se teda má ukázat název vždy, a nebo jen když si otevře sekci a chce vidět i přečtené.

    Něco jako
    FOR oblíbené IN user.bookmarks (
    SELECT novych AS COUNT() FROM přispěvky
    WHERE příspěvek.diskuze.id = oblíbené.id AND příspěvek.id > oblíbené.poslední_přečtený
    )

    Následně můžeš udělat (vtipně řazený a rozdělený a případně skrytý, když nových=0) výpis s počtem aktuálně nových (a pro každé znovuzobrazení té stránky bookmarků to počítáš znovu, protože lidi furt něco píšou)
    Ono to zase není tak šílené, protože přesně na takováhle věci jsou databáze optimalizované a při správném návrhu tabulek to umí velice dobře a rychle. (A taky si všimni, že vlastně tě ty příspěvky ani nezajímají, jenom jejich počet, takže vlastní text bude asi v jiné tabulce, aby se nemusel číst a bylo to malé a rychlé)

    Když si pak uživatel tu stráknku rozklikne, tak nejdřív vymyslíš, co mu vlastně chceš ukázat (něco jako 20 posledních příspěvků, nebo kolik má nastaveno, že zobrazit naráz) a ukážeš mu 20 nejnovějších s tím, že ty nové (příspěvek.id > oblíbené.poslední_přečtený) mají červené datum. Něco jako
    SELECT příspěvek.* FROM ..... WHERE ... ORDER BY ... DESC LIMIT 20;
    Pak tam nasypeš navigaci jako << < 20 > >> a název diskuze a lišty a vyhledávání a tak a celé to hodíš jeho prohlížeči.

    A když se pak proklikává dozadu/dopředu tak ve výběru příspěvků máš nějaký výraz jako
    SELECT příspěvek.* FROM ..... WHERE ... ORDER BY ... DESC LIMIT stránka*20, 20;
    a stránky čísluješ jako 0=nejnovější, 1=ta za ní, 2= jestě starší ...

    A aby byl přehled, tak si rovnou do databáze napíšeš u toho uživatele, že oblíbené.poslední_přečtený je teď ten nejnovější, ale pořád počítáš v paměti s tou starou hodnotou, abys měl ty červené datumy správně. Teprve až ti z toho okna/diskuze vyleze, tak použiješ tu novou hodnotu z databáze (stejně tak, když si to okno otevře víckrát, tak v těch dalších oknech bereš už ty nové hodnoty)

    ---

    To je teda naprosto hrubě zjednodušené, ve stylu "auta jezdí, protože se do nich lije benzín" (jenže se do některých lije nafta, elektřina, líh a milion dalších věcí jako třeba olej na smažení, a vlastně to jezdí protože nějaký motor a pedály a převodovka atd. a navíc teda taky fyzika, chemie, mechanika atd. a ještě ...), takže vlastně taková "lež pro děti" ...

    ---

    No a tak jsem si říkal, že když NYX stejně někde má ta čísla příspěvků a stejně to furt počítá dokola, tak "přece nemůže být až takový problém" vzít oblíbené.poslední_přečtený a k tomu počtu nových v bookmarkách přidat odkaz na něj. (A to taky teď udělal a chvála jemu za to)

    A když když se na ten odkaz klikne, tak se spočítá, kolik je nových (jo, můžu mít bookmarky otevřené hodinu, nebo den než se pročtu tím ostatním a lidi furt píšou), vydělí se to velikostí stránky a vyjde, kde v historii se to nachází (teda jaká je to "stránka" a tak se rovnou použije to
    SELECT příspěvek.* FROM ..... WHERE ... ORDER BY ... DESC LIMIT stránka*20, 20;

    A když už teda tu stránku mám, tak se podívám na ten první příspěvek na ní a TEN si uložím jako oblíbené.poslední_přečtený ZA PODMÍNKY, že je větší, než už uložený oblíbené.poslední_přečtený.
    Takže pokud jdu dál do historie, tak se mi nové zkrátí jen o to co bylo na té stránce a dál se to nezkracuje, zatímco když jdu dopředu k současnosti, tak se s každou stránkou zjistí, že to novější je a pak mi ty nové "ubývají"
    (Jak jsem psal, že mám 15.000+ nepřečtených (třeba 15.023), (a NYX dal limit na 100) tak to skočí na stránku s příspěvky 15.001..15.100 (z toho 23 nových a 77 starých) a budu mít jen 15.000 nových přesně a stránka bude napůl červená a napůl černá (teda 23/77, ale to je fuk). Když pak půjdu o stránku o stránku dozadu, tak jsem jen v černých datech a furt mám při příští návštěvě 15.000 nových, pokud někdo něco dalšího nenapsal. Zatímco když půjdu dopředu, tak se ukáže 14.901..15.000 a budu příště mít jen 14.900 nových )

    ---

    Jako je to fakt silně zjednodušené, vzhledem k tomu, co NYX umí a dělá a různé ignory a double ignory a mazání správcema, či autory a vším možným okolo, ale snad jsem aspoň zachytil tu podstatu, i když provedení bude určitě složitější (jen netuším o kolik moc, a kde všude se to promítne, ale doufejme, že by to zase nemuselo být tak strašné, i když co všechno se tu řešilo s inzercí a dalšíma, tak to vypadá, že je to pod kapotou výrazně složitější, než se navenek jeví. Ona rikša (co tu předvádím) je taky celkem jednoduchá v porovnání s moderním autem (NYX) a ani tu bych sám z ničeho stavět nechtěl)
    KEJML
    KEJML --- ---
    GILHAD: Kdyby to fungovalo jak říkáš, tak by to byla úplná bomba.
    GILHAD
    GILHAD --- ---
    [NYX @ nyx :: novinky v systemu]

    Jo, príma, chodí to, ale označí to celou diskuzi za přečtenou, i kdy jsem otevřel jen jednu stránku a zase zavřel, v diskuzi kde bylo 15.000+ a ukázala se mi ta stránka se starýma, ale když jsem to zavřel, tak diskuze komplet přečtená, čekal bych, že po zavření té poslední stránky tam bude něco jako 14.900+ nepřečtených nebo tak ...
    NYX
    NYX --- ---
    NAVARA: Neni ted
    NAVARA
    NAVARA --- ---
    Je vůbec někde ToDo list / Bug list JIRA…?
    TUILE
    TUILE --- ---
    ZMAR: protoze to jeste neni nove naprogramovany.
    a prej je to nechce na todo listu, takze to mozna i nekdy bude.
    ZMAR
    ZMAR --- ---
    SPIKE411: Taky by me zajimalo proc nejsou videt navstevy profilu, že by presun pouze do premiovky?
    KOC256
    KOC256 --- ---
    Díky za opravy, ale mohl bys zveřejnit co máš ještě poznačeno. Myslím, že čekám už dlouho na asi 4 hlášené opravy. Některé jsem dokonce reklamoval opakovaně a nejsem si jist, že by přišlo jakékoliv stanovisko :(. Díky...
    KOC256
    KOC256 --- ---
    @nyx
    V žádostech o založení klubu by byl fajn proklik na kategorii. Občas tam zareaguji třeba s tím, že se jedná o duplicitu a vždycky se tam složitě proklikávám :(
    NYX
    NYX --- ---
    KOC256: Vim o tom, mrknu na to.
    KOC256
    KOC256 --- ---
    iOS15 :(

    MAKROUSEK
    MAKROUSEK --- ---
    Proc vede i.nyx.cz na seznam?
    DEEFHA
    DEEFHA --- ---
    KOC256: Tak věkem možná, povětšinou... :-)
    KOC256
    KOC256 --- ---
    WOODMAKER:
    já myslel, že tu jsou povětšinou dospělí...
    CDR
    CDR --- ---
    NYX: tak jsem se asi opravdu "uklikl", byť si toho nejsem vědom. Z ostatních diskuzí se mi žádná neodebrala ("přestat sledovat")
    WOODMAKER
    WOODMAKER --- ---
    SPIKE411: Ony nejsou videt navstevy profilu? Tak to se zacnu lidem chodit koukat do profilu!
    NYX
    NYX --- ---
    CDR: Tak to netusim
    NYX
    NYX --- ---
    ZUULUU: Tohle budu muset prozkoumat, jak to ted mam vlastne udelane :)
    NYX
    NYX --- ---
    CDR: Jaka?
    Kliknutím sem můžete změnit nastavení reklam