web-dev-qa-db-ja.com

Drupalインストールで使用可能なすべてのトークン値を表示できますか?

Drupalインストールで利用可能なトークンのすべての可能な値を表示できる方法はありますか?たとえば、[termalias-raw]プレースホルダーのすべての可能な値を確認したいPathautoモジュールで使用します。

5
James

トークンが取得するすべての値を確認するには、トークンをその値に置き換える関数を呼び出し、$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モジュールによってすでに提供されています。これをすべて表示するには、各パスエイリアスタイプをチェックする必要があります(例usernode分類用語)。

screenshot

4
kiamlaluno

Drupal 7の場合、リストは/ admin/help/token Cheersにあります。

4

これは非常にあいまいです。トークンの値はデータの提供に依存します。つまり、サイトのすべてのノードのトークンの値を確認するように要求しますか?

あなたがこれをしたかったと思います(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」タブが必要です。

2
Dave Reid