Visualizzazione risultati 1 fino 11 di 11

Discussione: topic letti e no

  1. #1
    Guest

    Question topic letti e no

    Salve ragazzi sto realizzando un forum tutto mio creato interamente da me...nn ho preso pezzo di codici da altri forum già esistenti ma lo realizato io da 0 ora soro arrivato ad un punto che mi ha bloccato il lavoro per diversi giorni...ho cercato di trovare una soluzione ma tutte quelle che ho pensato nn andavano bene.....in pratica dovrei elaborare un modo per dire all'utente connesso quali sono i nuovi topic e quali sono quelli che hanno una risposta recente nn ancora letta.....in pratica l'utente deve sapere quali ha letto e quali no....chi mi sa aiutare???


    Grazie

  2. #2
    Guest

    Predefinito

    potresti fare una interrogazione in base alla data dei topic e in base alla data delll'ultimo login dell'utente...

    if($dataLogin < $dataPost) metti in grassetto
    else metti in normale

  3. #3
    Guest

    Predefinito

    ma anche se l'utente si logga ciò nn significa che ha letto il posto quindi sarebbe un controllo inutile

  4. #4
    Guest

    Predefinito

    quello che dici tu, forse è anche un po' inutile...nel senso se un utente non legge il msg quando si collega magari non gli interessa. E magari sarebbe abbastanza fastidioso vedere l'icona "illuminata" ogni volta.
    Poi la scelta è tua

  5. #5
    Guest

    Predefinito

    pensa a questo forum... io leggo prevalentemente 3-4 forum... non mi interessa avere tutti i topic in grassetto...

    <edit> Forse ho trovato: potresti usare la if per tutti i topic piu' vecchi della data di login. Per quelli attuali però devi mettere un controllo in piu' perchè altrimenti l'utente vedrà tutti i topic del giorno sempre in grassetto anche se li ha già visitati. In sostanza la mia idea con la if è incompleta. Per fare in modo che tu sappia che l'utente ha visto un topic metti nella pagina del topic (ovvero quando l'utente clicca sul link per vedere il topic) una cosa del genere:
    $_SESSION[$idTopic] = "true";


    poi quando fai la lista dei topic del giorno (solamente quella del giorno attuale) fai:
    if(isset($_SESSION[ $idDelTopic ])) non grassetto
    else grassetto

    </edit>
    Ultima modifica di demenziale : 31-08-2006 alle ore 11.55.01

  6. #6
    Guest

    Predefinito

    oppure aggiungi l'id del topic a un'array settata in una variabile di sessione, e alla generazione delle pagine controlli con un bel in_array, e se non c'è gli spari il grassetto
    ciao!

  7. #7
    Guest

    Predefinito

    Citazione Originalmente inviato da SFo
    oppure aggiungi l'id del topic a un'array settata in una variabile di sessione, e alla generazione delle pagine controlli con un bel in_array, e se non c'è gli spari il grassetto
    ciao!
    GENIALE!

  8. #8
    Guest

    Predefinito

    Senò fa un megatabellone dove ci scrivi di ogni tizio che legge il messaggio numero x (magari aggiungendo anche quando, anche se ciò è di dubbia utilità...)

    Il problema è poi se i messaggi son molti e gli utenti pure...

  9. #9
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Provo a descriverti più o meno quello che fa vBulletin (ad esamina del suo comportamento e non del suo codice), probabilmente sarà una soluzione scritta sopra con maggiori dettagli:
    - al momento della creazione (registrazione) dell'utente, memorizzi come "ultimo messaggio letto" quello che ha ID #0 (che in realtà non esiste, visto che di norma si parte da 1)
    - al momento dell'accesso dell'utente trovi tutte le discussioni che contengono messaggi che hanno ID maggiore dell'"ultimo letto", le memorizzi in un array di cookie (o di sessione, come preferisci), provvedi quindi ad evidenziare tali discussioni, e ri-memorizzi come "ultimo messaggio letto" l'ID dell'ultimo messaggio inserito
    - durante la navigazione dell'utente, provvederai a "depennare" le discussioni lette dall'array di cui sopra, e ad aggiungere le discussioni in cui vengono scritti nuovi messaggi
    - in caso di logout, non è necessaria nessuna precauzione particolare

    Questa cosa ti mostra esattamente quali sono i messaggi non letti dall'utente dalla sua ultima visita, "dimenticando" però quelli inseriti prima del logout o della caduta di sessione... è un compromesso accettabile rispetto alla soluzione di serj (memorizzare terne del tipo [utente, messaggio, letto/non letto]): prova a pensare a quanti record avrebbe questa tabella in un forum di 350.000 utenti e 450.000 messaggi (press'a poco le dimensioni attuali del forum di AV, il numero di record te lo dico io: 157.500.000.000)...

    Statemi bene...
    Ultima modifica di dementialsite : 31-08-2006 alle ore 21.11.18
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  10. #10
    L'avatar di Leo91
    Leo91 non è connesso Altervistiano Junior
    Data registrazione
    28-03-2004
    Residenza
    alle tue spalle
    Messaggi
    728

    Predefinito

    Mmm...quella dell'array mi sembra ottima!
    Io stavo pensando a mettere gli id di ogni topic in un solo cookie, e con un preg_match ricavare l'id, però dite che è pesantino eh? (anche io avrei un forum tutto mio :) )

  11. #11
    Guest

    Predefinito

    ho risulto...ho semplicemente usato il db

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •