Drupal показать / скрыть поля в поле зрения - PullRequest
3 голосов
/ 28 апреля 2010

Я хотел бы показать / скрыть определенные поля в моем представлении Drupal в соответствии с ролью пользователя.

При условии, что у меня может быть только этот вид для работы, как я могу достичь этого программно или есть некоторые настройки, которых я не знаю в Drupal.

P / S: мне известны настройки доступа в базовых настройках View, но это ограничит доступ ко всему представлению, а не к уровню поля.

Ответы [ 5 ]

6 голосов
/ 28 апреля 2010

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

Сначала создайте наиболее ограничивающий экран, а затем наименее ограничивающий.

2 голосов
/ 18 октября 2011

Нажмите «Дополнительно», theeming, найдите поле и создайте для него файл _ .tpl.php, затем в файле вы увидите:

print $output;

Измените это на:

if (user_access('administer nodes')) {
    print $output;
}

Или какое бы разрешение вы ни проверяли.

2 голосов
/ 21 мая 2010

Мне понравился этот ответ, но в моем случае поле зависит от аргумента, и мне нужно было бы создать новое отображение для каждого аргумента (что не практично).

Я установил модуль Пользовательское поле *1003* и использовал этот код для поля:

<?php
if(user_access("some permission string here"))
{
  print "Your field value here";
}
?>
1 голос
/ 22 марта 2012

Я думаю, вы должны попробовать модуль Полевые разрешения

0 голосов
/ 29 апреля 2010

Если ваши поля, которые вы хотите исключить, 1) созданы с помощью CCK и 2) должны быть скрыты от пользователей этой роли повсюду на сайте (не только в этом конкретном представлении), то вы можете просто установить разрешения для полей так что пользователи с определенными ролями не могут их просматривать. Если текущий пользователь не имеет прав для просмотра поля, являющегося частью представления, поле не будет показано пользователю.

...