Добрый день!
Начал разбираться с Drupal 7, возник вопрос, а я даже не придумал, как на эту тему погуглить.
Поэтому, извините, спрашиваю здесь.
Есть два типа материалов - A и B, К каждому ноду типа A привязан один или несколько нодов B (через значение поля).
Мне нужно, чтобы при просмотре ноды A, в том же или соседнем блоке открывался view с соответствующими нодами B.
ТО есть, я не только должен запустить открытие view, но и передать туда параметр для фильтра, правильно я понимаю?
Какими средствами это делается?
Комментарии
гуглить контекстные фильтры вьюсов
Если для связки использовался Entityreference/Nodereference - в настройках вывода (View mode, режим отображения) можно указать формат вывода, например "Тизер" ("Анонс"), и его уже настроить должным образом. Поле вывести в нужное место.
Если нужно именно разделение на блоки, можно воспользоваться доп. средствами, например Display Suite.
Идею я вроде понял. Да, это, вероятно, решит проблему, при условии, что я смогу импортировать (или как-то ввести после импорта) эти ссылочные поля. У меня есть файл с исходными данными (большой), я его преобразую в два csv файла, тоже немаленькие. Фактически, я могу при преобразовании сделать много чего, поскольку делаю я это самописной утилитой.
Но как сделать импорт reference полей? что туда надо вводить? текст ссылки?
ID сущности.
То есть, если я правильно понимаю, это значит, что на этапе подготовки данных к импорту эти поля заполнить невозможно, потому что ID будут определены только в момент импорта.
Жаль.
А какие есть средства, чтобы потом обработать массив из нескольких сот нодов, прописывая им reference поля по результатам поиска в массиве из, опять же, нескольких сот, если не тысяч, других нодов?
В любом случае нужно за что-то "зацепится".
Должно быть какое-либо уникальное поле, по которому можно определить ноду, на которую нужно сослаться. Например заголовок (если они не повторяются).
Таким образом, можно загрузить изначально список нод "B", а потом список нод "A" с указанием уникального поля из ноды типа "B".
Далее, производить доп обработку загружая ноду, получая ее ID и присваивая полю референса.
Такое поле есть, это заголовок. Но он уникален для ноды А, но не для нод B. Задача состоит в том, чтобы сразу показать ноду A и все ноды B с таким же заголовком.
Можно, видимо, загнать это поле в словарь, тогда поиск по термину как раз это и даст.
Ну а "нормальный" вариант есть? Когда нода А была открыта не обязательно через термин из словаря, а по какому-то иному варианту доступа.
Ну и второе. Допустим, я импортировал все ноды B, уникальные коды для них теперь известны. Теперь я хочу импортировать ноды A, чтобы при импорте прописались ссылки на все соответствующие ноды B. Какое для этого есть средство? Ну кроме, видимо, экспорта нод B, обработки их вне друпала и прописывания ссылок в файл для импорта?
Хотелось бы уметь делать такого рода операции в друпале, без необходимости использовать цепочку экспорт - обработка - импорт.
Описание комментарием ранее вполне "нормальное", не требует прокладок в виде терминов и позволяет применить его для случая с одинаковыми заголовками (нужно просто в уме поменять местами тип нод A и B ).
Т.е. Вы загружаете список нод с одинаковыми заголовками (пусть будет тип X). Потом загружаете список нод с которых должны быть ссылки (пусть будет тип Y) и доп логикой, в которой получаете список нод типа X по заголовку текущей, и каждую добавляете в список референса (ну или каждой ноде типа X добавляете референс на ноду типа Y).
Во, в какое место и каким образом мне приделать эту дополнительную логику?
Импортирую я через feeds. Там, вроде, места для этой логики не нашел. Ну и поиски средств для импорта данных альтернатив feeds сходу не дали.
Если что, пишу на многих языках, включая PHP.
Добавьте Feeds Tamper.
Доп логику можно внедрить программно, если есть навыки PHP (читайте API Feeds и Drupal, в общем).
Или в GUI - с помощью Rules.
Спасибо.
Вы каким образом импортируете?
Не знаю я про Entityreference/Nodereference (( посмотрю сейчас, что за звери.
Пока просто одно и то же значение соответствующих полях связывает эти ноды.
Если это был ответ на мой вопрос, то я, извините, ничего не понял.
Я новичок, мне недостаточно посмотреть на картинку, чтобы проникнуться.