1 token.inc | token_get_invalid_tokens($type, array $tokens) |
Validate an array of tokens based on their token type.
Parameters
string $type: The type of tokens to validate (e.g. 'node', etc.)
array $tokens: A keyed array of tokens, and their original raw form in the source text.
Return value
array: An array with the invalid tokens in their original raw forms.
File
- core/
includes/ token.inc, line 783 - Backdrop placeholder/token replacement system.
Code
function token_get_invalid_tokens($type, array $tokens) {
$token_info = token_get_info();
$invalid_tokens = array();
foreach ($tokens as $token => $full_token) {
// Split token up if it has chains.
$parts = explode(':', $token, 2);
if (!isset($token_info['tokens'][$type][$parts[0]])) {
// This is an invalid token (not defined).
$invalid_tokens[] = $full_token;
}
elseif (count($parts) == 2) {
$sub_token_info = $token_info['tokens'][$type][$parts[0]];
if (!empty($sub_token_info['dynamic'])) {
// If this token has been flagged as a dynamic token, skip it.
continue;
}
elseif (empty($sub_token_info['type'])) {
// If the token has chains, but does not support it, it is invalid.
$invalid_tokens[] = $full_token;
}
else {
// Recursively check the chained tokens.
$sub_tokens = token_find_with_prefix(array($token => $full_token), $parts[0]);
$invalid_tokens = array_merge($invalid_tokens, token_get_invalid_tokens($sub_token_info['type'], $sub_tokens));
}
}
}
return $invalid_tokens;
}