2016-09-20 19 views
1

我有一個$請求數組在我的自定義模塊引用/調用我的/庫目錄中的API庫。目前在我的模塊中,這個$ request位於我的模塊hook_node_view函數之外。它以這種方式工作。不過,我想將$ request數組注入/嵌入到hook_node_view函數中,以便在Drupal函數中進行處理。當我這樣做時,它會停止工作,並且不會對庫進行正確調用。

有關如何最好地構建Drupal函數以便它可以處理此數組的想法?

這裏是$請求的例子:

<?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

嗯......看來,Drupal有它自己的$request全局數組,當你重新定義它的功能你其實是改變這種Drupal的數組與你的數據。

但是,當你從函數中做的時候,你只是做一個本地$request數組,只有在該函數和全局Drupal的數組保持不變。

嘗試增加:

global $request; 

在你的函數,你開始使用前陣。

但是,我不認爲這是正確的方式來實現你想要的每一件事。

0

你應該避免全球化。而是創建一個像mymodule_get_request()這樣的函數,而不是返回請求。然後你可以在你的鉤子中調用這個函數。

如果您的計算量很大,您甚至可以添加靜態緩存以最大限度地減少函數調用的成本。