У меня есть сайт Drupal 7 с настраиваемым типом узла с настраиваемым полем вложения. После того, как (что-то вроде этого пользовательского) узла был опубликован, я получил электронное письмо с помощью модуля правил. Я хотел бы установить другое правило, которое отправляет мне другое электронное письмо, когда кто-то редактирует этот узел и загружает вложение. Внутри почты я хочу видеть полный URL-адрес загруженного файла.
После нескольких тестов я не могу вставить полный путь к загруженному файлу. [node:field-attachment:file] вообще не работает. Я могу вставить (вручную) URL-адрес, где находится этот файл, но после этого я не могу вставить имя файла (так что даже имени файла мне было бы достаточно).
Итак, с [node:field-attachment:file] я получил ошибку: * Неустранимая ошибка: вызов функции-члена value() для не-объекта в /home/xxx/sites/all /modules/entity/entity_token.tokens.inc в строке 297.*
Что именно это:
/**
* Gets the token replacement by correctly obeying the options.
*/
function _entity_token_get_token($wrapper, $options) {
if ($wrapper->value() === NULL) {
// Do not provide a replacement if there is no value.
return NULL;
}
С [node:field-attachment] я получаю электронное письмо, но оно содержит следующее: Вы можете загрузить файл отсюда: Свойство 0
Какой токен следует использовать для получения URL-адреса (или имени файла) фактически загруженного файла при редактировании узла?
<?php $query = db_select('file_managed', 'fm'); $query->fields('fm', array('filename')) ->orderBy('fid', 'DESC') ->range(0,1); $result = $query->execute()->fetchField(); echo $result; ?>
Я знаю, что это не лучший способ, но этого достаточно для небольших сайтов, и может помочь кому-нибудь когда-нибудь получить ссылку на последнюю загруженную файл. - person Pene   schedule 09.11.2012