我的自定义模块中有一个$ request数组,它引用/调用my / libraries目录中的API库。目前在我的模块中,这个$ request位于我的模块hook_node_view函数之外。它以这种方式工作。但是我想将$ request数组注入/嵌入到hook_node_view函数中,以便从Drupal函数中进行处理。当我这样做但它停止工作并且没有正确调用库。
关于如何最好地构建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 :(得分:0)
嗯......似乎Drupal拥有它自己的$request
全局数组,当你重新定义它时,你实际上正在用你的数据改变Drupal的数组。
但是当您从函数中执行此操作时,您只创建一个本地$request
数组,仅在该函数中可用,并且全局Drupal的数组保持不变。
尝试添加:
global $request;
在开始使用该数组之前,在您的函数中。
但是,我不认为这是实现你想要的每一个目标的正确途径。
答案 1 :(得分:0)
你应该避免全球化。而是创建一个像mymodule_get_request()这样的函数,而不是返回请求。然后,您可以在钩子中调用此函数。
如果计算量很大,您甚至可以添加静态缓存以最大限度地降低函数调用的成本。