Il mio codice è il seguente:
content.tpl:
{* Smarty *}
{extends file='PageContentLayout.tpl'}
PageContentLayout.tpl
{* Smarty *}
{block name="file_name"}
<p>{$smarty.current_dir}</p>
<p>{$smarty.template}</p>
{/block}
{block name="other_content"}
...
{* blah... *}
...
{/block}
Nelle versioni precedenti di Smarty, questo codice stamperebbe il nome del modello e il percorso del file: content.tpl
.
Tuttavia, ho appena aggiornato a 3.1.29, e ora sembra che sia il nome del file di base PageContentLayout.tpl
che viene stampato.
Presumo che si tratti di un cambiamento intenzionale di progettazione in diverse versioni di Smarty, ma non riesco a trovare alcuna documentazione su queste modifiche.
Quello che mi piacerebbe davvero sapere, però, è quale è il modo migliore per ottenere la precedente funzionalità?
== == EDIT
Ho notato che anche quando si chiama {$smarty.current_dir}
dalla estendere ing di file, ancora otteniamo percorso e il nome della base-file. Questo è un cambiamento piuttosto significativo rispetto alle versioni precedenti, e piuttosto serio nel mio caso, perché non riesco più a scrivere codice dinamico per trovare il percorso del file di livello superiore.
Penso che ora è necessario spostare il blocco 'file_name' sul modello secondario' content.tpl' per ottenere il nome file. –
@ PawełMikołajczuk No. Io dico esplicitamente nel mio == EDIT == block, che mettendo lo stesso codice nel template secondario, rende il percorso e il nome del file del genitore !! Pazzo pazzo, no? Cambiamenti importanti da introdurre in un livello di rilascio minore. – cartbeforehorse
Ouć;/usiamo smarty in Newscoop ma ci siamo fermati al 3.1.21. Gli ultimi cambiamenti sono enormi e dovrebbero essere marchiati almeno come 3.2.x o addirittura 4.x.Ho paura che ora il tuo caso d'uso non sia possibile (puoi trovare informazioni sui cambiamenti nella mia risposta) e il migliore sarà il downgrade al 3.1.27 –