Когда пользователь входит в Drupal, этот пользователь загружается, так что вы можете получить доступ к таким полям, как «имя пользователя» и «электронная почта» во время запроса. Однако определяемые вами пользовательские поля не загружаются по умолчанию.
Что вы можете сделать, это реализовать функцию предварительной обработки в вашей теме. То есть создайте / отредактируйте файл template.php в папке вашей темы и добавьте следующий фрагмент кода:
function [mythemename]_preprocess_node(&$vars, $hook) {
global $user;
$account = user_load($user->uid);
$vars['firstname'] = $account['path']['to']['field'];
$vars['lastname'] = $account['path']['to']['field'];
}
Что происходит сейчас, так это то, что каждый раз, когда Drupal собирается отобразить узел, он запускает все переменные узла (например, $ title и $ content) через вашу функцию, чтобы вы могли изменить то, что вам нужно. Тем не менее, вы также можете добавить больше переменных. Итак, что мы делаем, это получаем пользователя для запроса (может быть анонимным с uid, установленным в 0) и загружаем учетную запись этого пользователя, которая содержит все поля, которые вы определяете.
Обратите внимание, что я не могу вспомнить, как эти поля хранятся в вашей учетной записи. Тебе нужно это найти.