Drupal 7:全局$ user无效

时间:2015-04-17 12:11:24

标签: php drupal drupal-7 global-variables

我正在研究一个Drupal模块,尝试获取全局变量uname的{​​{1}}和uid:如果在.module文件中使用$user它可以工作但是如果不是,我得到:$userTrying to get property of non-object in ... on line 377给出var_dump($user), 这是我的代码:

MyModuleAPI.php:

null

在ajax POST查询后调用此函数。

如果有人为我澄清区别,因为所有文件都在同一个模块中,我将不胜感激。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

在Drupal bootstraps中定义

$user全局变量。您必须从核心调用适当的函数,以使其在非模块代码中可见。将以下内容放在文件的开头:

<?php
$file_path = dirname(__FILE__);
$path = preg_replace('/sites.*/', "", $file_path);
//adjust the path to your website root directory
$path = substr_replace($path ,"",-1);

$_SERVER['REMOTE_ADDR'] = '127.0.0.1';
$_SERVER['HTTP_HOST'] = 'site_hostname';

require_once($path . DIRECTORY_SEPARATOR . 'includes' .  DIRECTORY_SEPARATOR . 'bootstrap.inc');
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);