Хотя я немного размышляю о точных деталях того, что вы хотите, основная предпосылка на самом деле довольно проста.
Вы захотите создать собственный модуль, который просто определяет некоторые токены, аналогично следующему:
/**
* Implements hook_theme().
*/
function my_module_theme() {
return array(
'my_module' => array(
'arguments' => array('object' => NULL)
),
);
}
/**
* Implements hook_token_list().
*/
function my_module_token_list($type = 'all') {
if ($type == 'node' || $type == 'all') {
$tokens = array();
$tokens['my_module']['table-TABLE-ID'] = t('description').
return $tokens;
}
}
/**
* Implements hook_token_values().
*/
function my_module_token_values($type, $object = NULL) {
if ($type == 'node') {
($table, $id) = explode('-', $object->my_field['value']);
$tokens['table-' . $object->my_field['value']] = theme('my_module', db_fetch_object(db_query("SELECT * FROM {" . $table . "} WHERE id = %d", $id)));
return $tokens;
}
}
function theme_my_module($object) {
return '<div>' . $object->content . '</div>';
}
Примечание: Весь этот код теоретический, и я могу сказать, что он не будет работать. Также крайне небезопасно делать db_query так, как я это сделал здесь (это была моя интерпретация того, что вы хотели), вместо этого вы должны иметь токен для каждого другого типа запроса, который вы хотите ('table-node-ID', и т.д.).
Надеюсь, это несколько полезно.