Olisko mahdollista saada joku käyttäjäkohtainen sivu, missä näkis langat, joihin on tullut uusia viestejä sitten viime latauksen? Aihealueiden selaus on niin kauheen työlästä :3.
Tällä sivulla voi tutkia, missä aiheissa on uusia viestejä:
https://www.ohjelmointiputka.net/keskustelu/
Pitäisikö sivulla olla vielä jotain muuta?
tsuriga tarkoittaa tuollaista toimintoa Oma sivu -sivulle, johon ilmestyy esim ikonit niitten aiheitten viereen joihin on vastattu sitten viime kerran. Tuo on perhanan kätevä toiminto, jota käytän muilla foorumeilla ahkerasti <3
Tarkoitin juurikin tuollaista uudet.php, mutta sillä lisäyksellä, että se näyttäisi vain ne langat, joiden uusia viestejä en ole vielä lukenut. Profiilissa voisi sitten vielä vaikka valita, mitä keskustelualueita seuraa.
Antti, tuo on hyvä sivu, mutta onko siihen linkkiä jossain loogisessa paikassa? En ainakaan helposti löytänyt.
Haku-toiminto palauttaa näemmä ilman ehtoja toistakymmentä tuhatta viestiä/ketjua, ilmeisesti kaikki yhdelle sivulle (keskeytin sivulatauksen jossain megatavun kohdalla). Siihen voisi laittaa jonkin sivutuksen tai rajoituksen.
tsuriga kirjoitti:
- - mutta sillä lisäyksellä, että se näyttäisi vain ne langat, joiden uusia viestejä en ole vielä lukenut.
Tämä olisi ikävän vaikeaa toteuttaa, koska silloin pitäisi tallentaa jonnekin kustakin käyttäjästä erikseen, mitä viestejä käyttäjä on lukenut (tai mitä viestejä käyttäjä ei ole lukenut). Järjestelmästä saatava hyöty olisi mielestäni liian pieni verrattuna sen monimutkaisuuteen.
tsuriga kirjoitti:
Profiilissa voisi sitten vielä vaikka valita, mitä keskustelualueita seuraa.
Tämä toive on sen sijaan helppo muuttaa todeksi. Tosin profiilisivua paremmin valinta voisi sopia suoraan uusien aiheiden listaan.
Chiman kirjoitti:
Antti, tuo on hyvä sivu, mutta onko siihen linkkiä jossain loogisessa paikassa?
Toistaiseksi linkkiä ei ole missään, kun sivukin ilmestyi vasta eilen. Mutta yritän kyllä keksiä paikan, johon linkin voisi laittaa.
Chiman kirjoitti:
Haku-toiminto palauttaa näemmä ilman ehtoja toistakymmentä tuhatta viestiä/ketjua, ilmeisesti kaikki yhdelle sivulle - -
Tyhjällä merkkijonolla haku tuottaa tulokseksi joka ikisen keskusteluun lähetetyn aiheen. Kieltämättä hakutulosten tulvaa voisi rajoittaa, mutta toisaalta tuosta voi olla hyötyäkin, jos joku haluaa selvittää keskustelun kaikkien aiheiden otsikot ja linkit.
Mureakuhassa ja monilla muilla foorumeilla tuollainen tuoreiden viestien hailaittaus on käytössä ja ainakin omasta mielestäni se on paras keksintö sitten leivän. Koneesta riippumatta näkee heti yhdellä silmäyksellä mitkä viestiketjut on lukematta, eikä tarvitse muistella kellonaikoja. Toteutus ei tosiaankaan ole niitä helpoimpia, mutta ominaisuudesta saatava hyöty on kyllä valtava :)
Antti Laaksonen kirjoitti:
tsuriga kirjoitti:
- - mutta sillä lisäyksellä, että se näyttäisi vain ne langat, joiden uusia viestejä en ole vielä lukenut.
Tämä olisi ikävän vaikeaa toteuttaa, koska silloin pitäisi tallentaa jonnekin kustakin käyttäjästä erikseen, mitä viestejä käyttäjä on lukenut (tai mitä viestejä käyttäjä ei ole lukenut).
Tarkoitin jotain seuraavanlaista uudet.php-sivulle:
$aikaleima = hae_kannasta(aikaleima) // käyttäjän viimekertainen sivulataus $ehto = uudempia_kuin $ hae_kannasta(aiheet, $ehto) // haetaan aiheet, joihin on tullut uusia viestejä sitten viime sivulatauksen kirjoita_kantaan(uusi_aikaleima)
Tätä varten tarvitsisi tallettaa siis yksi uusi tieto kantaan. Tässä olisi vielä semmoinen pieni etu mureakuhan systeemin nähden, ettei tarvitsisi selata kaikkia keskustelualueita erikseen. Ei sentään jokaisen viestin erottelua :3.
Antti Laaksonen kirjoitti:
tsuriga kirjoitti:
- - mutta sillä lisäyksellä, että se näyttäisi vain ne langat, joiden uusia viestejä en ole vielä lukenut.
Tämä olisi ikävän vaikeaa toteuttaa, koska silloin pitäisi tallentaa jonnekin kustakin käyttäjästä erikseen, mitä viestejä käyttäjä on lukenut (tai mitä viestejä käyttäjä ei ole lukenut). Järjestelmästä saatava hyöty olisi mielestäni liian pieni verrattuna sen monimutkaisuuteen.
No ei tuo nyt aivan niin vaikea taida olla, tosin saahan siinä pari päivää ehkä koodata, jonka voisi käyttää muullakin tavalla. Itse tein vähän vastaavan systeemin erääseen softaa töissä eikä se nyt kummoinen ollut.
Oletan, että sinulla on taulu viestiketjuja varten, jossa on joku ketjun id, otsikko ja jotain muuta. Tähän tauluun tarvitaan lisäksi ketjun viimeisin muutos aika, jota päivitetään aina, kun ketjuun lisätään viestejä.
Viestiketju-taulu: iId vcOtsikko dtMuutosAika
Lisäksi tarvitse uuden taulun, johon kirjaat kaikki hetket jolloin käyttäjä on lukenut jotain ketjua. Et tarvitse tietoa siitä mitä ketjua käyttäjä ei ole lukenut. Aika pitäisi päivittää silloin, kun käyttäjä avaa jonkin viestiketjun (tai tarkemmin, jos käyttäjä avaa viestiketjun viimeisen sivun).
Nähnyt-taulu: iId iViestiketjuId iKayttajaId dtAika
Sitten, kun käyttäjä hakee viestiketjuja, lisätään hakuun mukaan OUTER JOINilla aika, jolloin käyttäjä on viimeksi nähnyt ketjun. Nähnyt ajaksi tulee NULL, jos käyttäjä ei ole aikaisemmin lukenut ketjua.
SELECT viestiketju.vcOtsikko, viestiketju.dtMuutosAika, Nähnyt.dtAika FROM viestiketju LEFT OUTER JOIN nahnyt ON viestiketju.iId = nahnyt.iViestiketjuId WHERE nanhyt.iKayttajaId = $Käyttäjä
Sitten PHP:ssa kun näytetään ketjuja käyttäjälle vertaillaan muutosaikaa ja aikaa, jolloin käyttäjä on viimeksi nähnyt ketjun tyyliin:
if aika == null OR muuttunut > aika echo "<blink>$Otsikko</blink>" else echo "$Otsikko"
(Juu, en osaa PHP:ta :)
FooBat kirjoitti:
(Juu, en osaa PHP:ta :)
Mutta osaat C/C++ ? Huh... poista vaan ne dollarimerkit niin saat PHP:stä C:tä, ja toistepäin ;)
Antti Laaksonen kirjoitti:
Toistaiseksi linkkiä ei ole missään, kun sivukin ilmestyi vasta eilen. Mutta yritän kyllä keksiä paikan, johon linkin voisi laittaa.
Ite laittasin tuolle sivulle vielä kuka viestin on kirjoittanut jne, ja laittaisin linkin tuonne "Keskustelu" kohtaan sivun oikeassa laidassa, missä on osa viimeisintä viestiä.
FooBat kirjoitti:
No ei tuo nyt aivan niin vaikea taida olla, tosin saahan siinä pari päivää ehkä koodata, jonka voisi käyttää muullakin tavalla. Itse tein vähän vastaavan systeemin erääseen softaa töissä eikä se nyt kummoinen ollut.
Joo, saatoin vähän liioitella toteutuksen vaikeutta, mutta kyllähän tuossa tekemistä riittäisi. Lisäksi tietokantaparka joutuisi koville, kun keskustelu on kuitenkin melko vilkas. Nykyäänkin muuten linkin väristä voi päätellä, onko keskustelun jo lukenut. (Toteutuksessa oli tosin yksi vika, mutta nyt korjasin sen.)
Tuokin linkin väristä päättely onnistuu ainoastaan silloin, jos käyttää aina samaa konetta. Itse lueskelen putkan foorumia koulussa (eri koneilla), töissä (tauoilla tietysti :)) ja kotona eri koneita käyttäen (tilanteesta riippuen). Eihän tuo maata kaatava homma ole mietiskellä viimeistä käyntiaikaa ja verrata sitä viestiaikoihin, mutta ainahan sitä voi haaveilla paremmasta.
Ja onpa nykyisessä järjestelmässä sekin vika, että linkeistä tulee turhan monimutkaisia. Toisaalta tässä ei vaadita edes kirjautumista, kunhan käyttää aina samaa konetta ja selainta, mikä voi kuitenkin olla kohtuuton vaatimus.
Sitemap olis ihan kätevä.
Aihe on jo aika vanha, joten et voi enää vastata siihen.