2010-04-09 28 views
1

有一些產品我希望有一個特殊的結帳完成消息,它與默認值不同。如何從我的模塊動態更改ubercart的默認消息

我知道我可以做到這一點改變默認重定向頁面到別的東西。 [而且我不知道是否會引入另一個問題]

不過,我想知道是否有處理這個問題的標準/更好的辦法

感謝!

d

回答

1

找到考慮String Overrides模塊。下面是一個關於它的報價(來自模塊的項目頁面):

提供了一種快速簡單的方法來替換網站上的任何文本。

特點:

  • 輕鬆更換這些透過t()
  • 區域支持通過任何東西,可以讓你重寫字符串在任何語言
  • 能夠導入/導出* .po文件,從輕鬆遷移Locale模塊
  • 請注意,這不會取代Locale,因爲有數千個覆蓋會導致更多的痛苦,然後受益。只有在需要進行一些簡單的文字更改時才使用此功能。
+0

去證明通常有一個更簡單的方法:-) – dkinzer 2010-04-12 19:14:49

0

我想幹什麼,我想的是覆蓋的主題功能說的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; 
    } 
} 

需要注意的是這是不夠的,有這個功能是非常重要的模塊。預處理函數僅在調用覆蓋主題函數的模板文件時纔會調用。

更多細節可以在http://drupal.org/node/223430