Установить каталог загрузки файлов в зависимости от условий (в шаблоне формы создания материала)

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

Аватар пользователя DenVPC DenVPC 24 июля 2013 в 15:05

Создаю файл: page--node--add--мойтипданных.tpl.php , темизация загрузки для моего типа данных.
Форму в шаблоне получаю, как: $form = node_add('имямоеготипаданных');
В форме добавлено поле 'field_dataset_include_files'.
В настройках поля указано использовать: директорию 'dir1',приватного хранилища, обработка файлов через drupal.

Хочу в зависимости от условий, менять каталог загрузки файлов через это поле.
Пробовал указать: $form['field_dataset_include_files']['und'][0]['#upload_location'] = 'private://dir2';
Значение в массиве $form действительно меняется.
Однако, после drupal_render($form), получаем поле загрузки , которое помещает файлы в 'private://dir1' , полностью игнорирую мои изменения.

Вопрос как сделать чтобы:
Если 1 условие соблюдено, складывать файлы в 'private://dir1'
Если 2 условие соблюдено, складывать файлы в 'private://dir2'
и т.д.?

Это необходимо, поскольку поставлена задача помимо доступа через drupal организовать дерево вложенных каталогов, которое будет доступно через просмотр файловой системы файловым менеджером.

Комментарии

Аватар пользователя DenVPC DenVPC 26 июля 2013 в 12:36

Никто не знает как это обойти или в чем проблема? Не сильно хотелось бы лезть совсем уж в глубины друпала...

Аватар пользователя DenVPC DenVPC 26 июля 2013 в 21:25

RxB, благодарю, идею понял. Попробую.
Вариант такой получился потому, что шаблон страницы уже мной создан и используется для других целей Smile

Аватар пользователя mikewing mikewing 6 августа 2013 в 14:04

Не стал создавать новую тему, вопрос подобный.
Хочу грузить файлы в зависимости от терминов к ноде.
Например так:
[term:vocabulary]/[term:parents:join-path]/[term:name]
Не соображу, как сделать. Нода еще не сохранена, да и токены таксономии не работают в пути к каталогу.
Мысли пока скачут в сторону Rules.
Может натолкнет кто. Спасибо.

Аватар пользователя mikewing mikewing 6 августа 2013 в 16:03

Ура, получилось. Правда с использованием модуля filefield_paths.
Он позволяет использовать токены ноды и для пути к файлу и для его переименования при загрузке.
Путь к файлу
[node:field-node-term:vocabulary]/[node:field-node-term:root]/[node:field-node-term:parent]/[node:field-node-term]
Имя файла
[node:field-node-term:root]-[node:field-node-term:parent]-[node:field-node-term].[file:ffp-extension-original]
Теперь все раскладывается по папкам в зависимости от термина таксономии и переименовывается аналогично.