2016-09-20 3 views
1

my/libraries 디렉토리의 API 라이브러리를 참조하거나 호출하는 사용자 정의 모듈에 $ request 배열이 있습니다. 현재 내 모듈에서이 $ 요청은 내 모듈 hook_node_view 함수 외부에 있습니다. 이 방법으로 작동합니다. 그러나 Drupal 함수 내에서 처리 할 수 ​​있도록 $ request 배열을 hook_node_view 함수에 삽입/포함하고 싶습니다. 그러나 이렇게하면 작동이 멈추고 라이브러리에 올바른 호출을하지 않습니다.

이 배열을 처리 할 수 ​​있도록 Drupal 함수를 빌드하는 최선의 방법에 대한 생각은 무엇입니까? 여기

은 $ 요청의 예 : 드루팔은 그 자체가 $request 전역 배열입니다 것 같다 ...

<?php 
$request = array(
    'template_id' => 'Template ID', 
    'activity_id' => 'Activity ID', 
    'name' => 'Demo Activity', 
    'session_id' => generate(), 
    'user_id' => 'User ID', 
    'assess_inline' => true, 
); 
?> 

function assignment_node_view($node, $view_mode) 
{ 

if ($node->nid == 3356) { 
    if ($view_mode == 'full') { 
     $node->content['my_extra_content'] = array(
      "#markup" => '<div id="assess"></div>', 
      "#weight" => 100, 
     ); 

    } 
    } 
    if ($node->nid == 3354) { 
    if ($view_mode == 'full') { 
     $node->content['my_extra_content'] = array(
      "#markup" => '<div id="assess"></div>', 
      "#weight" => 100, 

     ); 
    } 
    } 
} 

답변

0

흠 당신이 때 당신은 실제로 변화되어 기능에서 그것을 다시 정의하는 드루팔의 배열 귀하의 데이터와 함께.

그러나이 기능을 사용하면 로컬 $request 배열을 만들고 그 기능에서만 사용할 수 있으며 전역 Drupal 배열은 변경되지 않습니다. 추가

시도 : 함수에

global $request; 

그 배열을 사용하기 전에.

그러나 나는 당신이하려는 모든 것을 성취하는 것이 적절한 방법이라고 생각하지 않습니다.

0

전 세계를 피해야합니다. 대신 요청을 리턴하는 것보다 mymodule_get_request()와 같은 함수를 생성하십시오. 그런 다음이 함수를 후크 내부에서 호출 할 수 있습니다.

계산량이 많은 경우 정적 호출을 추가하여 함수 호출 비용을 최소화 할 수 있습니다.