我编写了一个自定义PHP文件,用于从SugarCRM的AJAX请求中调用。但是,当我尝试打印时
global $current_user;
print_r($current_user);
它打印空白值,其中包含数组中列出的所有字段,如下所示。
User Object
(
[name] =>
[full_name] =>
[id] =>
[user_name] =>
[user_hash] =>
[salutation] =>
[first_name] =>
[last_name] =>
[date_entered] =>
[date_modified] =>
[modified_user_id] =>
[created_by] =>
[created_by_name] =>
[modified_by_name] =>
[description] =>
[phone_home] =>
[phone_mobile] =>
[phone_work] =>
[phone_other] =>
[phone_fax] =>
[email1] =>
[email2] =>
[address_street] =>
[address_city] =>
[address_state] =>
[address_postalcode] =>
[address_country] =>
[status] =>
[title] =>
[portal_only] => 0
[department] =>
[authenticated] =>
[error_string] =>
[is_admin] => 0
[employee_status] =>
[messenger_id] =>
[messenger_type] =>
[is_group] =>
[accept_status] =>
[team_id] =>
[receive_notifications] => 1
[default_team] =>
[reports_to_name] =>
[reports_to_id] =>
[team_exists] =>
[table_name] => users
[module_dir] => Users
[object_name] => User
[user_preferences] =>
[importable] => 1
.....
我在SugarCRM论坛中搜索过但没有用。我怀疑原因可能是我的自定义页面中没有定义的有效入口点,因为不了解如何定义除以下方法
if(!defined('sugarEntry'))define('sugarEntry', true);
if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point');
require_once('include/entryPoint.php');
答案 0 :(得分:1)
我知道这个问题可以追溯到2013年,想到分享:)
当您致电
时会发生这种情况global $current_user;
在sugarcrm之外,我做的一个选项是在自定义用户模块中创建一个钩子并在那里访问$ current_user变量,只获取那些所需的值,可能保存在会话上?取决于你。
希望这有助于任何人:)
我的样本
创建文件 custom_external_session.php
<?php if(!defined('sugarEntry') ||!sugarEntry) die('Not A Valid Entry Point');
class custom_external_session {
function get_current_user(& $focus, $event, $arguments){
global $current_user;
$user_id = $current_user->id;
session_start();
$_SESSION["custom_current_user"] = $user_id;
}
}
注意:/ var / www / html / sugarcrm / - &gt;这取决于你放糖的地方
然后在该文件夹(/ custom / modules / Users /)上,编辑logic_hooks.php然后添加此代码
$hook_array['after_login'][] = Array(5, 'custom_external_session', 'custom/modules/Users/custom_external_session.php', 'custom_external_session', 'get_current_user');
你现在可以使用这个: $ _ SESSION [&#34; custom_current_user&#34;] 来获取当前的user_id,然后你可以用它来播放记录,不妨编辑或者在已保存的会话中添加更多信息,比如说你想要全名等,只需在custom_external_session下进行。我不确定是否有更好的方法使用外部代码
在编辑custom_external_session时,请记住始终 RELOGIN ,因此值会更新。