paolo_m Posted October 10, 2009 Share Posted October 10, 2009 Ho una serie di file html molto semplici tipo quelli delle pagine Cms.Variano spesso e sono creati da diversi autori... non posso/voglio ri-crearle tutte come pagine del cms (anche se basterebbe una serie di crtl-c ctrl-v) in quanto non dovrebbero apparire nella mappa del sito e non serve indicizzarle, ecc. ... inoltre essendo molte mi sa di andare ad appesantire il dbase... Da una pagina del cms, oltre alla spiegazione generica, vorrei mettere una serie di link che dovrebbero aprire questi file e farli apparire al posto della pagina stessa.Avrei una sola pagina per argomento da tenere aggiornata in caso di aggiunta/rimozione ma le modifiche sono tutte nei singoli files.Il link dovrebbe far passare ad un php il nome del file.Tipo Leggimi... Il file XXXX.php dovrebbe essere simile a cms.php, ma che ci scrivo per intercettare il valore di "paginahtml' ?E come do in pasto al file XXXX.tpl (simile ovviamente a cms.tpl) il contenuto del file ?...si capisce molto che non ne capisco una mazza di php??? :-) Thank's Link to comment Share on other sites More sharing options...
paolo_m Posted October 17, 2009 Author Share Posted October 17, 2009 Ci sono quasi. :-) -In una cartella chiamata 'cms' dentro PS ho i files .html (roba semplice, solo formattazione di base.)-Creato cmslink.php e posizionato nella cartella pricipale di PS. <?php include(dirname(__FILE__).'/config/config.inc.php'); //will be initialized bellow... if(intval(Configuration::get('PS_REWRITING_SETTINGS')) === 1) $rewrited_url = null; include(dirname(__FILE__).'/init.php'); //la chiamata è STORE/cmslink.php?ID=prova $srcFile= dirname(__FILE__).'/cms/'.$_GET['ID'].'.html'; //leggo la variabile 'srcFile' e ci attacco davanti l'url del sito + la cartella dove ho i files e dietro '.html' if ( $code = file_get_contents($srcFile)) { include(dirname(__FILE__).'/header.php'); echo $code ; //funziona //return $this->display(_PS_THEME_DIR_, 'cmslink.tpl'); //$smarty->assign('code' => $code); //$smarty->display(_PS_THEME_DIR_.'cmslink.tpl'); include(dirname(__FILE__).'/footer.php'); } else Tools::redirect('404.php'); ?> -Creato cmslink.tpl e messo nella cartella del tema. {$code} {l s='Home'} Con un link in una pagina apposita del Cms, ma potrebbe essere ovunque, chiamo cmslink.php: Link da seguire Succede che al posto della pagina Cms mi ritrovo il contenuto del file .html... con ps tutto intorno.Fantastico... :cheese: Ora basterebbe fargli usare il tpl così da averlo con lo stesso stile, o si può fare direttamente da php?Purtroppo mi sono impantanato... chi mi da una dritta per qualcosa di meglio dell'echo?Thank's Link to comment Share on other sites More sharing options...
disarci Posted October 18, 2009 Share Posted October 18, 2009 Semplicemente invece di fare un echo,fai un smarty assign e passi a smarty il contenuto della tua variabilenella pagina smarty (che devi crearti copia quella CMS se vuoi lo stesso stile)metti tra parentesi graffe la tua variabile ed ecco il tuo echo! Link to comment Share on other sites More sharing options...
paolo_m Posted October 18, 2009 Author Share Posted October 18, 2009 Trovato l'errore! $smarty->assign('code', $code); Non ci andava => ma una virgola, l'esempio che avevo "cannibalizzato" prevedeva il passaggio di una matrice e non un singolo valore.Grazie Disarci...Come funzionalità di base sono a posto... appena ho voglia di "farmi male ancora" ci metto mano per infiocchettarlo con qualcosina in più. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now