Как переопределить функцию модуля в своем шаблоне?

Главные вкладки

Аватар пользователя Rooner Rooner 14 марта 2012 в 19:53

Вобщем стоит Drupal+Ubercart я внес изменения в сам модуль Ubercarta, а именно в функцию "theme_uc_cart_checkout_form", которая лежит в sites\all\modules\ubercart\uc_cart\uc_cart.pages.inc, т.е. я просто изменил эту функцию. Но это же не правильно. Когда модуль обновится он может перезаписать этот файл и будет полный... ну вы поняли) Короче можно както переопределить эту функцию? Если хуком, то каким?

Комментарии

Аватар пользователя bsyomov bsyomov 15 марта 2012 в 0:27

В template.php вашей темы, делаете функцию названиевашейтемы_uc_cart_checkout_form(), копируете туда ваш измененный код.
А вообще почитайте про темизацию - полезно.

Аватар пользователя Rooner Rooner 15 марта 2012 в 11:12

"bsyomov" wrote:
В template.php вашей темы, делаете функцию названиевашейтемы_uc_cart_checkout_form(), копируете туда ваш измененный код.

Спасибо, то что нужно.

Аватар пользователя Rooner Rooner 20 марта 2012 в 14:55

Получается переопределять только Функции из модуля, которые начинаются на theme_название_функции. Как переопределить в своем шаблоне функцию:
function uc_cart_view_form($form_state, $items = NULL)

function названиетемы_uc_cart_view_form($form_state, $items = NULL) - не переопределяется(

Аватар пользователя bsyomov bsyomov 20 марта 2012 в 16:39

Формы переопределяются через hook_form_alter(), и делается это обычно не на уровне темизации, а в своём модуле.
Можно конечно делать это через preprocess функции, но лучше разделять изменение форм(функционала) и темизацию - изменение внешнего вида.