JQuery UI en Kumbiaphp Spirit

De KumbiaPHP Framework Wiki
Saltar a: navegación, buscar


JQuery UI[editar]

JQuery UI es un set de interacciones y widgets personalizables escritos en base a la librería jQuery. se puede usar para construir aplicaciones web altamente interactivas; Agregando JQuery UI a nuestras app realizadas con Kumbiaphp podremos brindar una interfaz agradable, facil de manejar y con unos cuantos efectos asombrosos gracias a sus componentes. Veamos como podemos darle uso en Kumbiaphp.

Podemos ver demos y temas disponibles para descargar. Adicionalmente se dispone de una herramienta online para crear temas y descargarlos se llama jQuery UI ThemeRoller Developer Tool. Su uso es intuitivo asi que no explicare mucho sobre eso.


Descargando Jquery UI[editar]

Primero que todo debemos descargar Jquery UI. Para ello vamos a su seccion de descargas Y personalizamos la descarga segun las necesidades de nuestra APP. ya sea que necesitemos un acordeon, un widwled tabs o un datapicker necesitamos incluir en la descarga el UI Core. Y seleccionar el tema que acompañara nuestra descarga. Para la fecha y para esta practica hemos descargado la version de jquery-ui 1.8.2, el paquete a descargar se llama jquery-ui-1.8.2.custom.zip, descomprime su contenido en otra carpeta y posterior a esto pasaremos los archivos a donde deben estar en KumbiaPHP Framework para su correcto funcionamiento.

"Para este tutorial incluiremos un Datapicker del UI Core."

En los archivos descargados encontramos 3 directorios:

   * js (libreria Jquery)
   * development-bundle (Demos y librerias necesarias para implementar)
   * css (Themes)

Subiendo Jquery UI a Kumbiaphp[editar]

En nuestra App de kumbiaphp debemos subir los archivos necesarios para ejecutar el datapicker

No es necesario que copies la carpeta development-bundle, sino las subcarpetas que se mencionan, estas son las carpetas ui y themes. En la descarga de la web de jquery-ui en la carpeta js hay dos archivos estos son: jquery-1.4.2.min.js y jquery-ui-1.8.2.custom.min.js copialos en donde se indica.

   * Subir el directorio development-bundle/ui a -> miapp/public/javascript
   * Subir el directorio development-bundle/themes a-> miapp/public/css
   * Si por alguna razon no tenemos JQuery en nuestra app de Kumbia debemos subir esta libreria a
-> miapp/public/javascript

Incluyendo librerias de JQuery UI a Kumbiaphp[editar]

Existen varias formas de agregar las librerias de Jquery UI a nuestra app; Una de ellas es usando el helper javascript_include_tag(); en nuestro template.

Si lo hacemos asi debemos trabajar en el template que se encuentra en miapp/views/templates/mitemplate.phtml o uno que nosotros hallamos creado.

Por defecto Kumbiaphp trae un template llamado default.phtml si no hemos creado uno nosotro usaremos este para trabajar.

Algo a comentar, el paquete de jQuery-ui tiene dentro de la carpeta themes (miapp/public/css/themes) dos carpetas que son base y ui-lightness, puedes usar el archivo ui.all.js de la carpeta base o de la carpeta ui-lightness.

Vamos a crear una carpeta llamada jquery en miapp/public/javascript para colocar de forma ordenada los archivos .js de jquery quedando de esta forma:

miapp/public/javascript/jquery/

<head>
<?php 	
        /* El theme que coloquen en la siguiente linea dependera de cual hayan elegido al bajar el plugin*/
	echo stylesheet_link_tag('themes/base/ui.all');
	echo stylesheet_link_tags();
 
	echo javascript_include_tag('jquery/jquery-1.4.2.min');
	echo javascript_include_tag('jquery/ui/jquery.ui.core');
	echo javascript_include_tag('jquery/ui/jquery.ui.datepicker');
 
?>  
</head>

Partial para el Datepicker[editar]

En el directorio miapp/views/partials crearemos un archivo con extencion .pthml por ejemplo datapicker_alter.phtml en el que incluiremos la llamada al componente que hemos subido de JQuery UI, quedando algo asi miapp/views/partials/datapicker_alter.phtml

<script type="text/javascript">
	$(function() {
//donde datepicker es el ID del input que se asociara al componente datapicker
		$("#datepicker").datepicker({
//Aqui damos los parametros que requiera el componente 
			altFormat: 'DD, d MM, yy', //el formato
			changeMonth: true, //afirmamos que se pueda cambiar de mes
			changeYear: true}); //afirmamos que se pueda cambiar de año
	});
</script>


Otra versión del partial para que acepte el id del datapicker como parámetro.

<script type="text/javascript">
	$(function() {
		//donde datepicker es el ID del input que se asociara al componente datapicker
		$("<?php echo join(',',$datepicker)?>").datepicker({
//			Aqui damos los parametros que requiera el componente - Añadida traducción al español.
			dateFormat: 'dd-mm-yy',
			firstDay: 1,
			monthNames: ['Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'],
			monthNamesShort: ['En','Feb','Mar','Abr','May','Jun','Jul','Ag','Sep','Oct','Nov','Dic'],
			dayNamesMin: ['Dom', 'Lun', 'Mar', 'Mie', 'Jue', 'Vie', 'Sab'],
			changeMonth: true, //afirmamos que se pueda cambiar de mes
			changeYear: true}); //afirmamos que se pueda cambiar de año
	});
</script>

Usando el Partial anterior[editar]

En una vista que tengamos podemos usar el partial anterior de esta forma. Para esta practica crea en la carpeta /views/ una carpeta llamada "home" y una vista llamada index.phtml, quedando de esta forma: miapp/views/home/index.phtml y coloca el siguiente codigo en esta vista:

  1. <?php
  2. echo "<span class='label'>Date:</span>";
  3. echo text_field_tag('name: user.fnac','id: datepicker');
  4. //con el id datepicker asociamos el componente nombrado en el partial. Si queremos 
  5. //usar otro datepicker en el mismo formulario debemos colocar un id diferente en 
  6. //el form y el mismo en el partial
  7.  
  8. //finalmente incluimos el partial
  9. View::partial('datapicker_alter');
  10. ?>

En esta practica no indicamos un Controller y un Modelo, pero es de saberse que el Controller siempre tiene que existir, de haberse olvidado crear el archivo del controller el mismo Framework advertira en una pagina de aviso e indicara el codigo que se debe crear para ello (home_controller), un Modelo no es necesario para este ejercicio en vista de que no hacemos ningun uso hacia una base de datos para este caso.

Y ahora usando el partial con parámetro y escrito de la forma correcta usando los helpers de kumbia:

  1. <?php
  2. // Definimos el campo
  3. echo text_field_tag('busqueda.fecha');
  4.  
  5. /**
  6. *  Incluimos el partial con el parametro.
  7. *  
  8. *  NOTA Advertencia: El id del campo generado por el tag text_field_tag reemplazá el . 
  9. por una _ con lo que debemos prestar atención al nombre del campo. 
  10. **/
  11. echo View::partial('datapicker_alter', false, array('datepicker' => array('#infobasica_fechanac', '#field2'))); 
  12. // con el array('#infobasica_fechanac', '#field2') estamos enviando dos id de dos campos diferentes que requieren usar del datepicker (Mejora realizada por cachi)
  13.  
  14. ?>

Datapicker-jqueryui.jpg

Como podemos ver es muy fácil tener una aplicación con componetes dinámicos agradables, rápidos y personalizables. Del mismo modo que se agrego este datapicker se puede hacer con los otros componentes que incluye JQuery UI. Solo es cuestión de subirlos a los directorios indicados, incluirlos apropiadamente en nuestros templates, crear un partial e incluirlo en la vista que lo requiera.

Descarga[editar]

Descarga: app_calendario_jquery para el core de la version 1.0 Spirit del beta1.

Esta practica ha sido probada en un Windows XP con XAMPP-1.7.1 como en Linux con LAMPP-1.7.1