Комментировать
How to add a custom token
Julia 06/01/2010
It is a snippet - how to create custom tokens for specific replacements that can improve other modules relying on Token.
Custom implementation
Firstly, how can you create own tokens in a module yourself.
This is a small snippet about creating own token.
For example I use content_profile module I wish to have the title of profile node in my tokens.
Before that, don't forget to enable the Token module
<?php
/**
* Implementation of hook_token_values().
*/
function [mymodulename]_token_values($type, $object = NULL, $options = array()) {
$values = array();
switch ($type) {
case 'node':
if (isset($object)) {
$account = user_load(array('uid' => $object->uid));
}
else {
global $user;
$account = user_load(array('uid' => $user->uid));
}
$node_profile = content_profile_load('profile', $account->uid);
$values['profile'] = ($node_profile->title) ? $node_profile->title : '';
break;
}
return $values;
}
/**
* Implementation of hook_token_list().
*/
function [mymodulename]_token_list($type = 'all') {
if ($type == 'node' || $type == 'all') {
$tokens['node']['profile'] = t("Profile title of authors content profile");
return $tokens;
}
}
?>Module Custom Tokens
Also you can try to use the Custom Tokens module
From the desciption of this module:
"Advanced module, PHP code evaluation and execution
This module is designed for developers with, at least, a little PHP knowledge. Custom tokens will evaluate and execute PHP snippets in order to provide the replacements for the tokens you define."