2013-07-30 53 views
0

SETUP創建自定義標籤:樹枝:調用一個函數

  • 嫩枝1.13.1
  • PHP 5.4.3

問題:

我需要幫助建立一個自定義標籤,調用一個我已經建立了功能...


目前代碼:

模板代碼

{% set stories = get_latest_stories(2, sports) %} 

{% for story in stories %} 
    {{ story.headline }} <br> 
{% endfor %} 

控制器

$function = new Twig_SimpleFunction('getViewStories', function (section, limit) { 
    return news_stories::getStories(section,limit); 
}); 
$twig->addFunction($function); 
$twig->render("storyList.html"); 

目標:

不與說我想用一個自定義標籤一樣

{% get_latest_stories 2 sports %} 

調用相同的功能之上。新辦法看起來更好,並且更易於遵循

回答

1

下面是簡單的例子,如何寫樹枝延伸 下面的代碼是從我的未完成項目採取

function file_import($value){ 
    //some code here 
    return $value; 
} 
$app['twig']->addFunction('file_import', new Twig_Function_Function('file_import')); 

使用

{{ file_import('value') }} 
+0

我們使用的django模板非常類似於模板標籤中的樹枝。爲了處理轉移到php,我們希望保留大部分模板標籤,並在其周圍編寫代碼,這樣我們幾乎可以移動所有模板而無需更改它們。 –

1

爲什麼不取你的故事在控制器而不是模板?這似乎並不像視圖層工作...

所以,這樣的事情:

$twig->render("storyList.html", array(
    'stories' => news_stories::getStories($section, $limit) 
)); 

然後,你就會有一個stories變量可以在你的模板。

+0

我在哪裏設置「getStories($ section,$ limit)」部分和限制「 –

+1

我不知道你的應用程序,所以我不能告訴你。當你在模板中調用函數時,你從哪裏得到它們? – theunraveler