Drupal XmlRpc Date Api Services. Решение проблемы с глюками.

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

Аватар пользователя stillfinder stillfinder 16 мая 2011 в 14:32

Немного помучившись с отправкой поля типа дата через xml-rpc на друпаловский сайт из программы на C# было найдено такое решение:

XmlRpcStruct node = new XmlRpcStruct();

string field_exclusive_date_to = "10.05.2024 0:00:00";
DateTime dtfield_exclusive_date_to = DateTime.Parse(field_exclusive_date_to);
AddArrayDateToNode("field_exclusive_date_to", dtfield_exclusive_date_to, node);

///
/// Добавляет в ноду поле с датой (Drupal Date)
///
///
///
///
/// Нужно написать в блоге каком то как это делать, ато все ебуться и никто еще не нашел.
private static void AddArrayDateToNode(string fieldname, DateTime dt, XmlRpcStruct node)
{
XmlRpcStruct sMainDate = new XmlRpcStruct();
XmlRpcStruct sDate = new XmlRpcStruct();
sDate["year"] = dt.Year.ToString();
sDate["month"] = dt.Month.ToString();
sDate["day"] = dt.Day.ToString();
sMainDate["value"] = sDate;
object[] oDate = new object[] { sMainDate };
node[fieldname] = oDate;
}

Все дело в том, что на Drupal сайте Date Api хранит дату немного не в том формате в котором отображает. Следовательно получение и отправка поля CCK типа Date будет сильно различаться.

Источник: http://stillfinder.blogspot.com/2011/05/drupal-xmlrpc-date-api-services....

Комментарии

Аватар пользователя stillfinder stillfinder 4 июля 2011 в 15:44

То есть слать нужно структуру такого формата для поля с датой:
[field_next_call_date] => Array
(
[0] => Array
(
[value] => Array
(
[year] => 2014
[month] => 7
[day] => 7
)

)

)

И в таком формате для checkbox cck field.
[field_checkboxes] => Array
(
[value] => Array
(
[1991] => 1991
[1985] => 1985
)

1991 - это id термина таксономии связанного с чекбоксом
)