2012-10-26 103 views
0

在現有的代碼庫裏面的語法,我發現了一個行無法理解的Smarty foreach循環

{foreach from=$app_list item=app name=apps} 
     {item table=application sid=$app.APPLICATION_SID} 
    {/foreach} 

我找不到解釋,在文檔中的第{項...},也沒有找到在哪裏applicationsid是定義。

任何人都可以解釋這行是幹什麼的?沒有這一行,應用程序名稱列表無法顯示。

+1

http://www.smarty.net/docs/en/language.function.foreach.tpl – Jocelyn

+0

'{item ...}'是一個自定義函數。檢查[這裏](http://www.smarty.net/docs/en/language.function.function.tpl) –

+0

@iJD謝謝你的回答。我閱讀文檔並認爲函數調用是唯一合理的解釋。但問題是,我用'/ function'搜索了整個項目,但是找不到這個函數的定義,也沒有像'var = application'這樣的定義。我應該搜索其他可能性嗎? – xiaochuanQ

回答

0

檢查調用此函數的代碼。在那裏設置最有可能的application$app

0

它絕對看起來像一個自定義函數。有兩種可能性:

  1. 有一個模板正在被定義一個自定義函數。尋找字符串{function item{function name=item

  2. 它也可能是一個用PHP編寫的聰明的擴展。查找名爲function.item.php的文件。它可能位於Smarty的plugins目錄中,或者它可能位於源代碼樹中的某處。您可以嘗試查看您的項目爲Smarty使用的設置代碼,並查看是否調用了Smarty方法setPluginsDir()addPluginsDir()方法。如果您使用的是較早版本的Smarty,請參閱->plugins_dir