Показывать поле в таблице, если текущий пользователь является автором узла
Я хочу создать блок просмотра, который показывает все опубликованные узлы определенного типа контента. Я включил изображение ниже.
Однако хитрость здесь в том, чтобы показывать ссылку Print Report
только в том случае, если вошедший в систему пользователь является автором этого узла. Поэтому, если вы посмотрите на мое изображение выше, пользователь Деннис Бонилла должен видеть свою ссылку Print Report
, но не видеть ее в строке ниже для теста McTest.
Есть ли модуль, который может помочь мне сделать это или что-то еще административные хитрости в пользовательском интерфейсе представлений? Или, может быть, даже программно?
3 answers
Это возможно с помощью самого пользовательского интерфейса views.
Создайте представление с типами контента, которые вам нужны в качестве критериев фильтра
-
Затем добавьте "связь" для "Содержание: Автор". Теперь добавьте "контекстный фильтр" для поля "пользователь: uid" с аргументом по умолчанию для "идентификатор пользователя, вошедшего в систему", чтобы отфильтровать представление.
Теперь вы получите список узлов, созданных текущим зарегистрированным пользователем.
Чтобы получить Ссылка для печати отчета вы можете использовать модуль Представления PHP и добавить поле
content:nid
Для перечисления всех узлов и добавления ссылки на печать отчета только для содержимого текущего пользователя
Добавьте Содержимое: Идентификатор автора и Глобальное: PHP поле
-
В поле
global:PHP
добавьте условия, как показано ниже:global $user; if ($user->uid == $row->uid) { echo 'print reports'; }
Ответ @Pravin Ajaaz правильный, но я должен был бы не согласиться с использованием Представлений PHP не используйте этот модуль.. это плохо!
В качестве альтернативы напишите свой PHP-код на стороне сервера, и это возможно, написав результат этого поля, который хорошо задокументирован здесь:
Два модуля могут помочь вам в этом. Обратите внимание, что вы, скорее всего, выберете один из этих двух модулей. они не зависят друг от друга. Они оба могут помочь вам получить то, что вы хотите, разными способами.