2012-06-01 25 views
1

有點奇怪,但我使用的電子商務平臺叫做CS-Cart,它使用smarty作爲模板語言。它有一個聰明的調試控制檯,可以讓我看到當前頁面正在使用哪些變量。重寫Array中的變量 - Smarty

例如,這裏是正在使用的陣列(我已經縮短此爲例子):

Appearance => Array (33) 
    products_per_page => "10" 
    admin_products_per_page => "10" 
    admin_elements_per_page => "10" 
    columns_in_products_list => "3" 
    default_products_sorting => "price" 

我想能夠分配一個不同的值,以default_products_sorting => "price" 我打算做這是在我的文檔的標題中,因爲它將包含在IF語句中,從而只有在某些條件爲真時纔會更改變量。

這是在smarty甚至可能嗎? (沒有使用PHP),如果有的話,關於如何實現這一點的任何想法?我搜索了Google,但到目前爲止還是空白。

任何幫助,非常感謝。

回答

1

可以改變變量這樣

{$Appearance.default_products_sorting = "NEW_VALUE"} 

這行後,如果您使用{$Appearance.default_products_sorting}你應該得到新的價值。

我剛剛檢查,它的工作。

您應該在smarty模板的頂部更改它,以便使用此變量的任何代碼都可以獲取更新後的值。

看起來上面的方法不適用於arrays。您可以考慮使用自定義功能,從這個鏈接http://www.smarty.net/forums/viewtopic.php?t=7201&highlight=create+array

+0

感謝您的答覆,我只是嘗試這樣做,它沒有工作,但後來我發現這裏面{$設置} - 什麼我不確定現在是怎樣的語法應改變?編輯:我試過{$ settings.Appearance.default_products_sorting =「NEW_VALUE」}但這似乎打印舊值。 – user319940

+0

在這種情況下,你可以嘗試'$ settings.Appearance.default_products_sorting' –

+0

請參閱我的編輯:) – user319940