У меня есть сайт с типом контента «Проекты», в котором есть поле «Менеджер проектов», которое берет пользователя. Есть ли хороший способ отобразить все проекты, для которых пользователь отображается в качестве Project Manager для этого проекта в профиле этого пользователя?Показать все узлы, для которых пользователь отображается как поле в профиле этого пользователя?
Update:
Вот то, что я до сих пор в user_profile.tpl.php
...
function my_module_user_view($account, $view_mode, $langcode) {
$my_field = 'field_pm';
$uid = $account->uid; // The uid of the user being viewed.
$query = "SELECT entity_id FROM {field_data_{$my_field}} WHERE {$my_field}_target_id = :uid AND bundle='user'";
$args = array(':uid' => $uid,);
$result = db_query($query, $args);
$nids = $result->fetchCol();
if (count($nids)) {
$projects = node_load_multiple($nids); // Load all projects where that user is a PM
foreach ($projects as $project) {
$account->content['field_pm_projects'][0]['#markup'] = $project->title;
}
}
}
?>
<div class="profile"<?php print $attributes; ?>>
<?php print render($user_profile); ?>
<?php print $account->content['field_pm_projects']; ?></span>
</div>
Спасибо! Это сработало! Я бы просто добавил, что использование «global $ user» позволяет вам войти в систему, но назначить «$ user = user_load (arg (1))» будет пользователем текущего профиля пользователя. –
Также есть хороший способ поиска нескольких полей (пользователь может быть pm или разработчиком ..) Спасибо! –