====== Proyecto Gestión Forestal ====== == Necesidades técnicas del proyecto (documentación) == * Creación de componente base. * www.notwebdesign.com/joomla-component-creator/ * 1-N pocos registros. * Listados. * Cambiar la consulta que utiliza el modelo para hacer el listado. * Cambiar la vista para que muestre el campo de la segunda tabla. * Registro (con listas desplegables). * Añadir el tipo de campo (extendiendo la clase JformFieldList). * Cambiar el formulario del XML para el campo de la clave externa sea del tipo que acabamos de crear. * 1-N muchos registros. * Listados. * Cambiar la consulta que utiliza el modelo para hacer el listado. * Cambiar la vista para que muestre el campo de la segunda tabla. * Registro. * http://docs.joomla.org/Creating_a_modal_form_field. * M-N pocos registros. * Checkboxes. * M-N muchos registros. * Integridad referencial. * INNODB como motor de BD. * Gestión a nivel de modelo o en las tablas (joomla). * Listados en formato excel. * http://phpexcel.codeplex.com. * Permisos (gestión de roles). * http://docs.joomla.org/Access_Control_List/1.6-2.5/Tutorial * http://docs.joomla.org/Adding_ACL_rules_to_your_component * http://www.slideshare.net/sanderpotjer/joomla-16-acl-j-and-beyond-2011 * http://www.theartofjoomla.com/home/5-commentary/84-introducing-the-new-permissions-in-joomla-16.html * http://community.joomla.org/blogs/community/1252-16-acl.html * Opciones de listado (qué campos mostramos). * Guardar los datos en la configuración del componente (tal y como se hace en los contenidos). * Plantillas de word. * http://www.phpdocx.com. * http://github.com/djpate/docxgen/. * Controles para dispositivos móviles. * Phonegap (para móviles). * Aplicaciones offline. * Subcontratado. Posiblemente HTML5. * Exposición de datos mediante XMLRPC ó SOAP. * XMLRPC. http://docs.joomla.org/Xml-rpc_changes_in_Joomla!_1.6. * Ejemplo de SOAP. http://extensions.joomla.org/extensions/news-production/blog/blog-integratios/16655 * Sistema de alarmas. * Cron (llamando a Joomla desde línea de comandos) y envío de mensajes. * Invocar joomla desde línea de comandos (intérprete PHP). * http://docs.joomla.org/How_to_create_a_stand-alone_application_using_the_Joomla!_Framework * Generadores de códigos. * Del estilo al utilizado en el plugin que hicimos para virtuemart VM Default SKU. * Google maps. * SIGPAC. * http://openlayers.org/ * http://www.goolzoom.com/ * http://opensourcegis.org/ * WMS * http://www.marm.es/es/cartografia-y-sig/servicios/ide/directorio_datos_servicios/caracteristicas_wms.aspx * http://www.marm.es/es/agricultura/temas/sistema-de-informacion-geografica-de-parcelas-agricolas-sigpac-/ * Campos de auditoría. * Hacer una clase JTable adhoc que gestione los campos de auditoría de forma autónoma. * Estadísticas en el gestor de joomla. * Sistema de actualizaciones de la aplicación. * Plugins en componente (para los mapas por ejemplo). * http://docs.joomla.org/Supporting_plugins_in_your_component * Gestión de actualizaciones * http://docs.joomla.org/Managing_Component_Updates_with_Joomla!1.6_-_Part_1 * Creación de librerías dentro de Joomla * http://www.howtojoomla.net/how-tos/development/how-to-package-joomla-libraries == Anotaciones == * Fechas en Joomla. http://www.webamoeba.co.uk/site/index.php/articles-joomla-date-time * Base de datos: * DATETIME. Rango de fechas entre 1000-00-00 00:00:00 y 9999-12-31 23:59:59. * TIMESTAMP. Rango de fechas entre 1970-00-00 00:00:00 y 2038-01-19 03:14:07. Segundos desde EPOCH. Internamente (la base de datos) hace las conversiones necesarias para guardar el dato en UTC+0. * El valor vacío/nulo para las fechas es 0000-00-00 00:00:00. * Obtener un objeto tipo fecha. * Fecha actual. $now = JFactory::getDate(); El valor es serializado (tiene el mismo valor al comienzo que al final de la ejecución del script PHP). * Valor de la base de datos. $fecha = JFactory::getDate($row->fecha); * Formatos soportados en el formateo de una fecha. * RFC2822. Fri, 2 Oct 2009 15:25:00 +0000 * RFC3339. 2009-10-02 T15:25:00+0000 * Formato inglés (americano). 2 October 2009 * Timestamp. (número entero de hasta 32 bits). * Representación interna de JDate. Siempre es UTC+0. * Uso en mysql. * $db = &JFactory::getDBO(); $sql = 'SELECT * FROM ... WHERE fecha = ' $db->Quote ($fecha->toMySQL()) ' AND campo = 10'; * Zonas horarias en la configuración. Hay una zona horaria para el servidor y otra definición de zona horaria para cada usuario. * Visualizar fechas. * Formatos estándar posibles (con ejemplos en la versión de inglés): * DATE_FORMAT_LC (Tuesday, 06 October 2009) * DATE_FORMAT_LC1 (Tuesday, 06 October 2009) * DATE_FORMAT_LC2 (Tuesday, 06 October 2009 14:15) * DATE_FORMAT_LC3 (06 October 2009) * DATE_FORMAT_LC4 (06.10.09) * Ejemplos: * JHTML::_('date',$fecha); * JHTML::_('date',$fecha,$formato); * JHTML::_('date',$fecha,$formato,$offset); * $formato_fecha = JText::_('DATE_FORMAT_LC4'); JHTML::_('date',$fecha,$formato_fecha); == Google maps == * Copyright personalizado http://gmaps-samples-v3.googlecode.com/svn/trunk/custom-copyirghts/custom-copyrights.html * Perfil de elevación http://gmaps-samples-v3.googlecode.com/svn/trunk/elevation/elevation-profile.html * Overlay de círculo http://gmaps-samples-v3.googlecode.com/svn/trunk/circle-overlay/circle-overlay.html * Carga automática http://gmaps-samples-v3.googlecode.com/svn/trunk/commonloader/autoload.html * Geolocalización http://gmaps-samples-v3.googlecode.com/svn/trunk/geolocate/geolocate.html * Carga con AJAX http://gmaps-samples-v3.googlecode.com/svn/trunk/callback/callback.html * Carga retrasada http://gmaps-samples-v3.googlecode.com/svn/trunk/callback/callback_delayed.html * Obtener ZIP http://www.usnaviguide.com/v3maps/WhatZipCode.htm?lat=43.261204&lng=-2.964933999999971 * Superposición ArcGIS http://gmaps-utility-gis.googlecode.com/svn/trunk/arcgislink/examples/simpleags.html * Aplicación descarga mapa grande google http://www.geckoandfly.com/5929/how-to-save-and-download-google-maps-to-jpeg-for-offline-browsing/ == Embedir excel (solución javascript) == * http://dhtmlx.com/docs/products/dhtmlxSpreadsheet/index.shtml?mn == Posible solución M-N en base de datos == * http://forum.joomla.org/viewtopic.php?p=2588491 == Uploads == * http://docs.joomla.org/Creating_a_file_uploader_in_your_component == Cambios de la versión 1.5 == * http://cursus.jira.nl/cursus/downloads/doc_view/31-joomla-16-programming == Geoposicionamiento == * Ejemplo de la gente de google maps http://code.google.com/intl/es-ES/apis/maps/articles/phpsqlsearch.html * Función de cálculo de distancias http://www.marketingtechblog.com/calculate-distance/ * Presentación http://es.scribd.com/doc/2569355/Geo-Distance-Search-with-MySQL * Función optimizada de cálculo de distancias http://tumblr.jonthornton.com/post/1419487206/calculate-latitude-longitude-distances-in-mysql-with == Pruebas de carga == * http://www.webresourcesdepot.com/test-sample-data-generators/ == SOAP == * Cliente genérico para firefox https://addons.mozilla.org/en-US/firefox/addon/soa-client/ * Web con cliente de soap (mediante formulario) http://soapclient.com * Implementación PHP http://sourceforge.net/projects/nusoap/ * Generar diferentes formatos de información (JSON, SOAP, XMLRPC,...) http://docs.joomla.org/Xml-rpc_changes_in_Joomla!_1.6 == Servidor web (y PHP) en android == http://paw-android.fun2code.de/ (no tiene soporte para mysql)