[Решено] Проблема с FileField Paths и токеном [term]

Главные вкладки

Аватар пользователя hob hob 17 января 2011 в 21:15

Есть тип материала, к которому прикрепляется файл с помощью FileField. Материалу присваивается термин словаря таксономии.
Задача: файл из FileField должен загружаться в папку files/имя_термина

На первый взгляд всё просто. Ставлю FileField Paths.
В настройках типа материала для поля FileField задаю путь(File path): [term]

Устанавливаю File path cleanup settings:
+ Convert to lower case.
+ Transliterate.

Сохраняю параметры поля.

При создании материала файл загружается не в папку files/term , а тупо в папку files.
Если, редактируя уже созданный материал, удалить загруженный файл и загрузить новый (можно тот же самый) файл, то он попадает куда надо.

В процессе экспериментов выяснилось, что в момент первого сохранения материала токены [term], [term], [term-id], [termpath] имеют пустые значения. При обновлении уже существующего файла значения токенов правильные. Не смотря на то, что термин таксономии задается при создании материала как обязательный.

Решение.
Проблема решается созданием своего, правильного токена. Ставлю Custom Tokens. Создаю свой токен, выдающий имя термина таксономии.

Token id: token_custom_first_term
Тип токена: материал.
Код токена (PHP replacement:):

<?php  if ( (count($node->taxonomy)>0))
  {
      
$a=$node->taxonomy;

      

reset($a);
      
$jj=(int)current($a);

      return 

taxonomy_get_term($jj)->name;
  }

return 

'';?>

В параметрах FileField Paths использую свой токен [token_custom_first_term] вместо [term].
Всё работает как надо. Файл попадает в нужную папку сразу после сохранения материала.

Комментарии

Аватар пользователя Виктор Степаньков ака RxB Виктор Степаньк... 17 января 2011 в 22:25

Я сегодня тоже багу с этим модулем словил, при сохранении пути для Upload Comments он упорно не перекидывал файло куда мне надо, поправил непосредство в БД, там сериализованная переменная.