Message-ID: <2123084345.379372.1711726501112.JavaMail.root@confluence-doc2-production> Subject: Exported From Confluence MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_Part_379371_1450146075.1711726501107" ------=_Part_379371_1450146075.1711726501107 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Location: file:///C:/exported.html
Objetivo: una aplicaci=C3=B3n web para enumerar y crear=
un nuevo cliente.
Dificultad: **
Copie el archivo list_the_clients.php
de la Secci=C3=B3n 3.=
3 en un archivo denominado C-CRUD.php
en la ra=C3=ADz de su se=
rvidor web.
La adici=C3=B3n de recursos puede ser comparada a una actualizaci=C3=B3n= de un elemento vac=C3=ADo.
=20Pero, =C2=BFc=C3=B3mo recuperamos un XML formateado como un cliente de v= ac=C3=ADo?
=20En el servicio web, existe un m=C3=A9todo para recuperar un XML vac=C3= =ADo. Es accesible a trav=C3=A9s de una URL formateada:
=20Es posible reemplazar el valor de r=C3=A9gimen de par=C3=A1metro "blank"= con "synopsis" para obtener m=C3=A1s informaci=C3=B3n sobre los campos del= recurso. http://mitienda.com/api/(resource nombre)?schema= =3Dblank
Como vimos en la Secci=C3=B3n 3.3 (Enumeraci=C3=B3n de clientes), es pos= ible crear una matriz de par=C3=A1metros de "get", "resource" y "id". Tambi= =C3=A9n es posible especificar s=C3=B3lo una URL de esta manera:
=20$xml =3D $webService->get( array( 'url' =3D> 'http://mystore.com/api/= customers?schema=3Dblank' ) );=20
Aqu=C3=AD, tenemos la variable XML completa de un cliente de vac=C3=ADo.=
=20<prestashop> <customer> <id_default_group/> etc...=20
A partir del archivo XML recuperado:
=20Luego podemos, gracias a los muchos campos que tenemos, crear un formula= rio relacionado.
=20Obtenci=C3=B3n de todos los campos:
=20$resources =3D $xml->children()->children();=20
Ruta de todos los campos y parte de la creaci=C3=B3n din=C3=A1mica de ca= mpos de formulario en una tabla:
=20foreach ( $resources as $key =3D> $resource ) { echo '<tr><th>' . $key . '</th><td>'; =20 echo '<input type=3D"text" name=3D"' . $key . '" value=3D""/>'; echo '</td></tr>'; }=20
Una vez que los datos se pasan en POST, combinamos los datos enviados co= n el archivo XML en blanco, la cual es la misma t=C3=A9cnica utilizada para= la actualizaci=C3=B3n de los datos.
=20foreach ( $resources as $nodeKey =3D> $node ) { $resources->$nodeKey =3D $_POST[ $nodeKey ]; }=20
Llamar al servicio web es similar a lo que hemos visto anteriormente:
=20$opt =3D array( 'resource' =3D> 'customers' ); $opt ['xml' ] =3D $xml->asXML(); $xml =3D $webService->add( $opt );=20
Ahora cree un script que a=C3=B1ade un cliente. Recuerde que algunos cam= pos son obligatorios, as=C3=AD que no se olvide de rellenarlos.
=20Si tiene problemas, observe el c=C3=B3digo para 3-Create.php
.