function formatear($tipo, $valor) { switch ($tipo) { case 'datetime_object': $valor = substr($valor->format('Y-m-d H:i:s'), 0, 10); break; case 'boolean': $valor = $valor == 'True' ? 1 : 0; break; case 'datetime': $valor = $valor->format('Y-m-d') . 'T' . $valor->format('H:i:s'); break; default: // Limpiamos todos los css, ids, class, etc. que pudiera haber en las etiquetas $valor = limpiar_estilos(html_entity_decode($valor)); } return $valor; }
break; // Si es un tipo de datos booleano // Si es un tipo de datos booleano case 'boolean': $valor = $valor == 'True' ? 1 : 0; break; // Si es summary, no lo insertamos, lo insertaremos en el body // Si es summary, no lo insertamos, lo insertaremos en el body case 'summary': $etiqueta = ''; break; default: } if ($etiqueta) { // Creamos un elemento para añadir al array $elem = array($etiqueta => utf8_encode($valor)); // Si el tipo de campo es basic_html if ($eq_campos[$campos][1] == 'basic_html') { $elem['summary'] = utf8_encode(limpiar_estilos(html_entity_decode($contenido['Summary'][0]))); $elem['format'] = 'basic_html'; } // Añadimos el dato al array $json[$eq_campos[$campos][0]] = array($elem); } } } // Creamos el json $json = crear_json($uid, $entidad, $json); // Hacemos el POST a la API de Drupal $result = insertar_contenido($entidad, $json); echo $result['nid'][0]['value'] > 0 ? 'ok' : 'Error en registro: ArticleID = ' . $db->record['ArticleID'];
$taxonomia = array('CNMC' => 2, 'Competencia' => 3, 'Energía' => 4, 'Estadísticas' => 5, 'Promoción' => 7, 'Promoción Competencia' => 7, 'PromocionCompetencia' => 7, 'telecomunicacionesysaudiovisuales' => 1, 'transportesysectorpostal' => 6, 'Unidad de Mercado' => 9); // Equivalencia de los campos de la vieja web con el tipo de datos de Drupal - campo sqlsrv => (nombre, tipo) $eq_campos = array(75 => array('title', ''), 76 => array('field_categoria', 'taxonomy'), 81 => array('field_texto_corto', ''), 83 => array('field_portada', 'boolean'), 84 => array('field_fecha', 'date'), 85 => array('body', 'basic_html'), 142 => array('field_nota_de_prensa_titulo', ''), 143 => array('field_nota_de_prensa_enlace', ''), 412 => array('field_fecha_publicacion', 'datetime')); // Obtenemos todos los registros $contenido = array(); $db->query("SELECT TOP 1 * FROM UserDefinedRows WHERE ModuleId = '{$module_id}' AND UserDefinedRowId NOT IN (SELECT TOP {$registro} UserDefinedRowId FROM UserDefinedRows WHERE ModuleId = '{$module_id}' ORDER BY UserDefinedRowId) ORDER BY UserDefinedRowId"); if (!$db->next_record()) { // Buscamos los campos de ese registro $db2->query("SELECT * FROM UserDefinedData AS d INNER JOIN UserDefinedFields AS f ON d.UserDefinedFieldId = f.UserDefinedFieldId WHERE UserDefinedRowId = '{$db->record['UserDefinedRowId']}'"); while ($db2->next_record()) { // Si es un tipo de datos múltiple if ($db2->record['MultipleValues']) { $valor = explode(';', $db2->record['FieldValue']); } else { // Limpiamos todos los css, ids, class, etc. que pudiera haber en las etiquetas $texto = limpiar_estilos($db2->record['FieldValue']); //$texto = $db2->record['FieldValue']; $valor = array($texto); } // Lo guardamos en un array foreach ($valor as $valor) { // Sólo guardamos los campos que necesitamos if ($eq_campos[$db2->record['UserDefinedFieldId']]) { $contenido[$db2->record['UserDefinedFieldId']][] = $valor; } } } } else { exit('stop'); } $json = array();