Il discorso vale un po' per qualsiasi plugin JQuery. Offrono effetti molto avanzati agli script e sono semplici da usare.
Quindi... usiamoli! Vediamo un esempio con le google maps
Un ambiente test
----------------
lo costruiamo velocemente in qs modo:
* creiamo la cartella com_maps in /administrator/components, contenente due files: admin.maps.php e il solito index.html, entrambi praticamente vuoti, con dentro qs codice: <html><body bgcolor="#FFFFFF"></body></html>
* creiamo la cartella com_maps in /components (frontend), contenente:
- il manifesto maps.xml -------------------------------
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE install SYSTEM "
http://dev.joomla.org/xml/1.5/component-install.dtd">
<install type="component" version="1.5.0">
<name>Nome che hai messo nel db</name>
<!-- opzionali -->
<creationDate>17-11-2010</creationDate>
<author>Spazioalchimia</author>
<authorEmail>rebelot@spazioalchimia.it</authorEmail>
<authorUrl>
http://www.spazioalchimia.it</authorUrl>
<copyright>Fanne ciò che vuoi</copyright>
<license>Licenza</license>
<version>Vers 0.0</version>
<description>Le mie mappe</description>
</install>
- l'entry maps.php -------------------------------
<?php
defined('_JEXEC') or die('Restricted access');
require_once (JPATH_COMPONENT.DS.'controller.php');
// se avete un css decommentate sotto (di default si chiama... default)
#JHTML::_('stylesheet', 'default.css', 'components/com_maps/');
$controller = new MapsController();
$controller->execute( JRequest::getWord( 'task') );
$controller->redirect();
?>
- il controller controller.php -------------------------------
<?php
jimport('joomla.application.component.controller');
class MapsController extends JController{
function display(){
parent::display();
}
}
?>
- la cartella views contenente una cartella che chiamerete maps contenete a sua volta:
il file view.html.php -------------------------------
<?php
jimport( 'joomla.application.component.view');
class MapsViewMaps extends JView{
function display($tpl = null) {
$apikey="INSERITE LA VOSTRA APIKEY, necessaria registrazione google";
$document =& JFactory::getDocument();
$document->addScript('
http://maps.google.com/maps?file=api&v=2&key='.$apikey);
$document->addScript(JURI::root(true).'/components/com_maps/assets/js/jquery-1.4.4.min.js');
$document->addScript(JURI::root(true).'/components/com_maps/assets/js/jquery.gmap-1.1.0-min.js');
parent::display($tpl);
}
}
?>
la cartella del template che chiamerete come da standard tmpl, contenente:
un file default.php ------------------
<?php
defined('_JEXEC') or die('Restricted access');
?>
<script type="text/javascript">
$(function() {
$("#map").gMap();
});
</script>
<div id="map"></div>
Io ho l'abitudine di fare una cartella che chiamo assets che contiene css e script in ulteriori cartelle css e js. Gli script sopra sono impostati in qs modo, quindi se seguite il mio modo bene, altrimenti occhio alle path!
Nella cartella js metto i due script jquery e gmap che trovate rispettivamente:
http://jquery.com/http://gmap.nurtext.de/examples.html* installiamo da db il componente inserendo in jos_components una riga con valorizzati qs parametri:
nome -> Quello che volete, link -> option=com_maps (il nome della cartella componente), option -> com_maps
- creiamo la cartella in cui sviluppare com_maps
Ecco fatto! Basta creare un menu e linkarlo alla view e avete la vostra mappa google.
Non vi basta? volete di più? ... io vi ho risolto il problema "Joomla" voi ora andate quì
http://gmap.nurtext.de/examples.html leggetevi un po di documentazione e implementate ciò che volete.
Volete dinamicizzare i dati? come farli arrivare con l'mvc fino alla view per valorizzare lo script?
beh... manca un model,... mancano le chiamate a model e view nel controller... ci vuole poco, oppure se è un banale query potete farla anche nella view, creando un oggetto visibile poi nel template...
Per gli sfaticati in allegato ci sono i files ... ma io coglierei l'occasione per imparare un po' a pasticciare con joomla.
IL PACCHETTO NON E' INSTALLABILE AUTOMATICAMENTE
M.
EDIT[1]: la pagina di documentazione del plugin gmap è giusto per capire la base, la vostra visualizzazione è implementabile anche con tutti qs parametri:
http://code.google.com/intl/en-US/apis/maps/documentation/javascript/v2/reference.htmlEDIT[2]: ...io ho fatto un componente perchè ho poi altre mire... ma nulla vieta di farci un modulo, praticamente è quasi la stessa cosa visto che tutto viene fatto nella view. Basta prendere un tutorial sui moduli e copiare il cod.
EDIT[3]: I più attenti si saranno accorti che qs link:
$document->addScript('
http://maps.google.com/maps?file=api&v=2&key='.$apikey);
porta ad una v2 dichiarata obsoleta ....
EDIT[4] La versione 3 delle api NON richiede key e ha molte features in più nonchè il suporto per Iphone.
Basta che sostituiate il plugin (non jquery) con questo:
http://googlemaps.mayzes.org/EDIT[5]: ... si ma che palle ste mappe son tutte uguali.....

n'è vero! guarda quì che belle!
http://www.41latitude.com/post/1268734799/google-styled-mapsEDIT[6] Ettipareva non ci fosse il tool
http://gmaps-samples-v3.googlecode.com/svn/trunk/styledmaps/wizard/index.html[allegato eliminato da un amministratore]