Вы здесь

Что такое Токены в Друпал?

1

Ради Христа, объясните что такое Токены, откуда они берутся и куда вставляются. Русскоязычный гугл не может мне дать на это ответ уже неделю. Мои знания английского не настолько велики, чтобы я смог сам найти это в буржуйнете ((( зверею от непонимания и безысходности

Для чего мне нужно это, примерно:
нужно в грузить в поле image картинки, а потом обращаться к ним из тела статьи по номеру картинки, примерно так:
... bla-bla-bla
[fied_image:5]
bla-bla-bla ...
Если это не Токены, то с помощью чего это можно сделать?

Версия Drupal: 
7.x
Связанные проекты: 
Token
Вопрос задан 22.04.2015 - 12:56

Ответы

3

Токены это такие "макросы" что ли, или другими словами, "безопасные переменные". Или как вариант "контейнер с данными".

Токены имеют следующий вид:

// Обычный вызов
[token_name]
// Вызов с наследованием
[node:field_name:value]

Они нужны для того, чтобы пресечь использование php кода и в частности php filter. При этом открывают новые возможности для сторонних модулей, так как это намного безопаснее чем вставлять голый php код.

Есть просто модуль Token, а есть Entity Token который идет в комплекте с Entity. Entity Token - несколько расширяет функционал модуля Token. Отличие у них в том, что у Entity Token в синтаксисе используются тире (-) а у оригинального нижнее подчеркивание (_).

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

Также их можно вызвать из php

// Синтаксис получение значение из токена.
$result = token_replace('[token_name');
// Во вложенных, например как ниже, видно что связь идет к сущности node, это не всегда
// корректно определяется токеном, так что лучше будет передать ему обьект, для 
// которого применится токен.
// Результат ниже выведет заголовок ноды которая будет передана в функцию в виде обьекта.
$result = token_replace('[node:title]', array('node' => $node)); 

нужно в грузить в поле image картинки, а потом обращаться к ним из тела статьи по номеру картинки, примерно так:

Первым делом, для формата ввода надо включить фильтр по замене токенов. Такого вроде из коробки не идет, надо либо модуль найти, либо альтернуть сохранение ноды, или проще всего написать свой фильтр который будет заменять токены. Но скорее всего есть решение и его посоветуют отдельно.

Затем в статье использовать доступные токены тип [node:field_image:5:url] Если нужен более коротки формат, то придется писать свой токен, а это уже отдельная тема.

Ответ дан 22.04.2015 - 13:30
Аватар пользователя Niklan
Niklan
445

Мне кажется вам нужен следующий модуль: https://www.drupal.org/project/token_filter
Тогда сможете юзать токены в статье. Только опять же, не забудльте фильтр включить к нужному формуту текста.

Комментарий оставлен 22.04.2015 - 13:37

Установлены модули Token, Token filter. Одно поле field_image - количество значений до 10.

[node:field_image:5:url]

не работает

[node:field_image:value]

не работает

[node:field_image]

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

Комментарий оставлен 27.04.2015 - 17:54
0

Простыми словами токен- это идентификатор записи в базе данных, используется как пропуск к набору данных, показав который можно получить эти данные и вывести, поэтому их иногда называют жетонами. К примеру ты сдал в гардероб пальто, тебе дали жетончик. По сути вместо жетончика ты носишь в кормане то же пальто со всеми вещами, которые есть в кармане твоего пальто и когда тебе нужно продемонстрировать всем свое пальто, ты отдаешь жетончик, получаешь пальто и одеваешь его. Но к примеру передвигаться в театре с целым пальто не очень удобно, так как оно занимает много места и ты его сдаешь в обмен на жетончик.

Ответ дан 22.04.2015 - 13:19

А использовать их как? Эти жетончики можно вывести в ноде? Или в текстовом поле? Где их применить?

Комментарий оставлен 22.04.2015 - 13:26

их иногда называют жетонами

и эклерами

извините, вырвалось, олдфаги поймут xD

Комментарий оставлен 22.04.2015 - 13:50