2011-03-18 3 views
0

모듈 개발에 대한 지식을 향상시키고 싶습니다. (기초에서 멀리 떨어져 있기 때문에) 경계 검색 모듈을 개발하려고합니다. 지금은 블록 형태로 포함되어 달성 한 무엇 :

/** 
* Implementation of hook_menu() 
* @return defined menu/page items 
*/ 
function perimeter_search_menu() { 
    $items = array(); 

    // Search results page 
    $items['perimeter-search-results'] = array(
    'title' => t('Perimeter search results'), 
    'page callback' => 'perimeter_search_results', 
    'access arguments' => array('view perimeter search'), 
    'type' => MENU_NORMAL_ITEM 
); 

    return $items; 
} 

/** 
* Processing job search queries 
*/ 
function perimeter_search_results() { 
    $page_content = t('Search results'); 
    return $page_content; 
} 

내 (? 단순) 질문은 : 어떻게 나는 또한 검색 결과를 출력하는 기능을 가지고

function perimeter_search_block_view($delta = '') { 
    // Define an empty array for the block output. 
    $block = array(); 

    switch($delta) { 
    case 'perimeter_search_box': 
     $block['subject'] = t('Perimeter search box'); 
     $block['content'] = drupal_get_form('perimeter_search_form');; 
     break; 
    } 

    return $block; 
} 

/** 
* Implementation of the perimeter search form 
* @return array with form data 
*/ 
function perimeter_search_form($form, &$form_state) { 
    $form = array(
    '#action' => 'perimeter-search-results', 
    'keyword' => array(
     '#type' => 'textfield' 
    ), 
    'location' => array(
     '#type' => 'textfield' 
    ), 
    'perimeter' => array(
     '#type' => 'select', 
     '#title' => t('Perimeter'), 
     '#options' => array('15 km', '30 km', '60 km', '120 km') 
    ), 
    'submit' => array(
     '#type' => 'submit', 
     '#value' => t('Start search') 
    ) 
); 

    return $form; 
} 

을 내 perimeter_search_results() 함수에서 게시물 데이터 (키워드, 위치, 주변) 가져 오기?

답변

0

쉬운, 당신은 여기, 양식에 대한 예제 _submit 기능을 만들 수 있습니다

function perimeter_search_form_submit($form, &$form_state) { 
    /* 
    * Your data handling goes here on the $form_state['values']['myfieldname'] 
    * variable. 
    */ 
    drupal_set_message(t('Awesome, you managed to fill the form!')); 
} 

을 그리고 유효성을 검사해야하는 경우 ..

function perimeter_search_form_validate($form, &$form_state) { 
    if($form_state['values'['myfieldname'] == '') { 
     form_set_error('', t('Hey, it doesn't work like that!')); 
    } 
} 

그냥 당신이 추가하면 기억 속성 '#required'=> 양식 필드에 대해 TRUE 일 경우 필드는 자동으로 해당 필드가 필요함을 자동으로 확인되므로 컴파일 할 필요가있을 경우 해당 필드에 유효성 검사기를 사용할 필요가 없습니다.