danielec Posted September 17, 2009 Share Posted September 17, 2009 Inanzitutto ciao a tutti! Ho necessità di inserire uno script php che esegue una ricerca all'interno di un file *.tpl.Il file si chiama ricerca.tpl e lo script che esegue la query e fa il dump dei record restituiti si chiama ricerca1.php.Leggendo il manuale ufficiale di smarty ho visto che sono possibili 2 alternative.La prima è quella di utilizzare il tag include_php all'interno di ricerca.tpl ed infatti ho fatto in questo modo: {include_php file="prestashop/modules/ricerca/ricerca1.php"} Ma restituisce il seguente errore: Warning: Smarty error: file:prestashop/modules/ricerca/ricerca1.php is not readable in C:\wamp\www\prestashop\tools\smarty\Smarty.class.php on line 1095 Warning: include() [function.include]: Filename cannot be empty in C:\wamp\www\prestashop\tools\smarty\Smarty.class.php on line 1930 Warning: include() [function.include]: Failed opening '' for inclusion (include_path='.;C:\php5\pear') in C:\wamp\www\prestashop\tools\smarty\Smarty.class.php on line 1930 La seconda strada è quella di inserire il codice php dello script nel file template, richiamando la funzione include() con il path dello script, e ho fatto in questo modo: {php} include("/prestashop/modules/ricerca/ricerca1.php"); {/php} Ma restituisce il seguente errore: Warning: include(/prestashop/modules/ricerca/ricerca1.php) [function.include]: failed to open stream: No such file or directory in C:\wamp\www\prestashop\tools\smarty\compile\%~^7EA^7EA5212D%%ricerca.tpl.php on line 61 Warning: include() [function.include]: Failed opening '/prestashop/modules/ricerca/ricerca1.php' for inclusion (include_path='.;C:\php5\pear') in C:\wamp\www\prestashop\tools\smarty\compile\%~^7EA^7EA5212D%%ricerca.tpl.php on line 61 Dimenticavo: Prestashop 1.2.2.0.Grazie a tutti dell'aiuto Link to comment Share on other sites More sharing options...
Germanoufo Posted September 17, 2009 Share Posted September 17, 2009 Cosa devi cercare ? Esistono più moduli per quanto riguarda la ricerca Ciao ;-) Link to comment Share on other sites More sharing options...
danielec Posted September 17, 2009 Author Share Posted September 17, 2009 Grazie della risposta ma è una ricerca particolare su una tabella del db non creata da PS ma da me.Devo proprio creare un modulo personalizzato e inserire lo script php nel tpl.Grazie! Link to comment Share on other sites More sharing options...
Germanoufo Posted September 17, 2009 Share Posted September 17, 2009 Allora non riescoa seguirti Ciao ;-) Link to comment Share on other sites More sharing options...
danielec Posted September 17, 2009 Author Share Posted September 17, 2009 Scusa magari non mi sono espresso bene.Allora ho creato un dir chiamata /ricerca (subdir di /modules) contenente 3 file: ricerca.tpl (contiene il form di inserimento dati e tramite POST invia i dati alla pagina che esegue la query. è qui che devo inserire lo script) ricerca.php (che crea la classe ricerca con relativo costruttore e fa l'hook sulla home page di PS) e ricerca1.php (che esegue la connessione al db, fa la query ed esegue il dump dei record restituiti dalla query).Ora la mia necessità è questa: far si che l'output restituito dalla pagina ricerca1.php venga inclusa nella home page di PS.Come ho scritto ho tentato, leggendo la docs ufficiale di smarty, le 2 strade percorribili: utilizzando il tag include_php all’interno di ricerca.tpl (vedere codice e relativo errore sopra) oppure inserire il codice php dello script in ricerca.tpl, richiamando la funzione include() con il path dello script (vedere codice e relativo errore sopra).Grazie dell'aiuto! Link to comment Share on other sites More sharing options...
disarci Posted September 17, 2009 Share Posted September 17, 2009 Ciao, la tua strada è giusta, anche se non ho mai provato direttamente, ma di sicuro devi dare un path relativo (preso dalle variabili di smarty).es: {$base_dir}Quello però che mi sfugge in tutto quello che hai scritto:1) crei un modulo che includa il tuo php, 2) memorizzi in una matrice il tuo risultato e lo passi a smarty3) leghi il modulo ad un hook (es. in home)4) nel tuo tpl cicli per vedere i risultatiquesto è il metodo "classico" si prestashop, perché non dovrebbe andare nel tuo caso?cosa cambia? Link to comment Share on other sites More sharing options...
danielec Posted September 18, 2009 Author Share Posted September 18, 2009 Risolto, grazie a tutti ugualmente Link to comment Share on other sites More sharing options...
danielec Posted September 18, 2009 Author Share Posted September 18, 2009 Non so some mettere risolto nel titolo del post.Se qualcuno può farlo grazie.Ciao Link to comment Share on other sites More sharing options...
disarci Posted September 18, 2009 Share Posted September 18, 2009 Per mettere Risolto:vai sul primo topic e clicchi su edit2) per favore dicci come hai risolto, per curiosità mia e per i posteri che avranno lo stesso problema.Grazie Link to comment Share on other sites More sharing options...
danielec Posted September 18, 2009 Author Share Posted September 18, 2009 Ho messo in pratica quello che mi hai detto.- Ho memorizzato in una matrice i valori restituiti dalla query- Ho assegnato il risultato a smarty- Ho fatto l'hook sulla home- Ho ciclato tramite il costrutto {foreach} e {/foreach} sul file tpl e ho buttato in output i risultatiGrazie davvero! Link to comment Share on other sites More sharing options...
disarci Posted September 18, 2009 Share Posted September 18, 2009 Figurati, fa piacere,bravo! Link to comment Share on other sites More sharing options...
Germanoufo Posted September 18, 2009 Share Posted September 18, 2009 devi premere nel post che hai aperto edit e poi modificare il titolo Ciao ;-) 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