Mein Code ist wie folgt:
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}
In früheren Versionen von Smarty, Dieser Code würde den Vorlagennamen und den Pfad der Datei ausgeben: content.tpl
.
Allerdings habe ich gerade auf 3.1.29 aktualisiert, und es scheint jetzt, dass es der Name der Basisdatei PageContentLayout.tpl
ist, die gedruckt wird.
Ich nehme an, dass dies eine bewusste Designänderung in verschiedenen Versionen von Smarty ist, aber ich kann keine Dokumentation zu diesen Änderungen finden.
Was ich wirklich gerne wissen würde, ist, was der beste Weg, um die ehemalige Funktionalität zu erreichen ist?
== == EDIT
Ich habe bemerkt, dass, selbst wenn {$smarty.current_dir}
vom verlängern Aufruf Datei ing, wir immer noch die Basis-Dateipfad und den Dateinamen erhalten. Dies ist eine ziemlich signifikante Änderung gegenüber früheren Versionen und in meinem Fall sehr ernst, da ich keinen dynamischen Code mehr schreiben kann, um den Pfad der obersten Ebene zu finden.
Ich denke, dass Sie jetzt 'file_name' Block zu Kind Vorlage' content.tpl' bewegen müssen, um es Dateiname zu bekommen. –
@ PawełMikołajcuk Nein. Ich sage speziell in meinem == EDIT == Block, dass der gleiche Code in die untergeordnete Vorlage, den Pfad und den Dateinamen der Eltern !! Verrückter Freak, nein? Hauptänderung, die in einer Nebenversion eingeführt wird. – cartbeforehorse
Ouć/Wir verwenden Smarty in Newscoop, aber wir haben am 3.1.21 angehalten. Die letzten Änderungen sind enorm und sie sollten mindestens als 3.2.x oder sogar 4.x gebrandmarkt werden.Ich habe Angst, dass jetzt Ihr Anwendungsfall nicht möglich ist (Sie können Informationen über Änderungen in meiner Antwort finden) und am besten wird es sein, auf 3.1.27 herunterzustufen. –