Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Sito a template, caricare dati esterni

    Ciao a tutti
    sto facendo un sito a template, e vorrei alcune delucidazioni per proseguire.

    ALLORA:
    ho fatto il template template.html e nel punto dove voglio inserire il contenuto ho usato questo tag <!TOP>

    sulla pagina index.php ho incluso una classe che mi sostituisce quel tipo di tag, quindi mi viene:

    $param["top"] = "qui ci scrivo quello che deve sostituire il tag";
    bene...

    Ora io non voglio scrivere solo testo ma inserirci tabelle, immagini script, funzioni, e chi più ne ha più ne metta, quindi ...
    ho creato una pagina esterna che ho chiamato contenuto.php dove vorrei che tutto quello che ci scrivo venisse inserito al posto di quella stringa.

    come faccio ad includere contenuto.php li dentro?
    MITTICCOOOOOOOOO!

  2. #2
    con include non credo ti funzionerà
    prova con eval ma secondo me pure la non è che risolvi...


    Silent Engine

    <?="hello world"?>

  3. #3
    Azzz

    Nessuno sa come fare per includere delle pagine php nei tag <!TAG> ?
    MITTICCOOOOOOOOO!

  4. #4
    Ecco la classe, che peraltro l'ho copiata da un post qui sul forum... non mi ricordo l'autore

    Codice PHP:
    // Gestisce i templates
    //
    // I templates sono fondamentalmente pagine html con possibilità di sostituire
    // dinamicamente alcune entità.
    // Le entità sono
    // - parametri : {nome_parametro}
    // - blocchi   :
    //
    //        
    //                ... 
    //               blocco
    //                ...
    //        
    //
    // Tutto quello tra beg ed end fa parte del blocco
    // Il blocco può contenere codice HTML, parametri o altri blocchi
    // Essendo racchiuso in un commento html non genera output
    //
    // In entrambi i casi occorre che non ci siano spazi tra il tag di apertura
    // e quello di chiusura( e {...} )
    //  

    class zz_template
    {
     
     
    // carica template da file 
     
    function loadfile($templatefilename){
        
    $content=""
        if(
    file_exists($templatefilename)){
        if(
    $hfile fopen($templatefilename"r")){
           
    $content fread($hfilefilesize($templatefilename));
           
    fclose($hfile);
        }
      }
      
    $this->loadstring($content);
     }
     
     
    // carica template da stringa 
     
    function loadstring($template){
       
    $this->template $template;
     }
     
     
    // restituisce il codice prodotto dal template 
     
    function get(){
      return(
    $this->template);
     }
     

     
    // effettua la sostituzione di tutti i parametri (a prescindere dal blocco)
     // sostituisce tutti i parametri con i valori
     // i nomi dei parametri e i valori sono specificati rispettivamente dalle
     // chiavi e dai valori dell'array $params
     // Se bremove è false aggiunge una copia del parametro template 
     // dopo la sostituzione in modo da rendere possibili sostituzioni iterative
     //  
     
    function parse($params$bremove true){
        if(
    $params){
          
    $keys array_keys($params);
          for(
    $i=0$i<count($keys); $i++){ 
            
    $param_name  $keys[$i];
            
    $param_value $params[$param_name];
            
    $this->replace($param_name$param_value$bremove);
          }
        }
        return(
    $this->template);
     }

      
     
    // come parse ma effettua la sostituzione solo sul blocco block
     // sono sostituiti tutti e solo i parametri che si trovano sia nel blocco che 
     // nelle chiavi di $params 
     // Se bremove è false viene effettuata una copia del template-blocco in modo
     // da rendere possibili sostituzioni iterative
     // Se ci sono parametri con lo stesso nome ma fuori dal blocco o in altri blocchi
     // non vengono sostituiti
     //   
     
    function parse_block($block$params$bremove true){
        
    $block_str $this->getBlock($block);
        
    $block_content $this->getBlockContent($block);
        
    $template = new zz_template();
        
    $template->loadstring($block_content);
        
    $template->parse($paramstrue);
        
    $text $template->get().($bremove?"":$block_str);
        
    $this->template str_replace($block_str$text$this->template);
     }
     

     
    // Rimuove il blocco template block 
     
    function remove_block($block){ 
        
    $this->template str_replace($this->getBlock($block), ""$this->template);
     }
     
     
    //////////////////////////////////////////////////////////// 
     // metodi privati 
     
    function replace($param_name$param_value$bremove true){
       
    $param_tag "{".$param_name."}";
       
    $text $param_value.($bremove?"":$param_tag);
       
    $this->template str_replace($param_tag$text$this->template);
     }
     
     
    // prende template (inclusi i tag di beg/end)
     
    function getBlock($block){
        
    $startblock_str "";
        
    $endblock_str   "";
       
        if((
    $s strpos($this->template$startblock_str))===false) return "";
        if((
    $e strpos($this->template$endblock_str)) ===false) return "";
        
        return(
    substr($this->template$s$e-$s+strlen($endblock_str)));
     }
     
     
    // prende solo la parte interna al blocco
     
    function getBlockContent($block){
        
    $startblock_str "";
        
    $endblock_str   "";
       
        if((
    $s strpos($this->template$startblock_str))===false) return "";
        if((
    $e strpos($this->template$endblock_str)) ===false) return "";
        
        
    $offset strlen($startblock_str);
        
    $s += $offset
        
        return(
    substr($this->template$s$e-$s));
     }
      
     
    // template e prodotto 
     
    var $template;
     

    Come si può aggiornare per far si che includa pagine?
    MITTICCOOOOOOOOO!

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.