Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointiputka: Langat, joissa uusia viestejä

Sivun loppuun

tsuriga [04.10.2007 11:08:53]

#

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.

Antti Laaksonen [04.10.2007 18:19:06]

#

Tällä sivulla voi tutkia, missä aiheissa on uusia viestejä:

https://www.ohjelmointiputka.net/keskustelu/uudet.php

Pitäisikö sivulla olla vielä jotain muuta?

T.M. [04.10.2007 19:27:20]

#

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

tsuriga [04.10.2007 22:44:00]

#

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.

Chiman [05.10.2007 12:46:15]

#

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.

Antti Laaksonen [05.10.2007 20:57:11]

#

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.

Olga [05.10.2007 23:25:30]

#

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 :)

tsuriga [05.10.2007 23:59:55]

#

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.

FooBat [06.10.2007 01:15:37]

#

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 :)

T.M. [06.10.2007 02:03:35]

#

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 ;)

matpit [06.10.2007 15:49:11]

#

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ä.

Antti Laaksonen [06.10.2007 20:54:24]

#

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.)

Olga [06.10.2007 22:19:39]

#

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.

Antti Laaksonen [06.10.2007 23:16:02]

#

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.

tsuriga [09.10.2007 08:44:22]

#

Sitemap olis ihan kätevä.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta