Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: Son_of_Bush en 13 Abril 2016, 00:19 am



Título: Teoria basica de XML en Jcarousel
Publicado por: Son_of_Bush en 13 Abril 2016, 00:19 am
Estoy tratando de migrar un site estatico a wordpress y este utiliza el plugin "jcarousel" de jquery.

He notado que la fuente del texto que va en el carrusel esta en un archivo xml. Como es de saber wordpress utiliza PHP.

Me pregunto:

1. Puedo olvidarme de usar XML y usar solo PHP?
2. Cual es la ventaja de XML vs PHP?

p.d.
Intente insertar el codigo en formato de codigo, pero no se o no se puede.


---------------------------------------------
Código
  1. <script type="text/javascript">
  2.  
  3. function mycarousel_initCallback(carousel, state)
  4. {
  5.    // Lock until all items are loaded. That prevents jCarousel from
  6.    // setup correctly and we have to do that in the ajax callback
  7.    // function with carousel.setup().
  8.    // We're doing that because we don't know the exact height of each
  9.    // items until they are added to the list.
  10.    carousel.lock();
  11.  
  12.    jQuery.get(
  13.        'xml/news_text.xml',
  14.        {},
  15.        function(xml) {
  16.            mycarousel_itemAddCallback(carousel, xml);
  17.        },
  18.        'xml'
  19.    );
  20. };
  21.  
  22. function mycarousel_itemAddCallback(carousel, xml)
  23. {
  24.    var $items = jQuery('entry', xml);
  25.  
  26.    $items.each(function(i) {
  27.        carousel.add(i + 1, mycarousel_getItemHTML(this));
  28.    });
  29.  
  30.    carousel.size($items.size());
  31.  
  32.    // Unlock and setup.
  33.    carousel.unlock();
  34.    carousel.setup();
  35. };
  36.  
  37. /**
  38.  * Item html creation helper.
  39.  */
  40. function mycarousel_getItemHTML(item)
  41. {
  42.    return '<dt><time class="icon"><em>' + $('day', item).text() + '</em><strong>' + $('month', item).text() + '</strong><span>' + $('date', item).text() + '</span></time></dt><dd><p class="title">' + $('title', item).text() + '</p><p> ' + $('description', item).text() + '</p></dd>';
  43.  
  44.  
  45. };
  46.  
  47. jQuery(document).ready(function() {
  48.    /**
  49.      * We show a simple loading indicator
  50.      * using the jQuery ajax events
  51.      */
  52.    jQuery().ajaxStart(function() {
  53.        jQuery(".jcarousel-clip-vertical").addClass('loading');
  54.    });
  55.  
  56.    jQuery().ajaxStop(function() {
  57.        jQuery(".jcarousel-clip-vertical").removeClass('loading');
  58.    });
  59.  
  60.    jQuery('#mycarousel').jcarousel({
  61.        vertical: true,
  62.        scroll: 1,
  63.        size: 0,
  64.        initCallback: mycarousel_initCallback
  65.    });
  66. });
  67.  
  68. </script>

MOD EDIT: Agregado de etiquetas GeSHi


Título: Re: Teoria basica de XML en Jcarousel
Publicado por: xiruko en 13 Abril 2016, 00:42 am
Hola,

Comparar PHP con XML es como comparar tomates con aviones. XML simplemente es un lenguaje de etiquetas personalizado para la aplicación. Se usa para almacenar valores de configuración, datos que serán mostrados más adelante como es tu caso, o para enviar datos por internet.

Por ejemplo, imagina que tu aplicación envía ante una petición los datos de 2 coches que han satisfecho una búsqueda. Desde PHP construyes la cadena XML que sería algo como esto:

Código
  1. <busqueda>
  2.   <coche>
  3.      <marca>Seat</marca>
  4.      <color>Negro</color>
  5.   </coche>
  6.   <coche>
  7.      <marca>Renault</marca>
  8.      <color>Rojo</color>
  9.   </coche>
  10. </busqueda>

Y luego con javascript, recogerías esos datos mediante una petición AJAX y harías algo con ellos.

Esto es solo un ejemplo. Otro podría ser guardar valores de configuración de tu programa. PHP ya tiene funciones predefinidas para tratar con archivos XML, así que imagínate que guardaras toda la configuración de tu aplicación web en un archivo XML. Podría ser algo como esto:

Código
  1. <configuracion>
  2.   <rootpath>/path/to/root/</rootpath>
  3.   <db_user>UsuarioBBDD</db_user>
  4.   <db_password>12345678</db_password>
  5.   etc.
  6. </configuracion>

Saludos!


Título: Re: Teoria basica de XML en Jcarousel
Publicado por: Son_of_Bush en 13 Abril 2016, 00:58 am
Si es solo para almacenar valor, entonces si modifico el javascript no tengo que usar XML y solo tendria que trabajar con PHP?

La informacion que esta guardada en XML son articulos como de noticias. Lo que yo quiero y pensaba hacer es sustituir el XML por los post de wordpress. Existe algun problema si intento eso?

Y gracias por tu ejemplo!!



Lo que intento es hacer esta pagina dinamica http://www.ortizorellanes.com/static/news.html

Hasta aqui es mi avance http://www.ortizorellanes.com/wp/spna-news/

MOD EDIT: No hacer doble post.


Título: Re: Teoria basica de XML en Jcarousel
Publicado por: xiruko en 13 Abril 2016, 01:26 am
Usar javascript y/o PHP no implica tener que usar o no usar XML. XML solo es un formato que le das a una información, no es un lenguaje de programación.

Si dices que tienes artículos guardados en formato XML, y que esos artículos no los quieres para nada, y que en su lugar quieres usar los posts de Wordpress entonces que le den a los archivos XML que tienes.

Ahora bien, Wordpress cómo guarda los posts? En una base de datos MySQL? O los guarda en formato XML en el servidor? Dudo que lo haga guardándolos en archivos XML pero ni idea de cómo funciona Wordpress.

Respecto a si habría algún problema, bueno, ahora mismo tu javascript recoge por AJAX los datos de los archivos XML. Si cambias eso para que haga la petición a un PHP donde cojas la información de los posts de la base de datos no debería haber ningún problema. Para evitarte tener que cambiarlo todo, podrías hacer que este PHP devolviera la información en formato XML, así lo demás que tienes de javascript te serviría tal cual.

Saludos!


Título: Re: Teoria basica de XML en Jcarousel
Publicado por: Son_of_Bush en 13 Abril 2016, 01:30 am
Ok. Gracias!!! Muchas gracias!!