我想快速更改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']);
}
}
}
}
答案 0 :(得分:4)
添加到Clive's solution,只是为了确认是否有其他人在寻找这个:hook_form_alter
不会在Drupal 6中调用主题。
答案 1 :(得分:3)
hook_form_alter()
是为主题和模块调用的一个钩子,所以把它放在你的template.php文件中就可以了。
实际上已经记录了对Drupal 7函数版本的影响,但我猜他们在Drupal 6版本上错过了它。
一旦你添加了钩子,请记住清除Drupal的缓存,以便它被拾取。