有一些產品我希望有一個特殊的結帳完成消息,它與默認值不同。如何從我的模塊動態更改ubercart的默認消息
我知道我可以做到這一點改變默認重定向頁面到別的東西。 [而且我不知道是否會引入另一個問題]
不過,我想知道是否有處理這個問題的標準/更好的辦法。
感謝!
d
有一些產品我希望有一個特殊的結帳完成消息,它與默認值不同。如何從我的模塊動態更改ubercart的默認消息
我知道我可以做到這一點改變默認重定向頁面到別的東西。 [而且我不知道是否會引入另一個問題]
不過,我想知道是否有處理這個問題的標準/更好的辦法。
感謝!
d
找到考慮String Overrides模塊。下面是一個關於它的報價(來自模塊的項目頁面):
提供了一種快速簡單的方法來替換網站上的任何文本。
特點:
- 輕鬆更換這些透過t()
- 區域支持通過任何東西,可以讓你重寫字符串在任何語言
- 能夠導入/導出* .po文件,從輕鬆遷移Locale模塊
- 請注意,這不會取代Locale,因爲有數千個覆蓋會導致更多的痛苦,然後受益。只有在需要進行一些簡單的文字更改時才使用此功能。
我想幹什麼,我想的是覆蓋的主題功能說的Ubercart用來顯示信息的唯一其他可能的方式。這可能似乎是最有意義的。
在這種情況下,我會覆蓋theme_uc_cart_complete_sale
我可以設置一個
$_SESSION['is_special_product'] == TRUE;
,然後,如果它被設置設爲$消息我$ special_message。
if ($_SESSION['special_product']) {
$special_message = t('This is my special message');
$message = variable_get('special_product_message', $special_message;
}
最後,從我的模塊覆蓋我需要掛接到前處理鉤:
function $modulename_prepocess_$hook(&$message) {
if ($_SESSION['special_product']) {
$special_message = t('This is my special message');
$message = variable_get('special_product_message', $special_message;
}
}
需要注意的是這是不夠的,有這個功能是非常重要的模塊。預處理函數僅在調用覆蓋主題函數的模板文件時纔會調用。
去證明通常有一個更簡單的方法:-) – dkinzer 2010-04-12 19:14:49