2012-07-15 4 views
3

Drupal 7에서 노드에 프로그래밍 방식 양식을 추가해야합니다. 노드에 양식을 첨부하는 방법은 무엇입니까?프로그래밍 방식으로 Drupal 7에서 노드에 양식을 추가하는 방법?

function addtabexample_form($node, &$form_state) { 
    $type = node_type_get_type($node); 

    $form['title'] = array(
    '#type' => 'textfield', 
    '#title' => check_plain($type->title_label), 
    '#default_value' => !empty($node->title) ? $node->title : '', 
    '#required' => TRUE, 
    '#weight' => -5, 
); 

    $form['field1'] = array(
    '#type' => 'textfield', 
    '#title' => t('Custom field'), 
    '#default_value' => $node->field1, 
    '#maxlength' => 127, 
); 


    return $form; 
} 

답변

3

코드는 일부 재 작성 ..., 내가 일을 할 수있는 괜찮은 소스 Form API Quickstart을 읽는 게 좋을 것 첫째을 필요로 몇 가지 문제가있다.

$ node 객체를 어떻게 가져올 지 모르겠습니다. 함수 매개 변수에 $ node가 있고 반환 값으로 $ form이 있습니다 ...

노드에 임베드 할 수있는 양식의 예 (D7 부분 추가)는 http://drupal.org/node/197122을 참조하십시오. 하지만 그렇게하는 것은 매우 나쁩니다. 기능 재 명명 문제, 인덱싱 문제 및 많은 문제가 발생할 것입니다.

저는 이것이 실제 답변이 아니라는 것을 알고 있습니다. 그러나 이것을 500 자로 작성하는 방법을 모르겠습니다.

6

는이 무하마드 ... 작동 hook_node_view()

function [YOUR_MODULE]_node_view($node, $view_mode, $langcode) 
{ 
    $my_form = drupal_get_form('addtabexample_form', $node); 
    $node->content['my_form_attached'] = array(
     '#markup' => drupal_render($my_form), 
     '#weight' => 10, 
    ); 
} 

희망을 사용하여,이 코드 샘플을 따를 수 있습니다.

+1

아주 간편한 발췌문입니다. 감사. – stefgosselin

관련 문제