2017-07-07 9 views
0

異なるフォルダにテンプレートを呼び出すためのパスを含めることは、実際には別のフォルダにテンプレートを含めるために行くためにSmartyのテンプレートディレクトリ - 地図

{include file='fake/path/to/template.tpl'} 

を上書きすることは可能ですか?

real/path/to/template.tpl 

我々は最近、ベンダーフォルダに我々のコードの一部(プラグイン)に移動し、私たちは一つ一つのSmartyのファイルを変更することなく、簡単な解決策を見つけようとしているので、私はこれを求めています。 (何百もある)

PS。シンボリックリンクの使用を避けることができれば、それは素晴らしいことでしょう!

答えて

1

文字列(偽のURL)を取り、文字列(実際のURL)を出力する関数を書くことができます。

function getRealURL($tpl_filename) { 
    $path = '../real/path/to/'; 
    if(file_exists($path.$ui_view)) { 
     return $ui_view; 
    } 
    return $tpl_filename; 
} 

私は、他の要因と同様の機能を使用していますが、これは新しいファイルが指定されたパスに存在していることをいくつか検証して、それの基本です。また、特定のディレクトリにあるファイルのホワイトリストにも簡単に使用できます。

私はこれをこのように呼び出すことができると信じています。 {includeファイル= '偽/パス/ to/template.tpl' | getRealURL}