0

我想快速更改 ubercart 表单数据(我想删除到购物车中产品节点的链接)。我找到了一个解决方案,该解决方案涉及通过创建一个新模块(下面的链接和代码)来实现 hook_form_alter()。

我的问题是,我是否必须制作一个新模块,或者我可以将此功能添加到我的主题的 template.php 文件中吗?我尝试了后者,但我无法让它工作(我将函数重命名为 theNameOfMyTheme_form_alter)。

(这里更大的问题是我试图了解所有这些drupal 6覆盖的东西。例如,如果我遇到一些我想改变的代码,你怎么知道你是应该创建一个模块还是改变你的主题? )。

http://www.ubercart.org/forum/support/2298/remove_product_links_shopping_cart

function your_module_form_alter(&$form, &$form_state, $form_id) {
  if($form_id == 'uc_cart_view_form') {
    foreach($form['items'] as $key => $item) {
      if(!empty($item['desc']['#value'])) {
        $form['items'][$key]['desc']['#value'] = strip_tags($item['desc']['#value']);
      }
    }
  }
}
4

2 回答 2

4

添加到Clive 的解决方案中,只是为了向其他正在寻找这个的人确认:hook_form_alter在 Drupal 6 中不需要主题。

于 2013-02-04T17:11:13.990 回答
3

hook_form_alter()是为主题和模块调用的钩子之一,因此将它放在您的 template.php 文件中就可以了。

它实际上记录在 Drupal 7 的功能版本上,但我猜他们在 Drupal 6 版本上错过了它。

记得在添加钩子后清除 Drupal 的缓存,以便它被拾取。

于 2012-08-08T22:43:35.963 回答