web-dev-qa-db-ja.com

多値フィールドのトークン?

D7では、フィールドのトークン([node:field_date]など)はフィールドのレンダリングを返すようです。したがって、フィールドが複数値の場合、このトークンは一緒にレンダリングされたすべての値を返します。ただし、トークンを使用して、フィールドの特定のデルタ値に個別にアクセスできるようにしたいと考えています。 [node:field_date:0]または同様の構文を使用します。また、トークンをチェーンできるようにしたいと考えています。 [node:field_date:0:long]

これは以前に行われたことがありますか?私の解決策は、hook_token_info_alterを使用してフィールドのトークンをdynamicとしてマークし、hook_tokens_alterで独自の解析を行うことです。しかし、これを行うと、トークンをチェーンする機能が失われますか?

6
infojunkie

エンティティトークンを試しましたか? Entity API モジュールの一部です。

日付トークンについては長い議論があります: 日付の問題 日付トークンについて エンティティトークンの問題 多値フィールドトークンについて。

1
ermannob

これには 複合トークンモジュール を使用する必要があることがわかりました。

バニラトークンで動作します:

[node:field_my_field]

バニラトークンでエラーをスローします。複合トークンをインストールした後に機能します:

[node:field_my_field:und:0:value]
0
squarecandy

日付フィールドには、使用できる3つの値があります...

[node:field-date:value]    = Start date
[node:field-date:value2]   = End date
[node:field-date:duration] = Well... Duration. :-)

/マーカス

0