Back to top

Autore Topic: [RISOLTO] Aiuto sviluppo nuovo componente che utilizza google maps  (Letto 2343 volte)

Offline zeus

  • Esploratore
  • **
  • Post: 71
  • Sesso: Maschio
  • Silly rabbit, trix are not for kids
    • Mostra profilo
Ciao a tutti,
questo è il mio primo post qui.
Sto provando a sviluppare il mio primo componente e tutto sommato funziona.
Ho solo un problema nell'integrare google maps all'interno del codice.
Il problema è attivare la funzione load per il caricamento del codice google.
Negli esempi G si fa la chiamata nel <body onload="load()" onunload="GUnload()">....
ora come faccio in joomla a chiamarla?

ho provato una serie di metodi, ma nessuno funziona
 tra cui il seguente codice
Codice: [Seleziona]
<script type='text/javascript'>
// Cross-browser implementation of element.addEventListener()
function listen(evnt, elem, func) {
    if (elem.addEventListener)  // W3C DOM
        elem.addEventListener(evnt,func,false);
    else if (elem.attachEvent) { // IE DOM
         var r = elem.attachEvent("on"+evnt, func);
    return r;
    }
    else window.alert('I\'m sorry Dave, I\'m afraid I can\'t do that.');
}
// Use: listen("event name", elem, func);
listen("load", window, function() {load });
</script>

questo codice l'ho messo nella pagina miocomponente.html.php....

Avete suggerimenti?
Riporto il codice delle pagine:

- miocomponente.php
Codice: [Seleziona]
<?php
//no direct access
defined('_JEXEC') or die('Restricted access');
$javascript "
</script>
<script src=\"http://maps.google.com/maps?file=api&amp;v=2&amp;key=miachiave\" type=\"text/javascript\"></script>
    <script type='text/javascript'>
    function load() {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById(\"map\"));
        map.addControl(new GMapTypeControl());
        map.addMapType(G_PHYSICAL_MAP);
        map.addMapType(G_SATELLITE_3D_MAP);
        map.addControl(new GSmallMapControl());
        map.addControl(new GScaleControl());
        map.addControl(new GOverviewMapControl());
        map.enableScrollWheelZoom();
map.setMapType(G_PHYSICAL_MAP);
                map.setCenter(new GLatLng(37.4419, -122.1419), 13);
         map.setUIToDefault();
}
}
"
;
$documento->addScriptDeclaration($javascript);

echo 
'<div class="componentheading">Allarma</div>';

jimport('joomla.application.helper');
require_once(
JApplicationHelper::getPath('html'));
JTable::addIncludePath(JPATH_ADMINISTRATOR.DS.'components'.DS.$option.DS.'tables');

switch(
$task) {
  default:
  
showAllarmi($option);
break;
}

function 
showAllarmi($option) {
HTML_allarmi::showAllarmi(''$option);
}
?>

- miocomponente.html.php
Codice: [Seleziona]
<?php
//no direct access
defined('_JEXEC') or die('Restricted access');

class 
HTML_allarmi {
function showAllarmi($rows$option) {
?>

<script type='text/javascript'>
// Cross-browser implementation of element.addEventListener()
function listen(evnt, elem, func) {
    if (elem.addEventListener)  // W3C DOM
        elem.addEventListener(evnt,func,false);
    else if (elem.attachEvent) { // IE DOM
         var r = elem.attachEvent("on"+evnt, func);
    return r;
    }
    else window.alert('I\'m sorry Dave, I\'m afraid I can\'t do that.');
}
// Use: listen("event name", elem, func);
listen("load", window, function() {load });
</script>
       <div id="map" style="width: 500px; height: 500px; position: relative;"></div>
<?php
}
}
?>


Ciao e grazie a tutti
Beppe
« Ultima modifica: 04 Mar 2011, 16:31:16 da zeus »

mau_develop

  • Visitatore
Re:Aiuto sviluppo nuovo componente che utilizza google maps
« Risposta #1 il: 28 Feb 2011, 15:05:47 »
se cerchi in qs sezione c'è un mio tutorial proprio su google maps.

M.

edit:
http://forum.joomla.it/index.php/topic,118693.msg526716.html#msg526716
« Ultima modifica: 28 Feb 2011, 15:07:37 da mau_develop »

Offline zeus

  • Esploratore
  • **
  • Post: 71
  • Sesso: Maschio
  • Silly rabbit, trix are not for kids
    • Mostra profilo
Re:Aiuto sviluppo nuovo componente che utilizza google maps
« Risposta #2 il: 28 Feb 2011, 17:06:48 »
Grazie mille...
ora gli do un'occhiata...

Avevo cercato nel forum, ma probabilmente mi ha tratto in inganno il nome del tread...

ancora grazie
B.

mau_develop

  • Visitatore
Re:Aiuto sviluppo nuovo componente che utilizza google maps
« Risposta #3 il: 28 Feb 2011, 18:05:40 »
perchè in realtà era un tutorial su come pasticciare con jquery derivato da un componente che ho dovuto sviluppare per googlemaps, ma in realtà può essere usato anche per altri plugin di jquery.

mmmhh....nello specifico non ricordo ma fai attenzione perchè quando faccio gli snippet di codice difficilmente sto attento a fare un corretto casting e filtro di ciò che passa, magari dagli un'occhiata..

M.

Offline zeus

  • Esploratore
  • **
  • Post: 71
  • Sesso: Maschio
  • Silly rabbit, trix are not for kids
    • Mostra profilo
Re:Aiuto sviluppo nuovo componente che utilizza google maps
« Risposta #4 il: 01 Mar 2011, 12:46:48 »
non dovendo usare jquery, e non riuscendo a capirci molto dal tuo codice  :D, ho trovato questa soluzione:
nel file miocomponente.html.php scrivo subito questo codice
Codice: [Seleziona]
<?php
//no direct access
defined('_JEXEC') or die('Restricted access');

class 
HTML_miocomponente {
function showScheda($rows$option) {
?>

<script type='text/javascript'>
function addLoadEvent(func){
  var oldonload = window.onload;
  if (typeof window.onload != 'function'){
      window.onload = func;
  } else {
    window.onload = function(){
    oldonload();
    func();
}}}addLoadEvent(load);
</script>

ora, se creo un componente "vuoto", vedo finalmente la mappa, ma se integro il mio codice (funzionante già sul sito http://www.campiscout.com) la mappa non si vede più...
è da impazzire..

il problema è che sebbene il mio sito è già in joomla, in realtà uso i wrapper per caricare il vecchio codice php già sviluppato in precedenza.... ma adesso voglio sviluppare questo componente per avere tutto in joomla e non avere più problemi SEO... infatti sono costretto a tenere disabilitato il friendlyurl, in quanto altrimenti non saprei come caricare direttamente le singole schede (che sono caricate dal wrapper) all'interno del framework joomla....

Ovviamente accetto anche altre proposte e soluzioni..
Ciao

 



Web Design Bolzano Kreatif