Доброй ночи всем!
Среда: Druapl 7.15, Views 3.5
Заранее прошу прощения, что один вопрос глупее другого ), но уже голову сломал, что же делаю не так?
Проблема:
В форме материала есть простое текстовое поле с именем автора материала, которое устанавливается as default
через токен [node:author] (формат ввода, фильтр. HTML, замена токенов включена для всех форматов, кроме plain txt)
При создании материала всё работает, причем как в варианте токена, так и при использовании PHP кода в поле.
Для материала сделан ряд представлений во Views, где используется указанное поле.
Вывод — табличный (хотя эффект от смены типа не зависит), формат вывода в поле — по умолчанию (перепробовал все варианты уже))), однако при выводе (и на preview) в требуемом поле собственно сам токен, а не имя автора ноды и всё. (
Сталкивался ли кто-нибудь с подобным?
Заранее спасибо.
Комментарии
т.е. "[node:author]" или UID(Идентификатор) пользователя?
сделайте во вьюс такую же замену. выведите поле, отключите его вывод, потом значение этого поля используйте как токен
Нет, orion76, не помогает ни то, ни другое ). Точнее, для пробы подставлял глобальные токены типа [site:name] или [current-page:title] — это работает, т.е. Views отображает, а что-нибудь типа [node:nid] или то, что нужно [node:author] — сам текст токена, т.е. подстановка не работает (см. скриншот).
В списке модулей поддерживающих токены, Views не числится, но глобальные то [site:name]он как-то выхватывает?? либо они на момент вызова уже существуют как глобальные инициализированные переменные?
Аналогичная тема поднималась http://www.drupal.ru/node/75961,
но из рекомендаций уважаемой http://www.drupal.ru/username/kalabro, мало что ясно, кроме общих фраз.
мой совет вы проигнорировали?)
еси чо дело говорить.
Обычно токены используют непосредственно из вьюса, а не сначала вставляют в ноду, а потом выводят это поле через вьюс. Если бы вы понимали как работает вьюс, то вы бы не удивлялись тому, что у вас ничего не получается
К слову:
Вот это грамотный совет и он должен сработать.
можно и во вьюс заставить работать этот токен, если полностью грузить всю ноду, а не поля.
q2_faith ), прошу прощения за паузу — нет, не проигнорировал, но не понял, как реализуется вот это:
Вывожу поле, отключаю его вывод при формировании представления, но как использовать значение этого поля как токен?
К слову, если включить режим принудительной перезаписи значения выводимого в поле, то сам Views предлагает 4 токена, из которых, ест-но тот, что выводит имя страницы работает, а предлагаемый [field_author] — нет.
Вы правы, я пока действительно слабо понимаю как работает Views ). Полагаю, что это просто развитый интерфейс формирования запроса к БД. Однако, Views — средство отображения, т.е. вывода, представления материала, а если мне нужно автоматически заполнять некоторые поля записи в таблице ПРИ ВВОДЕ, скажем на основании данных об авторе (помимо UID, который не нужен в отображении), то при чём здесь Views?
Был б внятный исчерпывающий мануал по тому же Views, быть может и вопросов бы не было.
Понимаю, что если работать с Views программно, то можно сделать многое, а возможно ли обойтись средствами самого интерфейса модуля (Views)?
Добавляете во вьюху поля Автор, Название. Отлючаете оба (в смысле "исключить из вывода" галку ставите).
Дальше создаете поле типа Custom Text (или как там оно называется).
В настройках этого поля под непосредственно полем вывода будут вьюсовые токены для полей Автор и Название. Вы теперь можете их использовать как токены.
К слову, чтобы использовать значение какого-то поля, как токен, оно должно быть в списке выше, чем то поле, в котором вы хотите использовать его значение.
спасибо за терпение и подробный ответ ) — логика использования собственных «токенов» Views ясна, но в данном случае ничего не работает и, похоже, дело именно в токене, производном от [node:], т.е. даже при отключенном поле, принимающем значение [node:author] и подстановке в «custom fld» появившегося теперь токена Views — [field_author] в поле отображается опять-таки сам исходный токен.
Наверное, я как-то коряво с точки зрения drupal решаю такую банальную задачу, но тогда просто не понимаю, как во Views отображать поля ноды, значения которых, получены автоподстановкой при вводе.
И еще ), в самом первом варианте, значение поля ноды формировалось при вводе кодом PHP (как вариант) . При вызове Views это сразу же приводило к ошибке вызова соотв. функции.
это все через интерфейс делается. это было ответом на вопрос, как вытянуть ваш токен во вьюс.
спасибо, q2_faith, я понял, что через интерфейс, тем более, что Максим всё подробно разъяснил.
раз пока ничего не получается, значит где-то я туплю.
Еще раз огромное спасибо всем за советы и особенно koreychenko и orion76
Дело не в токенах. Анализ таблиц помог разобраться в структуре данных и в том, как формируется запрос. При создании View мне надо было всего лишь связать через отношения (UID) данные ноды материала и записи профиля автора, имя которого теперь и отображается в отдельном поле.
подскажите, пожалуйста, как найти имя токена, содержащего ссылку из поля "ссылка", а не её текстовую "метку". Добавляя к ссылке картинки появившийся токен [view_node] получаю ссылку вида ".../просмотр" ("просмотр" - тектовая метка ссылки, добавленной перед картинкой)
насколько я помню, атрибуты в виде токенов вы так не получите
жаль... каким образом можно приделать к пути ноды дополнительный параметр? Картинка ссылается сюда "/zzz", а я хотел бы передавать туда же ещё и значение "/zzz?nm=1". Думал выдернуть полный URL из ссылки, подсунуть его токеном под картинку и дописать параметр, но, видимо вариант нерабочий?...
вам нужна ссылка на ноду или href картинки?
в идеале мне нужна ссылка на ноду, к которой я могу приделать свой параметр. Думал взять токен с этой ссылкой и прикрутить параметр так ?nm=1
там есть такое поле, ищите.
спасибо