Visualizzazione dei risultati da 1 a 6 su 6

Hybrid View

  1. #1
    Utente di HTML.it L'avatar di mt19
    Registrato dal
    Jul 2011
    Messaggi
    180

    Creare tema senza PHP all'interno

    Ciao ragazzi,
    vorrei creare degli script in cui separo la parte logica dalla parte estetica, in modo che per creare più temi per uno stesso script non debba ribaltare tutto il codice PHP.
    Avevo pensato di utilizzare il modello MVC con JSON, ma sembra abbastanza complicato: otterrei temi come questo
    codice HTML:
    <body><header id="header"></header><section id="content">	<section id="login">	</section></section><footer id="footer"></footer></body><script>var template = '<hgroup><h1>{{title}}</h1><h3>{{subtitle}}</h3></hgroup>';
    document.getElementById('header').innerHTML = parseTemplate(template, json);
    
    template = '<h1>{{login_title}}</h1>'+'<form action="" method="post">'+'<label>{{login_ins_nick}}<input type="text" id="login_nick" name="login_nick" /></label>'+'<label>{{login_ins_psw}}<input type="password" id="login_psw" name="login_psw" /></label>'+'</form>';
    document.getElementById('login').innerHTML = parseTemplate(template, json);
    
    template = '<ul>'+'<li>{{footer_register}}</li>'+'<li>{{footer_guide}}</li>'+'<li>{{footer_credits}}</li>'+'<li>{{footer_disclaimer}}</li>'+'</ul>';
    document.getElementById('footer').innerHTML = parseTemplate(template, json);</script>
    ed è abbastanza complicato gestire un tema così....
    Quindi vorrei cercare qualcosa che sia leggero (che non pesi alla cpu del server) e che mi permetta di creare la pagina html comunque in modo dinamico (quindi con i vari if), ma con i vari calcoli eseguiti su un file a parte, proprio come nell'esempio soprastante.
    Idee?

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Se non vuoi usare PHP perché scrivi nella sezione PHP?

    I calcoli pesanti quali sarebbero? Recuperare i dati dal db e creare delle stringhe? Basta che non fai boiate con le query e loop infiniti direi che non ci devi proprio pensare a questa cosa.

    Comunque puoi benissimo usare PHP, che come hai intuito è più semplice che fare il parsing di stringhe json con javascript e poi usare questo per modificare il contenuto dei vari elementi.
    Molto più semplicemente progettati delle variabili con nomi significativi e sii coerente nell'uso di queste nelle pagine e nei vari altri progetti.
    Quello che stai proponendo, a mio modo di vedere, ma anche a modo di vedere di tutti i CMS che utilizzano temi (e non saranno tutti scemi), non ha molto senso.

  3. #3
    Utente di HTML.it L'avatar di mt19
    Registrato dal
    Jul 2011
    Messaggi
    180
    Mi sono spiegato proprio male, scusatemi
    Il fatto è che vorrei usare php per i calcoli, ma poi non vorrei dover fare mille conversioni tra vari linguaggi per tenere separato il php dal tema, rendendo così tutto il sistema più pesante.

    Quindi mi consigli di non separare i calcoli php dal tema, giusto? Magari utilizzare PHP con programmazione ad oggetti è la soluzione migliore?

  4. #4
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Sto proprio scrivendo una serie di oggetti per fare quello che vuoi. Ho scelto la strada seguente.

    • Ho un file html che contiene il disegno della pagina.
    • Ho un file txt per le costanti.
    • Ho un file php che contiene solo la parte php.


    La parte che va rimpiazzata sta tra i commenti <!-- mla start xxxx --> e <!-- mla end xxxx --> xxxx è un label. Le variabili del Template hanno la forma #valx con x=un numero da 0 a n.

    Le costanti hanno la forma seguente :COSTANTE:

    Parte HTML
    codice HTML:
    <table>
     <tr bgcolor="blue">
      <td>:CST_ID:</td><td>:CST_TITLE:</td><td></td><td></td>
     </tr> 
     <!-- mla start RIGA  -->
     <tr bgcolor="#val0">
      <td>#val1</td>
      <td>#val2</td>
      <form action=":FILE_UPDATE:?id=#val1" method="post">
       <td>
        <input type="submit" name="bouton" value=":CST_UPDATE:">
       </td>
      </form>
      <form action=":FILE_DELETE:?id=#val1" method="post">
       <td>
        <input type="submit" name="bouton" value=":CST_DELETE:">
       </td>
      </form> 
     </tr>
     <!-- mla end RIGA-->
    </Table>
    Il file delle costanti.
    codice HTML:
    :CST_ID:|Identificativo
    :CST_TITLE:|Titolo
    :CST_NBRECORDS:|Numero di record
    :CST_PAGE:|Numero di pagina
    Per la parte php.

    Codice PHP:
    ...
    $Toto = new mlaTemplate;
    // carico il codice HTML
    $Toto->load_HTML_file("mapage2.html");
    // carico le costanti
    $Toto->load_const_file("mapage2.cst");
    // posso aggiungere delle costanti
    $Toto->add_const(':THIS_PAGE:',basename($_SERVER["PHP_SELF"]));
    $Toto->add_const(':FILE_UPDATE:',"aggiornamento.php");
    $Toto->add_const(':CST_UPDATE:',"Aggiornare");
    $Toto->add_const(':FILE_DELETE:',"cancellazione.php");
    $Toto->add_const(':CST_DELETE:',"Cancellare");
    ...
    //----- Binding delle righe
    $color    "";
    $start    = ($page 1) * $nb_rec_page;
    $query    "select iddoc, doctitle, idcrypt from sit_doc order by iddoc limit $start,$nb_rec_page";
    $resultat mysql_query($query);
    while (list(
    $iddoc$doctitle$idcrypt) = mysql_fetch_array($resultat)) {
     
    $color $color == "grey" "green" "grey";
     
    $Toto->bind_HTML('RIGA',$color,$iddoc,$doctitle);
    // while (list($iddoc, $doctitle, $idcrypt) = mysql_fetch_array($resultat)
    //====================================================
    // Creazione del contenuto HTML
    print $Toto->contents();
    //==================================================== 

    bind_HTML('RIGA',$color,$iddoc,$doctitle);
    rimpiazza #val0 con $color, #val1 con $iddoc e #val2 con $doctitle per tutta la parte racchiusa tra <!-- mla start RIGA --> e <!-- mla end RIGA-->

    Parte del codice generato :

    codice HTML:
    <table>
     <tr bgcolor="blue">
      <td>Identificativo
    </td><td>Titolo
    </td><td></td><td></td>
     </tr> 
     
     <tr bgcolor="grey">
      <td>2</td>
      <td>Sharp PC 1500</td>
      <form action="aggiornamento.php?id=2" method="post">
       <td>
        <input type="submit" name="bouton" value="Aggiornare">
       </td>
      </form>
      <form action="cancellazione.php?id=2" method="post">
       <td>
        <input type="submit" name="bouton" value="Cancellare">
       </td>
      </form> 
     </tr>
     
     <tr bgcolor="green">
      <td>3</td>
      <td>000 - Haut de page</td>
      <form action="aggiornamento.php?id=3" method="post">
       <td>
        <input type="submit" name="bouton" value="Aggiornare">
       </td>
      </form>
      <form action="cancellazione.php?id=3" method="post">
       <td>
        <input type="submit" name="bouton" value="Cancellare">
       </td>
      </form> 
     </tr>
    ....
    Confronto tra prima e dopo :
    codice HTML:
    Prima :
     <!-- mla start RIGA  -->
     <tr bgcolor="#val0">
      <td>#val1</td>
      <td>#val2</td>
      <form action=":FILE_UPDATE:?id=#val1" method="post">
       <td>
        <input type="submit" name="bouton" value=":CST_UPDATE:">
       </td>
      </form>
      <form action=":FILE_DELETE:?id=#val1" method="post">
       <td>
        <input type="submit" name="bouton" value=":CST_DELETE:">
       </td>
      </form> 
     </tr>
     <!-- mla end RIGA-->
    
    Dopo :
     <tr bgcolor="grey">
      <td>2</td>
      <td>Sharp PC 1500</td>
      <form action="aggiornamento.php?id=2" method="post">
       <td>
        <input type="submit" name="bouton" value="Aggiornare">
       </td>
      </form>
      <form action="cancellazione.php?id=2" method="post">
       <td>
        <input type="submit" name="bouton" value="Cancellare">
       </td>
      </form> 
     </tr>
    Immagine :
    exemple HTML.jpg
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2014
    residenza
    Voltati
    Messaggi
    913
    No

  6. #6
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Carino. Non conoscevo. So che esistono molti tool ma quello che m'interessa è sviluppare una mia soluzione solo per sfizio.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.