Node Reference: как НЕ ссылаться на чужой контент

Главные вкладки

Аватар пользователя zaffka zaffka 1 декабря 2007 в 23:44

Ребят, привет!
Пользователь публикует контент типа "Объявление" и "Предприятие".
В объявлении нужна привязка к предприятию.

Включаю Node Reference, в CCK добавляю выпадающий список предприятий к типу материала "Объявление".
Но выводятся все предприятия, даже те, которые публиковались другими пользователями.
Как сделать, чтобы в списке были только авторские?

UPD: Все оказалось элементарно. Нужно создать вид, в виде добавить фильтр "Node: Author is Current User".
При конструировании страницы в CCK добавить поле типа Node Reference и привзать к нему наш вид.

Спасибо всем за помощь! Smile

Комментарии

Аватар пользователя mixey mixey 2 декабря 2007 в 0:01

Только сегодня смотрел этот nodereference, сам не пробовал, но там вроде можно было настроить так, чтобы в списке появились, только те ноды которые выбрались определенным View.

Тогда задача сводится к тому, что надо просто сделать View, который отберет ноды только одного конкретного юзера.

Надеюсь я правильно понял Ваш вопрос.

Аватар пользователя zaffka zaffka 2 декабря 2007 в 3:09

Не работает. Вид с параметром User ID создаю. Если ручками прописать в адресной строке ownerads/2 (к примеру), то все отобразится нормально - покажет только ноды юзера с id=2.

А вот что мне передать как View arguments в поле типа Node Reference при конструировании контента, чтобы получить id текущего пользователя - хрен его знает.
uid не срабатывает.
Лопачу форум на друпал.орг, решения пока не вижу.

Кажется надо делать такой вид, который бы выводил список нод не на основе разбора URL, а на php-коде. А с php проблемы.

Застрял Sad

Аватар пользователя Dan Dan 2 декабря 2007 в 3:07

Решение в лоб - php-код в обработке аргументов. Там просто. То есть надо подставить аргумент программно. На орг даже по моему пример есть.

Аватар пользователя edhel edhel 2 декабря 2007 в 7:50

Не нужен код, первый пост был верный. Сделать view со списком предприятий и добавить фильтр на авторство текущего пользователя (там есть такой). И в настройках nodereference выбрать созданное view.

Аватар пользователя zaffka zaffka 2 декабря 2007 в 14:58

Я болван Smile
Я пытался добавлять аргументы к виду и передавать нужные параметры в настройке поля node reference, вместо простого фильтра на текущего пользователя.
Спасибо огромное, за помощь!

Аватар пользователя MITSUFAN MITSUFAN 26 мая 2009 в 1:44

Drupal 6.*
Кстати, автор не решает одну интересную проблему, а именно, если он, как админ(модератор) решит подредактировать ноду, он в списке nodereference увидит только свои ноды или не увидит ничего (как текущий юзер). Выхода два: отказаться от редактирования за криворукими юзерами и просто удалять без предупреждения объявления или все-таки разобраться, как правильно передать аргументы.

Так все-таки, как правильно через поле "аргументы" в поле nodereference передать uid автора ноды виду, который отберет через аргументы ноды этого автора? Только в этом случае получим полный функционал, т.е. и реальный автор видит свои объявки и админ(модератор) может без проблем редактировать такие объявления не боясь пересохранить (и потреть связь) поле nodreference.

Аватар пользователя scher_khan scher_khan 4 июня 2012 в 16:16

Здравствуйте, старая тема, но хорошая.
У меня почти такая проблема, но немного другое помогите решить
Так, тип материалов "Предприятие" создает админ но конкретный user создает "Объявление" к этому типу материалов.
Как сделать так что-бы админ задавал права что-бы только какой та user создавал "Объявление"

Аватар пользователя Dan Dan 5 июня 2012 в 11:20

Пусть админ создаёт "Объявление" от имени пользователя. Дальше задача сводиться к задаче данного топика Smile