• Consiglio Direttivo

    Di nulla. 😉
    [URL=http://www.giorgiotave.it/forum/gt-world/101972-forum-gt-disponibile-alle-versioni-per-telefoni-cellulari.html]Postato via Mobile


  • User

    Arieccomi!
    Ciao, come stai? volevo chiederti un regalino per natale 😉
    Necessiterei di prelevare dal fantastico script tuo, le ultime 3 news e fin qui credo di esserci riuscito facendo così:

    $sql="SELECT * FROM news WHERE publish=1
    AND publish_data<='$time'
    AND (unpublish_data>='$time' OR unpublish_data=0)
    ORDER BY publish_data DESC LIMIT 3";

    Quello che mi serve è ora invece di vedere le news una sotto l'altra, vederle affiancate, in 3 div accostati...
    grazie molte


  • Consiglio Direttivo

    Ciao!!
    Bene dai, mi godo il giorno di riposo 😄

    Potresti provare ad inserire uno style="float:left" ai <div> aggiungendo dopo un:
    [html]<div style="clear:both"></div>[/html]
    Spero di averti fatto il regalo di Natale!! 😉

    Buone feste!!! :ciauz:


  • User

    Ciao,
    ho provato a fare quanto mi hai detto, ma le vedo sempre in forma di lista e non affiancate....


  • Consiglio Direttivo

    Hai ragione, lo avevo impostato con un solo <div> contenitore unico.

    Dovresti includere gli <span> della news dentro un <div> contenitore ed a questo dare lo style di cui sopra. 😉


  • User

    Questo lo script, credo ci sia un problema nell'inserimento del div e del ciclo, non so come ottimizzarlo per vederle orizzontali le news...e poi ho inserito il float:left; nel css

    <link href="news_style.css" rel="stylesheet" type="text/css" />

    [php]<? require_once ("config.php");
    $time=time(); // preleviamo dal server il timestamp attuale
    /** selezioniamo i dati dalla nostra tabella news prelevando solo i dati da pubblicare,

    • che abbiano una data di pubblicazione inferiore o uguale alla data odierna
    • che abbiano la data di fine pubblicazione maggiore o uguale alla data odierna oppure uguale a 0 (che indica che non ha scadenza)
    • ordiniamo alla fine per data di pubblicazione ASC o DESC a seconda della scelta da noi effettuata all'atto dell'installazione
    • ed infine estraiamo solo il numero di news che ci interessano.
      

    */
    $sql="SELECT * FROM news WHERE publish=1
    AND publish_data<='$time'
    AND (unpublish_data>='$time' OR unpublish_data=0)
    ORDER BY publish_data DESC LIMIT 3";
    $query=@mysql_query($sql) or die (mysql_error());
    ?>
    <!--
    <div id="contentnews">
    --><div id="contentnews" style="clear:both">
    <?
    // cicliamo adesso il risultato della nostra query per visualizzare le nostre news
    while ($row=mysql_fetch_array($query))
    {
    ?>

    <span class="titlenews"><? echo $row['title']; ?></span><br />
    <span class="datanews">Data: <? echo date("d/m/Y", $row['publish_data']); ?></span><br /> <!-- avendo salvato il valore data in timestamp utilizziamo la funzione date per visualizzare la data nel formato italiano -->
    <? echo html_entity_decode($row['text']); // la funzione html_entity_decode serve a ritrasformare le entità HTML create dall'editor in tag ?> 
    

    </div>
    <?
    }
    ?>
    <!--
    </div>
    -->[/php]


  • User

    Scusa ho letto dopo la tua risposta, ma mi sono perso....
    Ho inserito sia float:left che clear:both dentro il css e il resto dello script come sopra, ma non cambia nulla.


  • User

    Dovresti includere gli <span> della news dentro un <div> contenitore ed a questo dare lo style di cui sopra

    Potresti spiegarmi un po meglio...perdonami...ma sappi che mezzo busto in tuo onore è già fatto!


  • Consiglio Direttivo

    [php]<?php require_once ("config.php");
    $time=time();
    $sql="SELECT * FROM news WHERE publish=1
    AND publish_data<='$time'
    AND (unpublish_data>='$time' OR unpublish_data=0)
    ORDER BY publish_data DESC LIMIT 3";
    $query=@mysql_query($sql) or die (mysql_error());
    ?>
    <div id="contentnews">

    <?php
    while ($row=mysql_fetch_array($query))
    {
    ?>
    <div style="float:left;width:16%">
    <span class="titlenews"><?php echo $row['title']; ?></span><br />
    <span class="datanews">Data: <?php echo date("d/m/Y", $row['publish_data']); ?></span><br />
    <?php echo html_entity_decode($row['text']); ?>

    </div> 
    

    <?php
    }
    ?>
    <div style="clear:both"></div>
    </div>
    [/php]Prova così. 🙂
    @frazoo said:

    ...ma sappi che mezzo busto in tuo onore è già fatto!
    Esagerato!!! 😄


  • User

    🙂 Grazie davvero... la statua è quasi pronta. Al momento ti faccio i miei più sentiti auguri di buon natale, ma dopo può essere che torno a disturbarti 😉
    Grazie.


  • Consiglio Direttivo

    Buon Natale anche a te. 🙂

    P.S. Come da regolamento ti invito a far attenzione alle regole base della scrittura: maiuscola ad inizio frase e punteggiatura. Ne guadagneremo tutti in leggibilità del Thread. 😉

    :ciauz:


  • User

    Ciao, ho il seguente problema (credo che qualcosa non funzioni a perfezione):
    ho impostato nel pannello d'installazione, l'ordine di visualizzazione delle news decrescente (quella di default per intenderci).
    Mi serviva che in prima pagina apparissero solo le ultime 3 news e che cliccando sul tasto leggi tutto, venissi indirizzato in una pagina contenente l'intero elenco delle news, così come previsto.
    Mi hai aiutato nel creare lo script della selezione delle ultime 3 news:
    <?php require_once ("config.php");
    $time=time();
    $sql="SELECT * FROM news WHERE publish=1
    AND publish_data<='$time'
    AND (unpublish_data>='$time' OR unpublish_data=0)
    ORDER BY publish_data DESC LIMIT 3";
    $query=@mysql_query($sql) or die (mysql_error());
    ?>

    Il problema è che io vedo sempre solo le prime 3 news.
    Non so se la questione è legata alla data, quindi se inserisco 4 news alla data odierna, comunque leggerò sempre le prime 3 o se c'è altro.
    Potresti gentilmente aiutarmi?
    Grazie davvero


  • Consiglio Direttivo

    Ciao frazoo. 🙂

    La select è molto chiara:

    ORDER BY publish_data DESC LIMIT 3";Ordina per data pubblicazione decrescentee seleziona solo i primi tre (tradotto, dato l'ordinamento, gli ultimi tre in ordine cronologico - secondo la data pubblicazione).

    Hai verificato inserendo date pubblicazione successive a quelle tre?
    (ovviamente non successive alla data odierna 😉 )

    EDIT: e verifica anche eventuali date di fine pubblicazione. 😉


  • User

    Ciao,
    ho provveduto cambiando la select in
    ORDER BY ID DESC LIMIT 3
    Dato che il controllo effettuato sulla data di pubblicazione, non permetteva un controllo sull'orario, quindi se venivano inserite 4 news nello stesso giorno, le stesse erano inserite senza tener conto di un reale tempo di inserimento.
    Grazie


  • User Newbie

    Ciao a tutti, sono nuovo del forum.

    Un doveroso ringraziamento a Samyorn@
    Era proprio quello che stavo cercando per il mio sito. Per adesso l'ho provato in locale e funziona perfettamente. Davvero un'ottimo lavoro.
    Grazie.

    Bello trovare la pappa pronta! Se dovevo scrivermi il codice da solo facevo questa fine :microsoft:


  • User Newbie

    Prima di tutto volevo ringraziare Samyorn per il lavoro svolto ma sopratutto per averlo condiviso.
    Ora passo alla piccola richiesta,fuonziona tutto a meraviglia,vorrei capire come poter visualizzare in homepage solamente le prime righe della news,calcolando che ne visualizzo solamente una l'ultima.
    Grazie anticipatamente Claudio


  • User Newbie

    E'èè già,sono ancora qua,scherzi a parte sto diventando matto da tre giorni per cercare di creare la paginazione delle news,lo so io di php non ci capisco nulla,potreste darmi un aiutino.
    Altra cosa che non ho ancora capito,creo la news (la tengo una settimana),cancello la news dal pannello admin ma l'id del database non si aggiorna es:
    id 1 blabla pubblicata
    id 2 blabla pubblicata
    id blabla cancellata
    id 4 blabla pubblicata
    Come posso spostare l'id 4 al 3 ?
    Credo d'aver capito che la paginazione corretta possa funzionare solamente in questo modo.
    Ringrazio anticipatamente Claudio


  • Consiglio Direttivo

    Ciao radacl,
    scusa ma sono settimane di fuoco, vedo di aiutarti per le due questioni:
    @radacl said:

    ...poter visualizzare in homepage solamente le prime righe della news,....
    Utilizzando la funzione substr() tronchi il testo della news alla lunghezza desiderata. Nel file news.php modifica questo:
    [php]<? echo html_entity_decode($row['text']);[/php]con questo:
    [php]<? echo substr(html_entity_decode($row['text']),0,100);[/php]Visualizzerai così i primi 100 caratteri, poi lo modifichi tu a tuo piacimento. 😉
    @radacl said:
    ....Altra cosa che non ho ancora capito,creo la news (la tengo una settimana),cancello la news dal pannello admin ma l'id del database non si aggiorna es:
    id 1 blabla pubblicata
    id 2 blabla pubblicata
    id blabla cancellata
    id 4 blabla pubblicata
    Come posso spostare l'id 4 al 3 ?
    Credo d'aver capito che la paginazione corretta possa funzionare solamente in questo modo.

    L'ID è un campo chiave autoincrement, se cancelli la news il numero ormai è preso e non viene riassegnato.
    Per fare quello che hai descritto ho inserito la data di fine pubblicazione appositamente, ovvero la news è pubblicata e "visibile" fino alla data di fine pubblicazione, dalla data di inizio pubblicazione. 😉
    Lo script ordinerà comunque le news secondo la data di pubblicazione, decrescente o meno a seconda di come tu lo hai impostato.
    😉


  • Consiglio Direttivo

    @rodolforizzo76 said:

    Ciao a tutti, sono nuovo del forum.

    Un doveroso ringraziamento a Samyorn@
    Era proprio quello che stavo cercando per il mio sito. Per adesso l'ho provato in locale e funziona perfettamente. Davvero un'ottimo lavoro.
    Grazie.

    Bello trovare la pappa pronta! Se dovevo scrivermi il codice da solo facevo questa fine :microsoft:
    Grazie rodolforizzo76. 😉

    Ed io che speravo invogliasse a farsi le cose da solo... :rollo:

    :giggle:


  • User Newbie

    [...]

    Grazie Samyorn :bravo: ,aiuto prezioso,devo dire che per lo meno con il tuo lavoro mi hai fatto smanettare in php pur non capendoci nulla e ovviamente buttando ore per capire il funzionamento :x.
    :wink3: Grazie ancora