Использование модуля Token в блоке

Главные вкладки

Аватар пользователя ingumsky@drupal.org ingumsky@drupal.org 12 июля 2011 в 23:19

Добрый вечер!

Подскажите, пожалуйста, или укажите конкретное направление для поиска решения следующего вопроса:
Хочу использовать токен (счётчик флага flag-bookmarks-count) в коде блока, созданного через /admin/build/block/add/ и отображаемого на странице с нодой. Как мне его вставить? Попытка вставить [flag-bookmarks-count] успехом не увенчалась — вывелся текст, а не число, которое должно быть вместо него. Стал искать информацию о том, как это сделать, и понял, что совершенно не въезжаю в принцип работы. На d.o, в API.txt, прилагаемом к модулю token, и в различных материалах, найденных через поисковики, об этом толком не говорится, так как описание работы функции token_replace, которая мне, видимо, нужна, весьма немногословно.
<?phptoken_replace($text, $type = 'global', $object = NULL, $leading = TOKEN_PREFIX, $trailing = TOKEN_SUFFIX, $options = array(), $flush = FALSE)?>

$text A string potentially containing replaceable tokens.

$type (optional) A flag indicating the class of substitution tokens to use. If an object is passed in the second param, 'type' should contain the object's type. For example, 'node', 'comment', or 'user'. If no type is specified, only 'global' site-wide substitution tokens are built.

$object (optional) An object to use for building substitution values (e.g. a node comment, or user object).

$leading (optional) Character(s) to prepend to the token key before searching for matches. Defaults to TOKEN_PREFIX.

$trailing (optional) Character(s) to append to the token key before searching for matches. Defaults to TOKEN_SUFFIX.

$options (optional) A keyed array of settings and flags to control the token generation and replacement process. Supported options are:

clear: A boolean flag indicating that tokens should be removed from the final text if no replacement value can be generated.
$flush (optional) A flag indicating whether or not to flush the token cache. Useful for processes that need to slog through huge numbers of tokens in a single execution cycle. Flushing it will keep them from burning through memory. Defaults to FALSE.

Return value

Text with tokens replaced.

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

Комментарии

Аватар пользователя AI AI 12 июля 2011 в 23:26

Только предположение: а область видимости токенов в блоках как? Не нужно ли что-то еще подгружать/объявлять? Возможно после этого все будет с пол пинка заводиться штатными средствами.

Аватар пользователя ingumsky@drupal.org ingumsky@drupal.org 13 июля 2011 в 12:13

"AI" wrote:
Только предположение: а область видимости токенов в блоках как? Не нужно ли что-то еще подгружать/объявлять? Возможно после этого все будет с пол пинка заводиться штатными средствами.

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

Аватар пользователя AI AI 13 июля 2011 в 17:50

"<a href="mailto:ingumsky@drupal.org">ingumsky@drupal.org</a>" wrote:
поставил токен в коде, и он автоматически подменился

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

Аватар пользователя ingumsky@drupal.org ingumsky@drupal.org 14 июля 2011 в 17:48

"AI" wrote:
Ну тут не соглашусь. Кое-где не все токены доступны. Сужу по довольно глубокой настройке ubercart. В зависимости от действия, необходимого в ответ на какое-либо событие, доступен только свой набор токенов.

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