[Решено]Токены и поля Views

Аватар пользователя so-lo74 so-lo74 13 сентября 2012 в 2:14

Доброй ночи всем!
Среда: Druapl 7.15, Views 3.5
Заранее прошу прощения, что один вопрос глупее другого ), но уже голову сломал, что же делаю не так?
Проблема:
В форме материала есть простое текстовое поле с именем автора материала, которое устанавливается as default
через токен [node:author] (формат ввода, фильтр. HTML, замена токенов включена для всех форматов, кроме plain txt)
При создании материала всё работает, причем как в варианте токена, так и при использовании PHP кода в поле.
Для материала сделан ряд представлений во Views, где используется указанное поле.
Вывод — табличный (хотя эффект от смены типа не зависит), формат вывода в поле — по умолчанию (перепробовал все варианты уже))), однако при выводе (и на preview) в требуемом поле собственно сам токен, а не имя автора ноды и всё. (
Сталкивался ли кто-нибудь с подобным?
Заранее спасибо.

Комментарии

Аватар пользователя Orion76 Orion76 13 сентября 2012 в 4:47

"so-lo74" wrote:
в требуемом поле собственно сам токен,

т.е. "[node:author]" или UID(Идентификатор) пользователя?

Аватар пользователя q2_faith q2_faith 13 сентября 2012 в 13:45

"so-lo74" wrote:
в требуемом поле собственно сам токен, а не имя автора ноды и всё. (

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

Аватар пользователя so-lo74 so-lo74 10 ноября 2015 в 11:48

Нет, 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, мало что ясно, кроме общих фраз.

Аватар пользователя Koreychenko Koreychenko 13 сентября 2012 в 15:54

Обычно токены используют непосредственно из вьюса, а не сначала вставляют в ноду, а потом выводят это поле через вьюс. Если бы вы понимали как работает вьюс, то вы бы не удивлялись тому, что у вас ничего не получается Wink

К слову:

"q2_faith" wrote:
сделайте во вьюс такую же замену. выведите поле, отключите его вывод, потом значение этого поля используйте как токен

Вот это грамотный совет и он должен сработать.

Аватар пользователя q2_faith q2_faith 13 сентября 2012 в 16:23

можно и во вьюс заставить работать этот токен, если полностью грузить всю ноду, а не поля.

Аватар пользователя so-lo74 so-lo74 13 сентября 2012 в 16:48

q2_faith ), прошу прощения за паузу — нет, не проигнорировал, но не понял, как реализуется вот это:

"q2_faith" wrote:
выведите поле, отключите его вывод, потом значение этого поля используйте как токен

Вывожу поле, отключаю его вывод при формировании представления, но как использовать значение этого поля как токен?
К слову, если включить режим принудительной перезаписи значения выводимого в поле, то сам Views предлагает 4 токена, из которых, ест-но тот, что выводит имя страницы работает, а предлагаемый [field_author] — нет.
"Koreychenko" wrote:
Обычно токены используют непосредственно из вьюса, а не сначала вставляют в ноду, а потом выводят это поле через вьюс. Если бы вы понимали как работает вьюс, то вы бы не удивлялись тому, что у вас ничего не получается ;-)

Вы правы, я пока действительно слабо понимаю как работает Views ). Полагаю, что это просто развитый интерфейс формирования запроса к БД. Однако, Views — средство отображения, т.е. вывода, представления материала, а если мне нужно автоматически заполнять некоторые поля записи в таблице ПРИ ВВОДЕ, скажем на основании данных об авторе (помимо UID, который не нужен в отображении), то при чём здесь Views?
Был б внятный исчерпывающий мануал по тому же Views, быть может и вопросов бы не было.
"q2_faith" wrote:
можно и во вьюс заставить работать этот токен, если полностью грузить всю ноду, а не поля.

Понимаю, что если работать с Views программно, то можно сделать многое, а возможно ли обойтись средствами самого интерфейса модуля (Views)?

Аватар пользователя Koreychenko Koreychenko 13 сентября 2012 в 17:10

"so-lo74" wrote:
Вывожу поле, отключаю его вывод при формировании представления, но как использовать значение этого поля как токен?
К слову, если включить режим принудительной перезаписи значения выводимого в поле, то сам Views предлагает 4 токена, из которых, ест-но тот, что выводит имя страницы работает, а предлагаемый [field_author] — нет.

Добавляете во вьюху поля Автор, Название. Отлючаете оба (в смысле "исключить из вывода" галку ставите).

Дальше создаете поле типа Custom Text (или как там оно называется).

В настройках этого поля под непосредственно полем вывода будут вьюсовые токены для полей Автор и Название. Вы теперь можете их использовать как токены.

К слову, чтобы использовать значение какого-то поля, как токен, оно должно быть в списке выше, чем то поле, в котором вы хотите использовать его значение.

Аватар пользователя so-lo74 so-lo74 13 сентября 2012 в 17:37

спасибо за терпение и подробный ответ ) — логика использования собственных «токенов» Views ясна, но в данном случае ничего не работает и, похоже, дело именно в токене, производном от [node:], т.е. даже при отключенном поле, принимающем значение [node:author] и подстановке в «custom fld» появившегося теперь токена Views — [field_author] в поле отображается опять-таки сам исходный токен.
Наверное, я как-то коряво с точки зрения drupal решаю такую банальную задачу, но тогда просто не понимаю, как во Views отображать поля ноды, значения которых, получены автоподстановкой при вводе.
И еще ), в самом первом варианте, значение поля ноды формировалось при вводе кодом PHP (как вариант) . При вызове Views это сразу же приводило к ошибке вызова соотв. функции.

Аватар пользователя q2_faith q2_faith 13 сентября 2012 в 17:38

"so-lo74" wrote:
Понимаю, что если работать с Views программно, то можно сделать многое, а возможно ли обойтись средствами самого интерфейса модуля (Views)?

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

Аватар пользователя so-lo74 so-lo74 13 сентября 2012 в 17:57

спасибо, q2_faith, я понял, что через интерфейс, тем более, что Максим всё подробно разъяснил.
раз пока ничего не получается, значит где-то я туплю.

Аватар пользователя so-lo74 so-lo74 13 сентября 2012 в 19:54

Еще раз огромное спасибо всем за советы и особенно koreychenko и orion76 Smile
Дело не в токенах. Анализ таблиц помог разобраться в структуре данных и в том, как формируется запрос. При создании View мне надо было всего лишь связать через отношения (UID) данные ноды материала и записи профиля автора, имя которого теперь и отображается в отдельном поле.

Аватар пользователя kurl kurl 29 апреля 2014 в 12:54

подскажите, пожалуйста, как найти имя токена, содержащего ссылку из поля "ссылка", а не её текстовую "метку". Добавляя к ссылке картинки появившийся токен [view_node] получаю ссылку вида ".../просмотр" ("просмотр" - тектовая метка ссылки, добавленной перед картинкой)

Аватар пользователя kurl kurl 29 апреля 2014 в 13:47

жаль... каким образом можно приделать к пути ноды дополнительный параметр? Картинка ссылается сюда "/zzz", а я хотел бы передавать туда же ещё и значение "/zzz?nm=1". Думал выдернуть полный URL из ссылки, подсунуть его токеном под картинку и дописать параметр, но, видимо вариант нерабочий?...

Аватар пользователя kurl kurl 30 апреля 2014 в 15:01

в идеале мне нужна ссылка на ноду, к которой я могу приделать свой параметр. Думал взять токен с этой ссылкой и прикрутить параметр так ?nm=1