Drupalインストールで利用可能なトークンのすべての可能な値を表示できる方法はありますか?たとえば、[termalias-raw]プレースホルダーのすべての可能な値を確認したいPathautoモジュールで使用します。
トークンが取得するすべての値を確認するには、トークンをその値に置き換える関数を呼び出し、$object
パラメータに別の値を渡す必要があります。
これは、疑似コードを使用して実行する必要があるコードです。
foreach (get_all_nodes() as $node) {
print token_replace("[termalias-raw]", 'node', $node);
}
「[termalias-raw]」は、ノードオブジェクトに関連付けられているPathautoモジュールによって実装されるトークンです。
これは pathauto_token_list() に含まれるコードで、モジュールによって実装されたすべてのトークンをリストする関数です。
if ($type == 'node' || $type == 'all') {
$tokens['node']['termpath'] = t('As [term], but including its supercategories separated by /.');
$tokens['node']['termpath-raw'] = t('As [term-raw], but including its supercategories separated by /.');
$tokens['node']['termalias'] = t('The URL alias of the taxonomy term.');
$tokens['node']['termalias-raw'] = t('The URL alias of the taxonomy term.');
}
使用可能なすべてのトークンのリストを意味する場合、そのリストは、モジュールでサポートされる各エンティティのパスエイリアスを設定できる形式で、Pathautoモジュールによってすでに提供されています。これをすべて表示するには、各パスエイリアスタイプをチェックする必要があります(例user、node、分類用語)。
Drupal 7の場合、リストは/ admin/help/token Cheersにあります。
これは非常にあいまいです。トークンの値はデータの提供に依存します。つまり、サイトのすべてのノードのトークンの値を確認するように要求しますか?
あなたがこれをしたかったと思います(Drupal 6と仮定し、Tokenモジュールの最新リリースを使用している):
$result = db_query("SELECT nid FROM {node} ORDER BY nid");
while ($nid = db_result($result)) {
$node = node_load($nid, NULL, TRUE);
echo "Node: $nid\t";
echo "[termalias-raw]: " . token_replace('[termalias-raw]', 'node', $node, '[', ']', array(), TRUE);
echo "\n";
}
また、 Devel モジュールを有効にしている場合、特定のノードのすべてのトークンを検査できるように、「Tokens」サブタブを備えたすべてのノードに「Devel」タブが必要です。