добавить данные в глобальную переменную пользователя? - PullRequest
0 голосов
/ 19 сентября 2010

Можно ли как-нибудь добавить свои данные в глобальную переменную пользователя, чтобы я мог получить к ней доступ на других страницах?

Ответы [ 3 ]

2 голосов
/ 20 сентября 2010

У вас есть два варианта

  • Вы можете сохранить его на объекте пользователя ($user->data), если это не статические данные, которые не изменяются.
  • Используйте hook_user операционная нагрузка, которая может выглядеть следующим образом:

    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;
      }
    }
    

Хук пользователя, хорошо, если у вас есть сложные данные, которые сильно меняются. Вы можете хранить данные в своей собственной таблице и добавлять их к пользователю при загрузке. Недостатком является то, что вам нужно будет выполнить user_load, вы получите данные об объекте пользователя.

0 голосов
/ 29 сентября 2010

Вы также можете использовать variable_set () и variable_get (), если данные являются общими для всех пользователей, в противном случае необходимо использовать SESSIONS

0 голосов
/ 21 сентября 2010

Если вам не нужно / не нужно обрабатывать хранение ваших данных в базе данных, потому что вы просто хотите, чтобы они были глобально доступны во время сеанса пользователя, вы можете сохранить их в массиве $ _ SESSION .

...