Имеется страница с собственным типом материала "Выпуск газеты". Заголовок каждой страницы должен выглядеть как "Выпуск № XX от DD месяц YYYY (ZZ M)"
Решил использовать модули Automatic Entity Labels и Token. Номер выпуска сделал отдельным полем в ноде, дату вывел легко, а вот с размером файла проблемы.
Среди стандартных токенов имеется только токен, выводящий ссылку на файл ([node:field_file]).
Попытался сделать свой:
<?php
/**
* Implements hook_token_info().
*/
function mytokens_token_info() {
$node_tokens['field_file']['size'] = array(
'name' => t('File size'),
'description' => t('File size'),
);
$node_tokens['field_file']['size']['mbytes'] = array(
'name' => t('In MB'),
'description' => t('File size in MB'),
);
return array(
'tokens' => array(
'node' => $node_tokens,
),
);
}
/**
* Implements hook_tokens().
*/
function mytokens_tokens($type, $tokens, array $data = array(), array $options = array()) {
$replacements = array();
if (
$type == 'node' && !empty($data['node'])) {
$node = $data['node'];
foreach (
$tokens as $name => $original) {
if ($name == 'mbytes') {
$replacements[$original] = $node->field_file['und'][0]['filesize']/(1024*1024);
}
}
}
return
$replacements;
}
?>
Но созданный токен не отображается в таблице токенов (и мало того, затирает название и описание токена node:field_file), а когда я добавляю его в заголовок, не происходит ничего.
Как же мне всё-таки вывести этот размер файла?
Комментарии
hook_node_preprocess скорее всего поможет
отслеживаете тип нужной ноды, смотрите поле файла и изменяете тайтл