Back to top

Autore Topic: Inserimento google maps in componente  (Letto 4018 volte)

Offline james81

  • Appassionato
  • ***
  • Post: 475
  • Sesso: Maschio
    • Mostra profilo
Inserimento google maps in componente
« il: 17 Feb 2014, 17:40:15 »
Salve a tutti!
ho un problema dal quale non riesco a venirne a capo.
Ho un comopnente personalizzato nel quale all'iterno della viwv ho integrato una mappa di goole e fino a qui funziona tutto perfettamente.

Però il pannellino di controllo posto a sinistra, quello dello zoom per intenderci mi viene tutto sformato, stretto e basso, quasi invisibile. Non capisco come mai....qualche idea ? Grazie

Offline simone83

  • Appassionato
  • ***
  • Post: 362
  • Sesso: Maschio
    • Mostra profilo
Re:Inserimento google maps in componente
« Risposta #1 il: 17 Feb 2014, 19:10:40 »
dipende dai css del template che alterano le dimensioni delle immagini
BRAINCODE
Da Psd a Joomla - Sviluppo componenti joomla - SEO con Joomla
x-brain

Offline james81

  • Appassionato
  • ***
  • Post: 475
  • Sesso: Maschio
    • Mostra profilo
Re:Inserimento google maps in componente
« Risposta #2 il: 18 Feb 2014, 15:08:03 »
alla fine ho risolto il problema che hoi riscontrato era abbastanza comune e legato alle proprietà cdd del div img maps, ho assegnato una css a a quel tag e ho risolto!

Ora mi trovo un'altro problema:

le coordinate per centrare la mappa le recupero da un form precedentemente compilato.
Il codice java utilizzato  per configurare la mappa l'ho inserito all'intetrno del file view.html.php della mia view.

il problema è che non riesco a recuperare le coordinate direttamente dal file view.html.php e quindi mi restituisce "variabili non definita"

qualche idea ?

Offline simone83

  • Appassionato
  • ***
  • Post: 362
  • Sesso: Maschio
    • Mostra profilo
Re:Inserimento google maps in componente
« Risposta #3 il: 18 Feb 2014, 15:14:16 »
lasciamo il java da un'altra parte... semmai javascript che è tutta altra cosa...

comuqnue dipende come lo assegni alla view.html se metti una variabile dentro la classe, il file default.php te la vede senno no...

quindi per accedere dal template della view devi dichiarare nella classe una variabile

protected $coordinate;

e valorizzarla nella funzione display
BRAINCODE
Da Psd a Joomla - Sviluppo componenti joomla - SEO con Joomla
x-brain

Offline james81

  • Appassionato
  • ***
  • Post: 475
  • Sesso: Maschio
    • Mostra profilo
Re:Inserimento google maps in componente
« Risposta #4 il: 18 Feb 2014, 15:59:01 »
si scusa intendevo dire javascript non java ! :P
avevo già provato così all'interno de view.html.php della view ma mi restituiva sempre l'errore

Codice: [Seleziona]
class ComponenteViewResult extends JView
{
    protected $pass = null;
   
    function display($tpl = null)
    {
        $pass = "valore";
        parent::display($tpl);

    }
 
}

Offline simone83

  • Appassionato
  • ***
  • Post: 362
  • Sesso: Maschio
    • Mostra profilo
Re:Inserimento google maps in componente
« Risposta #5 il: 18 Feb 2014, 16:00:16 »
perche è $this->pass
BRAINCODE
Da Psd a Joomla - Sviluppo componenti joomla - SEO con Joomla
x-brain

Offline james81

  • Appassionato
  • ***
  • Post: 475
  • Sesso: Maschio
    • Mostra profilo
Re:Inserimento google maps in componente
« Risposta #6 il: 18 Feb 2014, 16:54:37 »
perfetto!...sono riuscito a recuperare le variabili, solo che se inserisco la mia variaible $this->pass  all'interno del codice javascript dichiarato in $document->addScriptDeclaration , non me stampa

Offline simone83

  • Appassionato
  • ***
  • Post: 362
  • Sesso: Maschio
    • Mostra profilo
Re:Inserimento google maps in componente
« Risposta #7 il: 18 Feb 2014, 23:02:16 »
di sicuro non dipende da quella variabile, ma da come l'hai usata e da come hai dichiarato il codice di addscriptdeclaration
BRAINCODE
Da Psd a Joomla - Sviluppo componenti joomla - SEO con Joomla
x-brain

Offline james81

  • Appassionato
  • ***
  • Post: 475
  • Sesso: Maschio
    • Mostra profilo
Re:Inserimento google maps in componente
« Risposta #8 il: 19 Feb 2014, 09:57:38 »
questo è parte del codice , quello che mi intaressa

Codice: [Seleziona]
class ComponenteViewResult extends JView
{
    protected $lat = null;
    protected $lng = null;
   
    function display($tpl = null)
    {
       $this->lat = "00.000000";
       $this->lng = "00.000000";
        parent::display($tpl);

    }

}


$document->addScriptDeclaration("

 function load() {

      var map = new google.maps.Map(document.getElementById(\"map\"), {
      center: new google.maps.LatLng(   $this->lat ,   $this->lng ),   <<<<<<<< qui inserisco le mie due variabili  <<<<<<<<<
      zoom: 7,
       mapTypeId: 'roadmap'
      });

      var infoWindow = new google.maps.InfoWindow;

      // Change this depending on the name of your PHP file
      downloadUrl(\"http://www.sito.it/cartella/maps.php\", function(data) {
        var xml = data.responseXML;
        var markers = xml.documentElement.getElementsByTagNam e(\"marker\");
        for (var i = 0; i < markers.length; i++) {
          var name = markers[i].getAttribute(\"name\");
          var address = markers[i].getAttribute(\"address\");
          var type = markers[i].getAttribute(\"type\");
          var point = new google.maps.LatLng(
              parseFloat(markers[i].getAttribute(\"lat\")),
              parseFloat(markers[i].getAttribute(\"lng\")));
          var html = \"\" + name + \" [br /]\" + address;
          var icon = customIcons[type] || {};
          var marker = new google.maps.Marker({
            map: map,
            position: point,
            icon: icon.icon
          });
          bindInfoWindow(marker, map, infoWindow, html);
        }
      });
    }

    function bindInfoWindow(marker, map, infoWindow, html) {
      google.maps.event.addListener(marker, 'click', function() {
        infoWindow.setContent(html);
        infoWindow.open(map, marker);
      });
    }

    function downloadUrl(url, callback) {
      var request = window.ActiveXObject ?
          new ActiveXObject('Microsoft.XMLHTTP') :
          new XMLHttpRequest;

      request.onreadystatechange = function() {
        if (request.readyState == 4) {
          request.onreadystatechange = doNothing;
          callback(request, request.status);
        }
      };

      request.open('GET', url, true);
      request.send(null);
    }

    function doNothing() {}

");   
« Ultima modifica: 19 Feb 2014, 10:31:07 da james81 »

Offline simone83

  • Appassionato
  • ***
  • Post: 362
  • Sesso: Maschio
    • Mostra profilo
Re:Inserimento google maps in componente
« Risposta #9 il: 19 Feb 2014, 11:33:25 »
Il problema fondamentale qua non è joomla che non funziona ma forse hai bisogno di studiare un minimo la programmazione ad oggetti.

Questo codice non ti funzionera mai, e strano che non ti vengano messaggi di errore.

Errore 1

Codice: [Seleziona]
$document->addScriptDeclaration(
$document cos'e? non è nulla semmai avresti dovuto fare prima $document = JFactory::getDocument();

Errore 2

Stai scrivendo codice al di fuori della classe quindi $this non è un operatore valido

LE possibili soluzioni sono,

1 metti tutto quel codice al di fuori della classe dentro alla funzione display prima di parent::display

2) soluzione che ti consiglio, metti quel codice dentro al file default.php che ai nella tua cartella tmpl
BRAINCODE
Da Psd a Joomla - Sviluppo componenti joomla - SEO con Joomla
x-brain

Offline james81

  • Appassionato
  • ***
  • Post: 475
  • Sesso: Maschio
    • Mostra profilo
Re:Inserimento google maps in componente
« Risposta #10 il: 19 Feb 2014, 12:14:51 »
per quanto riguardava il $document = JFactory::getDocument();
l'ho inserito è che ho postato solo la parte del codice relativo allo script.
Comunque poi ho risolto (al momento) seguendo il tuo consiglio e mettndo tutto in defalut.php, che a dire il vero era la soluzione più immediata......comunque voglio (tempo permettendo) capire come gestire la cosa da view.html.php

Offline simone83

  • Appassionato
  • ***
  • Post: 362
  • Sesso: Maschio
    • Mostra profilo
Re:Inserimento google maps in componente
« Risposta #11 il: 19 Feb 2014, 12:31:58 »
metti il codice dentro display e festa finita.

ma comunque la soluzione migliore è del default perche tramite un rewrite nel template potresti togliere questa funzionalita senza modificare il codice del componente
BRAINCODE
Da Psd a Joomla - Sviluppo componenti joomla - SEO con Joomla
x-brain

mau_develop

  • Visitatore
Re:Inserimento google maps in componente
« Risposta #12 il: 19 Feb 2014, 19:15:46 »
..avrai semplicemente sbagliato la sintassi nell'addscript facile che se usi un tool di debug tene accorgi.

 



Web Design Bolzano Kreatif