2010-12-22 4 views
0

Ajax없이 뷰를 사용하는 경우 hook_views_pre_render()를 사용하여 $ view-> result 배열에 쉽게 액세스 할 수 있습니다. 하지만 Ajax를 사용하여 내보기를 필터링하는 경우 $ view 객체에 어떻게 액세스 할 수 있습니까?

다른 Javascript와 양식을 사용하고 싶습니다. 따라서 가장 좋은 해결책은 $ view-> result를 Drupal.settings 개체에 넣는 것입니다.

이것이 가능합니까? hook_ajax_data_alter()를 찾았지만 사용 방법을 모르거나 이동하는 것이 올바른지 알고 싶습니다.

감사합니다.

답변

0

좋아, 그럼 나는 다소 좋은 해결책을 찾았습니다.

/** 
* Implementation of hook_ajax_data_alter(). 
*/ 
function request_ajax_data_alter(&$object, &$type, &$view) { 
    $array = FALSE; 
    // Detect whether the data being altered is an array. 
    if (is_array($object)) { 
    $object = (object) $object; 
    $array = TRUE; 
    } 
    $object->scripts = $extra['scripts']; 
    $object->css = $extra['css']; 
    if (!isset($object->__callbacks)) { 
    $object->__callbacks = array(); 
    } 

    // Add the view result to the object. 
    $object->view_result = $view->result; 

    // Set the custom event as a callback. 
    $object->__callbacks[] = 'Drupal.request.saveResult'; 

    // Cast back to an array if necessary. 
    if ($array) { 
    $object = (array) $object; 
    } 
} 

나는 단순히 $ 객체에 결과>은 $보기 - 추가하고, $보기 - 추가 내 사용자 정의 콜백>는 Drupal.settings 객체에 결과를 추가했습니다.

콜백을 $ view 개체에 직접 추가하려고 시도했지만 성공하지 못했기 때문에 지금 당장이를 수행 할 것입니다.

난 당신이 hook_views_ajax_data_alter 찾고있는 생각) =이 할 수있는 더 좋은 방법이 있으면 알려

+0

을 주시기 바랍니다 : http://api.drupal.org/api/views/views.api.php/ 함수/hook_views_ajax_data_alter/7 – aaronbauman

관련 문제