Я предполагаю, что единственный другой возможный способ сделать то, о чем я думаю, это переопределить функцию темы , которую ubercart использует для отображения сообщения.И это, вероятно, кажется наиболее разумным.
В этом случае я бы переопределил theme_uc_cart_complete_sale
Я мог бы установить
$_SESSION['is_special_product'] == TRUE;
и затем установите $ message для моего $ 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