在用户全局变量中附加数据?

时间:2010-09-19 18:45:56

标签: drupal drupal-6 drupal-modules

有什么方法可以将我的数据附加到用户全局变量中,以便我可以在其他页面上访问它?

3 个答案:

答案 0 :(得分:2)

您有两个选择

  • 您可以将其保存在用户对象($user->data)上,如果它是一些不会改变的静态数据。
  • 使用hook_user op加载,如下所示:

    function module_user($op, &$edit, &$account, $category = NULL) {
      switch ($op) {
        case 'load':
          $account->module = db_fetch_object(db_query(
            'SELECT * FROM {module} WHERE uid = %d', $account->uid
          ));
          break;
      }
    }
    

Hook用户,如果您的复杂数据发生了很大变化,那就太好了。您可以将数据存储在自己的表中,并在用户加载时将其附加到用户。缺点是,您需要运行user_load才能获得用户对象的数据。

答案 1 :(得分:0)

如果您不需要/想要在数据库中处理数据存储,因为您只是想在用户会话期间全局访问它,您可以将其存储在$_SESSION array

答案 2 :(得分:0)

如果数据对所有用户都是通用的,那么你也可以使用variable_set()和variable_get()。需要使用SESSIONS