Buenas, llevo unos cuantos días peleándome con esto, y hoy he decidido debugear paso a paso todo el proceso de inserción del nodo, para mi sorpresa sucede que si el nodo lo inserto desde SERVICES, la fecha se "rompe", pero primeramente al correr la función
date_combo_validate($element, &$form_state) del módulo date (date_elements.inc línea 433), la fecha que recibe es la actual, no la que he insertado en el nodo.
El código json que uso para crear mi nodo (previamente validadado aquí), es este:
Código:
{
"type":"public_meeting",
"title":"testing with location",
"field_public_meeting_description":{
"und":[
{
"value":"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam ",
"format":null,
"safe_value":"Lorem ipsum dolor sit amet, consectetur adipiscing elit.."
}
]
},
"users_fieldset ":{
"users_flagged_play_with_user ":{
"iwue":"iwue",
"admink":"admink"
},
"users_flagged_listen_user":{
"asdaasdasdasd":"asdaasdasdasd",
"sasdsssssssssd":"sasdsssssssssd"
}
},
"field_calendar":{
"und":{
"value":{
"date":"2016-01-27"
}
}
},
"field_public_meeting_type":{
"und":{
"tid":"220"
}
},
"field_public_meeting_photo":{
"und":[
{
"fid":341
}
]
},
"field_public_meeting_location":{
"und":[
{
"street":"avenida andaluc\u00eda",
"city":"Granada",
"country":"es",
"latitude":"37.193343",
"longitude":"-3.624614"
}
]
}
}
Eso son datos de ejemplo que cargo, por supuesto serán datos dinámicos que usará la APP.
Y cuando debugeo el hook_node_insert($node) sucede esto (según como ponga la fecha o se rompe el array y desaparece 0, o se muestra la fecha incorrecta y se inserta en la bd como :
0000-01-01T00:00:00 (he adjuntado capturas de todo esto a continuación).
Decir también que llevo muchos días leyendo por aquí y por allá, y he seguido de cabo a rabo este hilo
https://www.drupal.org/node/1354202 , pero ninguna de las soluciones propuestas allí solucionan este problema.
Gracias de antemano.
Bueno en la función
_node_resource_create($node) del módulo
SERVICES, he visto donde se fastidia el valor correcto de la fecha, y es al llamar a
drupal_form_submit($node_type . '_node_form', $form_state, (object)$stub_node);
Este es el punto exacto donde cambia la fecha por la actual, la verdad que no me lo explico como puede suceder esto.