1.20.x book.tokens.inc | book_tokens($type, $tokens, array $data = array(), array $options = array()) |
Implements hook_tokens() on behalf of book.module.
File
- modules/
book/ book.tokens.inc, line 22 - Builds placeholder replacement tokens for book-related data.
Code
function book_tokens($type, $tokens, array $data = array(), array $options = array()) {
$replacements = array();
$sanitize = !empty($options['sanitize']);
// Node tokens.
if ($type == 'node' && !empty($data['node'])) {
$node = $data['node'];
if (!empty($node->book['mlid'])) {
// Skip access check to generat tokens before node grants are saved.
$link = book_link_load($node->book['mlid'], TRUE);
foreach ($tokens as $name => $original) {
switch ($name) {
case 'book':
$replacements[$original] = $sanitize ? check_plain($link['title']) : $link['title'];
break;
}
}
// Chained token relationships.
if ($book_tokens = token_find_with_prefix($tokens, 'book')) {
$replacements += token_generate('menu-link', $book_tokens, array('menu-link' => $link), $options);
}
}
}
return $replacements;
}