當我包含一個模板並且可以在其中更改模板的路徑時,是否會執行一些鉤子類型?模板工具包包含鉤子?
例如
[% INCLUDE test %]
而且我希望到路徑更改爲「測試」是像「AE/test.tt」或「FR/test.tt」。
這個想法是改變模板的路徑而不改變包含的模板。
當我包含一個模板並且可以在其中更改模板的路徑時,是否會執行一些鉤子類型?模板工具包包含鉤子?
例如
[% INCLUDE test %]
而且我希望到路徑更改爲「測試」是像「AE/test.tt」或「FR/test.tt」。
這個想法是改變模板的路徑而不改變包含的模板。
這樣做的正常方式是構建你的Template
對象時使用INCLUDE_PATH
參數:
my $tt = Template->new({INCLUDE_PATH => 'AE'});
構建新Template
實例不是任何大問題,所以有沒有強烈的理由,當您即將處理模板時,不會隨時隨地創建新的模板,但是,如果您處於持久環境並且確實需要性能,始終可以選擇創建多個模板:
my %tt;
$tt{ae} = Template->new({INCLUDE_PATH => 'AE'});
$tt{fr} = Template->new({INCLUDE_PATH => 'FR'});
# ... code ... code ... code ...
$lang = 'ae';
# ... code ... code ... code ...
$tt{$lang}->process($template_name);
我認爲這是可能這樣Template
例如:
[% mytest = 'AE/test.tt' %]
[% INCLUDE $mytest %] # 'AE/test.tt'
這裏沒有測試。
見http://template-toolkit.org/docs/manual/Directives.html#section_INCLUDE
的想法是路徑動態變化,以模板 – bliof
10倍,這可能工作,因爲我可以通過一個子到INCLUDE_PATH(我用的舞者和我用的是內置的模板引擎處理)。據我所知,沒有任何類型的鉤子,這可以讓我改變模板名稱或任何類型的內置別名功能(例如,傳遞散列的位置和包含INCLUDE以使用將模板名稱作爲關鍵字並將值作爲模板的真實路徑),對嗎? – bliof
我不知道有任何掛鉤或別名功能,沒有。 –