D7では、フィールドのトークン([node:field_date]
など)はフィールドのレンダリングを返すようです。したがって、フィールドが複数値の場合、このトークンは一緒にレンダリングされたすべての値を返します。ただし、トークンを使用して、フィールドの特定のデルタ値に個別にアクセスできるようにしたいと考えています。 [node:field_date:0]
または同様の構文を使用します。また、トークンをチェーンできるようにしたいと考えています。 [node:field_date:0:long]
。
これは以前に行われたことがありますか?私の解決策は、hook_token_info_alter
を使用してフィールドのトークンをdynamic
としてマークし、hook_tokens_alter
で独自の解析を行うことです。しかし、これを行うと、トークンをチェーンする機能が失われますか?
エンティティトークンを試しましたか? Entity API モジュールの一部です。
日付トークンについては長い議論があります: 日付の問題 日付トークンについて エンティティトークンの問題 多値フィールドトークンについて。
これには 複合トークンモジュール を使用する必要があることがわかりました。
バニラトークンで動作します:
[node:field_my_field]
バニラトークンでエラーをスローします。複合トークンをインストールした後に機能します:
[node:field_my_field:und:0:value]
日付フィールドには、使用できる3つの値があります...
[node:field-date:value] = Start date
[node:field-date:value2] = End date
[node:field-date:duration] = Well... Duration. :-)
/マーカス