Добрый час!
Ребята, подскажите пожалуйста. Имеются два типа материала: Компания и Товар, соединённые через Autocreate NodeReference.
А так же два пользователя: Юзер1 и Юзер 2. Юзер1 создал материал Компания1, а Юзер2 два создал Компанию2.
Теперь при создании пользователем Юзер1 материала Товар1, он может прикрепить этот материал к Компании2.
Теперь вопрос №1: как запретить пользователям прикреплять материалы к материалам, права на редактирование которых он не имеет?
Вопрос №2. Как через Views на странице Компании вывести все товары, к ней относящиеся? Пробовал создавать блок и разные комбинации фильтров - ничего не вышло. Либо ничего не выводится, либо выводятся все товары
Комментарии
Как обычно стоило задать вопрос на форуме и тут же пришло озарение
Первый вопрос решён, второй актуален.
О слушай а как первый вопрос решил? У меня примерно такая-же ситуация только с подшивками (book). Мне надо сделать так чтобы каждый автор видел только созданные им подшивки и не имел права добавлять материал в чужие подшивки. Если не секрет кинь в Личку или сюда. Спасибо.
По поводу второго вопроса не уверен. Но как вариант передавать id Компании и обрабатывать его как группировку. То-есть отбор производить в связке Только эта Компания - Только ее товары. Конкретнее сказать не могу не видя базы. Также если насколько понимаю суть Снипетов можно прямо в страницу вшить PHP код.
toshaxtsa
Решил так: сначала создаёшь views с нужными фильтрами (в моём случае - все компании, принадлежащие текущему юзеру). Потом работая с типами материалом, заходишь в свойства поля типа Node reference, там есть раздел "Advanced - Nodes that can be referenced (View)", в списке "View used to select the nodes" выбираешь нужный тебе views. Готово!
По поводу моего второго вопроса. Пробовал разные комбинации: и фильтры, и аргументы - не получается. Поковыряю ещё конечно, но может кто из местных подскажет как правильно сделать.
Написал патч решающий проблему №1, версия CCK 6.x - 2.5, теперь по умолчанию юзер может ссылатся только на свои ноды, чтобы разрешить ссылаться на все - нужно поставить разрешение на странице users->permissions. также отправил в issues возможно включат в обновления
по поводу проблемы №2:
товары выводим через блок views с параметром _ваше_nodereference_поле_ в настройках ставим use default value и там выбираем get node_id from url
в атаче патч по проблеме №1
alter.ego
Благодарю за рецепт! Как раз зашёл сообщить,что нашёл решение. Все сдёлал почти как вы советуете, только через вставку PHP-кода.