Как прикрепить информацию о файле после сохранения файла - PullRequest
0 голосов
/ 02 августа 2010

В настоящее время я работаю над приложением Flash, которое должно сохранять файлы в Drupal.Я уже сохранил файл на сайте Drupal с помощью файловой службы, но не могу прикрепить файл к узлу с помощью службы node.save (модуль загрузки, а не поле файла CCK).

объект, который я перенесу с помощью node.save, в AS3 выглядит следующим образом:

var node:Object;
// all the other required node fields : nid, type, language, uid, name,
// status, title, changed, created, format, taxonomy, picture
node.files = new Array();

var aFile:Array = new Array;
aFile['list']=1;
aFile['weight']=0;
aFile['remove']=0;
aFile['description']="test.txt";

// id = id of the previously saved file
node.files[id] = aFile;

Я полагаю, что некоторые поля отсутствуют или что-то в этом роде.

Ответы [ 2 ]

0 голосов
/ 16 августа 2010

Я обнаружил, что на самом деле это касается только модулей, которые изменяют данные непосредственно в объекте, загруженном с помощью node_load (), прежде чем сохранять его с помощью node_save (). Другие модули (например, CCK) действуют на данные #post формы (с drupal_execute).

Сервисному модулю нужен патч, чтобы он мог обрабатывать модуль загрузки (или любой другой модуль, подобный этому).

Вы можете следить за деталями на тикете, который я открыл здесь http://drupal.org/node/881740

0 голосов
/ 02 августа 2010

Возможно, ваша проблема связана с вашим aFile массивом.Для создания ассоциативного массива в AS3 Adobe предлагает использовать объект:

var aFile:Object = new Object();
aFile['list']=1;
aFile['weight']=0;
aFile['remove']=0;
aFile['description']="test.txt";

// id = id of the previously saved file
node.files[id] = aFile;

Из документации Adobe:

  • "Не используйте класс Array для создания ассоциативных массивов (также называемыхhashes), которые представляют собой структуры данных, которые содержат именованные элементы вместо пронумерованных элементов. Для создания ассоциативных массивов используйте класс Object. Хотя ActionScript позволяет создавать ассоциативные массивы с использованием класса Array, вы не можете использовать любые методы или свойства класса Array.с ассоциативными массивами. "
...