2012-08-08 3 views
0

ubercart 폼 데이터를 신속하게 변경하고 싶습니다. 장바구니에서 제품 노드에 대한 링크를 제거하고 싶습니다. hook_form_alter()를 새 모듈 (링크 및 코드)을 만들어 구현하는 방법을 발견했습니다.hook_form_alter - in 모듈 또는 template.php

제 질문은, 새 모듈을 만들어야합니까, 아니면이 기능을 테마의 template.php 파일에 추가 할 수 있습니까? 나는 나중에 시도했지만 couldnt 할 일을 (나는 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']); 
     } 
    } 
    } 
} 

답변

3

hook_form_alter() 테마 그래서 당신의 template.php 파일에 그것을 잘되어 퍼팅 모듈 모두에 대해 호출 년대 후크 중 하나입니다.

실제로이 기능은 Drupal 7의 기능 버전에서 문서화되었지만 Drupal 6 버전에서는이 기능을 놓친 것으로 보입니다.

훅을 추가했으면 드루팔 (Drupal)의 캐시를 지워야합니다.

+0

감사 클라이브 +1 드루팔 6에서 주제를 호출되지 않습니다. 어떤 이유로 themeName_form_alter가 호출되지 않습니다 (나는 dd()를 함수의 맨 위에 추가했습니다). 결국 장바구니에 HTML을 생성하는 themeName_uc_cart_view_form()을 오버로드 시켰습니다. – spiderplant0

+0

안녕하세요 클라이브, 내 custom 모듈에 hook_form_alter를 시도했습니다. 하지만 작동하지 않습니다. 이 문제에 대한 구체적인 이유가 있습니까? – Ananth

4

그냥이 찾고 다른 사람에 대한 확인, Clive's solution에 추가 : hook_form_alter