Фильтрация на узле, идентификатор пользователя которого равен текущему пользователю

19

В Drupal 6 вы можете иметь фильтр node.uid = current user. Как вы делаете это в Drupal 7?

джордж маркотт
источник

Ответы:

23

Вам необходимо добавить фильтр в качестве «контекста» (Advanced), где вы можете указать аргумент по умолчанию. Если ваш контекст предназначен для пользователя, например, для автора узла, то вы можете выбрать такие вещи, как идентификатор зарегистрированного пользователя.

Скриншот

googletorp
источник
1
Я всегда использовал Отношения, но тоже буду смотреть на контексты. Вид это круто.
Citricguy
Собираюсь изменить около 100 просмотров. :) Спасибо за подробности @googletorp.
Citricguy
1
Вы замечаете первую строку текста в фильтре контекста? «Когда значение фильтра отсутствует в URL», поэтому я уже попробовал это, и оно работает, если в URL нет идентификатора пользователя, но если пользователь a просматривает профиль пользователя b, тогда это представление будет использовать пользователей b. id не пользователи a
джордж маркотт
20

Вам нужно отредактировать свой вид, перейти к столбцу «Дополнительно» (справа) и добавить новые отношения.

Добавить отношения

Вам, в частности, необходимо добавить отношение «Контент: автор».

Далее в разделе «Фильтры» вам необходимо добавить фильтр «Пользователь: текущий».

Добавить фильтр

Теперь вы сможете фильтровать контент, принадлежащий текущему вошедшему в систему пользователю.

Citricguy
источник
1
Хотя это работает, это медленнее, чем использование контекстных фильтров, так как вам нужно создать объединение. Вероятно, это всего на несколько мс медленнее, но нет причин тратить ресурсы.
googletorp
Это сэкономит больше, чем несколько мс на кучу моих запросов. :) Спасибо за пояснение.
Citricguy
-2

Вы можете просто добавить

«Пользователь: текущий» в критериях «Фильтр».

Drock
источник
Здесь недостаточно объяснений, чтобы люди могли им следовать
Бен