是否可以在smarty中的配置文件中定義數組?例如我想要在配置文件(位於/ configs)中有小數據庫 - 很少(約20)產品說明:標題,價格,說明。之後,我想通過foreach或部分列出它。 如何在沒有MySql或其他數據庫引擎的Smarty中定義該數組。我可以這樣做嗎?通過配置文件在smarty中定義數組
2
A
回答
6
您可以在配置文件中定義數組,你需要設置$ config_overwrite = FALSE。 你可以看看這個頁面:config_overwrite
$smarty = new Smarty;
$smarty->config_overwrite=false;
的配置文件。
# row colors
rowColors = #FF0000
rowColors = #00FF00
rowColors = #0000FF
帶有{section}循環的模板。
<table>
{section name=r loop=$rows}
<tr bgcolor="{cycle values=#rowColors#}">
<td> ....etc.... </td>
</tr>
{/section}
</table>
0
我看了一下Smarty文檔,特別是this頁面。
我沒有看到一個數組在這裏初始化的例子,我懷疑Smarty不支持在其配置文件中初始化數組,因爲配置文件似乎是簡單的鍵值存儲。您當然可以嘗試在配置文件中初始化數組,並讓我們知道它是否適用於您。
在其他Smarty文檔頁面上,它看起來像初始化數組的首選位置在.php頁面中,用於初始化值並在顯示模板之前將其加載到模板中。
0
再次因爲格式化:
這似乎是對的。在那裏定義數組是不可能的。我什麼都試過..終於,我用分配陣列從控制器(如你所說):
PHP:
$smarty->assign('list', array(1,2,3,4));
product.conf
[1]
client=
url=
price=
description=
[2]
client=
url=
price=
description=
[3]
client=
url=
price=
description=
[4]
client=
url=
price=
description=
TPL:
{foreach from=$list item=current name=prod}
{config_load file='product.conf' section=$current}
{$smarty.config.client}
{$smarty.config.url}
{$smarty.config.price}
{$smarty.config.description}
{/foreach}
0
有沒有什麼理由需要在smarty中完成這個需求?看起來,如果你只是在PHP中創建數組並傳遞給smarty變量,它可能會更有前途。這樣,如果你離開smarty,所有的數據仍然可以訪問,無需任何重新編碼。
1
有人在smarty論壇找到了一種方法。請參閱:
相關問題
- 1. Smarty模板 - 無法從自定義配置文件獲取值
- 2. 如何在smarty模板文件中分配數組?
- 3. 如何在smarty模板文件中分配對象數組
- 4. PhoneGap應用程序通過配置文件進行自定義
- 5. 如何通過自定義屬性獲取配置文件?
- 6. 用Smarty循環通過二維數組
- 7. 在smarty中分配關聯數組
- 8. 如何通過配置在Jetty中設置自定義的WebAppClassLoader?
- 9. 自定義配置文件
- 10. 如何通過配置文件配置在Jetty中登錄?
- 11. 無法在FirefoxDriver中加載自定義配置文件:構造函數FirefoxDriver(Firefox配置文件)未定義
- 12. 自定義smarty php插件中的多維數組
- 13. 如何通過配置文件共享文件時自定義Intent選擇器?
- 14. 在.my.cnf中配置自定義組?
- 15. 定義sourceDirectory在Maven的配置文件
- 16. asp.net中的自定義配置文件
- 17. 通過配置文件指定API端點參數
- 18. Maven - 我可以在配置文件定義中引用配置文件ID嗎?
- 19. 如何在ipython配置文件中定義函數?
- 20. 通過配置文件名稱呼叫配置文件提供程序配置
- 21. 通過自定義適配器設置多個TextView的文本
- 22. Rails - 環境配置文件中的自定義配置?
- 23. Knockout.js通過PARAMS自定義組件
- 24. 在smarty中處理數組
- 25. INNO設置:在安裝包中定義配置文件
- 26. 如何在smarty模板文件中定義變量?
- 27. 通過webkit安裝iphone配置文件
- 28. 迭代通過Github配置文件JSON
- 29. 通過manifest.yml文件配置目錄項
- 30. Codeigniter:從自定義庫中獲取自定義配置文件?
這似乎是真的。在那裏定義數組是不可能的。我試了一切..最後我用控制器分配數組(如你所建議的): php: $ smarty-> assign('list',array(1,2,3,4)); 產品。CONF [1] 客戶= BLA URL = BLA 價格= BLA 描述= BLA [2] 客戶= URL = 價格= 描述= [3] 客戶= URL = 價格= 描述= [4] 客戶= URL = 價格= 描述= TPL: {{foreach from = $ list item = current name = prod} {config_load file ='product.conf'section = $ current} {$ smarty.config.client} {$ smarty.config.url} { $ smarty.config.price} {$ smarty.config.description} {/ foreach} – quardas 2009-11-10 13:29:52