• User Newbie

    sviluppo sito dinamico

    salve a tutti
    premetto anzitutto che non ho mai programmato in php se non per piccole cose.
    ho bisogno di realizzare un portale dinamico che dovrà essere strutturalmente ripetitivo, ad eccezione x la home-page. Analizzando www.campaniatour.it ho notato che usa delle pagine-template che vengono riempite con i relativi dati a seconda della query inserita nell'url (ad esempio "eventi.php?id_ev=2")
    inoltre non capisco come a seconda della query cambi anche il titolo, i meta-tags ed altri elementi, e come i dati (presi da un database) siano correttamente impaginati e stilizzati (css?)
    se qualcuno puo darmi un aiuto, dei chiarimenti, un codice da consultare e studiare (quello di campaniavideo nn riesco a vederlo) gliene sarò molto grato


  • User Attivo

    ciao

    perche non usare un CMS ?


  • User

    Costruisci la pagina base in Html e poi spezza il codice in tante porzion i per quanti settori ci sono (es. toop, corpo, foot). Con una pagina in php ed includendo i tre faile nella sequenza con cui devono rigenerare il codice html tranne quella parte che sarà dinamica.

    un esempio con testata in cui all'interno ho un menu, poi ci sono dati dinamici determinati da una query ed infine il piede :
    <?php
    include("toop");
    ?>
    <!-- Qui inizia la parte dinamica -->
    <!-- Qui finisce la parte dinamica -->
    <?
    include("foot");
    ?>


  • User Attivo

    @franklin_92 said:

    inoltre non capisco come a seconda della query cambi anche il titolo, i meta-tags ed altri elementi

    Credo che sia sufficiente inserire nell'HTML i valori dinamici della pagina-destinazione.


  • Super User

    @runen said:

    Credo che sia sufficiente inserire nell'HTML i valori dinamici della pagina-destinazione.
    Esatto.Se lo si fa tramite un echo() si possono inserire le variabili direttamente nella stringa da stampare (esempio: echo "<b>$codice</b>";) ,altrimenti è necessario l'uso dei templates (utilissimi secondo me).


  • User Attivo

    @probid said:

    Esatto.Se lo si fa tramite un echo() si possono inserire le variabili direttamente nella stringa da stampare (esempio: echo "<b>$codice</b>";) ,altrimenti è necessario l'uso dei templates (utilissimi secondo me).

    come funziona l'"altrimenti" con i templates? con print? con include?


  • Super User

    Basta creare una pagina html (esempio index.html) dove inserire le variabili,per esempio $dascrivere.
    Poi nella pagina php:
    [php]
    <?

    QUESTA FUNZIONE LEGGE E RESTITUISCE IL TEMPLATE HTML FACENDO L'ESCAPE DEGLI APICI DOPPI

    function GetTemplate($template) {

          return str_replace("\"","\\\"",implode("",file($template)));
    

    }

    QUESTA FUNZIONE STAMPA A VIDEO IL TEMPLATE RISULTANTE DALLA FUNZIONE PRECEDENTE

    function Stampa($template) {

          echo $template;
    

    }

    $dascrivere = "questo è il testo da stampare"; //variabile da stampare

    eval("Stampa("".GetTemplate("index.html")."");");

    }

    ?>[/php]


  • User Attivo

    Scusa ma essendo ancora poco pratico di php mi sfugge una cosa: eval.

    Ricapitolo: all'inizio definisci le due funzioni, e più o meno quelle le intendo.
    Poi assegni il valore alla variabile $dascrivere.
    Infine c'è "eval"... cos'è che fa di preciso questo comando?


  • Super User

    Ciao runen,la funzione eval (http://it.php.net/eval) serve a tradurre stinghe testuali in codice PHP,infatti $dascrivere in index.html è semplice testo e senza la suddetta funzione sarebbe interpretato come tale e non verrebbe sostituito con il valore corrispondente assegnatogli.
    GetTemplate() aggiunge semplicemente un backslash () quando trova apici doppi nel file html che potrebbero generare errori.
    Stampa() ha la funzione di stampare il contenuto corretto con l'uso di GetTemplate()...ciao!;)


  • User Attivo

    Grazie mille.

    Sul sito ufficiale di php, alla pagina che mi hai linkato, viene spiegato il funzionamento di eval. Lì viene riportato un esempio in cui il valore assegnato alle variabili è racchiuso tra apici anziché tra virgolette.

    Nel caso il valore venga invece assegnato alle variabili tra virgolette (anziché tra apici), le funzioni echo e print stamperebbero il contenuto della variabile, anziché il suo nome?


  • User Attivo

    @franklin_92 said:

    inoltre non capisco come a seconda della query cambi anche il titolo, i meta-tags ed altri elementi....

    Ho realizzato un sito simile, facendo 2 file da includere ogni pagina: testata (che comprende anche il menu destro e sinistro) e pie di pagina.

    Nel file testata ho indicato di stampare variabili tipo $meta e $title, il valore di queste variabili lo assegna lo script in base a quello che estrapola dal database, soltanto in seguito viene incluso il file testata -include()- e automaticamente meta e titolo cambiano in base al contenuto.

    Spero ti aiuti
    by
    😉


  • Bannato User Attivo

    @Illustre said:

    ciao

    perche non usare un CMS ?

    Secondo me invece gli conviene costruirselo da se, di solito quelli fatti in "casa" sono sempre quelli più adatti e costruiti ad hoc per i contenuti 😉


  • User Attivo

    @alessiofbt said:

    Secondo me invece gli conviene costruirselo da se, di solito quelli fatti in "casa" sono sempre quelli più adatti e costruiti ad hoc per i contenuti 😉

    Condivido sul fatto che realizzare da zero una cosa è sempre la cosa più saggia, almeno in quello che è la personalizzazione.
    E'anche vero però che unsare un CMS già pronto non significa essere inesperti o altro, anzi, si va solo a risparmiare del tempo visto che il più del lavoro è già stato fatto.
    Ci si aggiunge del proprio lavoro personale per modifiche, aggiunte e personalizzazione dei moduli, grafica ecc e alla fini si ha comunque un buon prodotto.
    Filosofia, purtroppo, open source con tutto il rispetto. 😄