Ergebnis 1 bis 7 von 7

Thema: Detaillink Metamodels in Infobox ausgeben

  1. #1
    Contao-Fan
    Registriert seit
    20.10.2014.
    Beiträge
    484

    Standard Detaillink Metamodels in Infobox ausgeben

    Hallo zusammen,

    würde gerne in der Infobox einen Detaillink zu einem Metamodels Eintrag anzeigen.

    Das Linkkonstrukt aus dem Metamodels Listentemplate sieht folgendermaßen aus

    PHP-Code:
    <?php if ($arrItem['jumpTo']['deep']): ?>
    <a href="<?= $arrItem['jumpTo']['url'?>"><?= $this->details ?></a>
    <?php endif; ?>
    Wenn ich das allerdings in den content Bereich der Infobox packe passiert nichts und weiter reichen meine php Kenntnisse leider nicht.
    Vllt hat das ja schon jemand gemacht und kann mir weiterhelfen

    PHP-Code:
    var gmap1_<?php echo $id?>_infobox1 = new google.maps.InfoWindow({
                  content: '<?php echo $info?>',
                  disableAutoPan: false,
                  maxWidth: 150,
                  boxClass: 'gmap-infobox',
                  pixelOffset: new google.maps.Size(0, -5),
                  zIndex: null,
                  closeBoxMargin: '18px 8px 2px 2px',
                  closeBoxURL: 'http://www.google.com/intl/en_us/mapfiles/close.gif'
                });

  2. #2
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Was steht denn in der Variablen $info?

    Hiermit kannst du das anzeigen.
    PHP-Code:
    <?php
    dump
    ($info);
    ?>
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  3. #3
    Contao-Fan
    Registriert seit
    20.10.2014.
    Beiträge
    484

    Standard

    $info setzt sich bisher wie folgt zusammen.

    PHP-Code:
    <?php
            
    foreach($this->items->parseAll($this->getFormat(), $this->view) as $arrItem):
                
    $name        htmlspecialchars($arrItem['text']['name'], ENT_QUOTES);
                
    $url         $arrItem['text']['url'];
                
    $geolocation $arrItem['text']['geolocation'];
                
    $address     preg_replace"/\r|\n/""<br>"$arrItem['text']['adresse']);
                
    $id          $arrItem['raw']['id'];
     
                
    $info  '<div class="gmap-infobox-tip"></div>';
                
    $info .= '<div class="gmap-infobox-content">';
                
    $info .= '<p class="name">' .$name .'</p>';
                
    $info .= '<p><a target="_blank" href="' .$url .'">' .$url .'</a></p>';
                
    $info .= '<p>' .$address .'</p>';
                
    $info .= '</div>';
            
    ?>
    PHP-Code:
    <?php 
    dump
    ($info); 
    ?>
    gibt NULL zurück

  4. #4
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Dann bist du da wahrscheinlich in zwei unterschiedlichen Templates. Das eine weiß nichts von einer Variablen $info.

    ps In $info würde also immer nur der Inhalt des letzten $arrItem aus der foreach-Schleife stehen?
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  5. #5
    Contao-Fan
    Registriert seit
    20.10.2014.
    Beiträge
    484

    Standard

    Zitat Zitat von Andreas Beitrag anzeigen
    Dann bist du da wahrscheinlich in zwei unterschiedlichen Templates. Das eine weiß nichts von einer Variablen $info.

    ps In $info würde also immer nur der Inhalt des letzten $arrItem aus der foreach-Schleife stehen?
    Ist alles in einem Template zwar etwas lang aber ich poste es trotzdem mal, vllt können es ja noch andere gebrauchen.

    Da geht es eben darum den MM Detail Link in die Infobox zu packen, was mir bisher nicht gelungen ist.

    Das Beispiel ist auf meiner Demoseite http://ecoblack.de/locations.html online.


    PHP-Code:
    <?php if ($this->items->getCount()): ?>
       
       <script>
       var arrInfoBoxes = new Array();
         
        function gmap1_dynmap(gmap1) {
       
            <?php
            
    foreach($this->items->parseAll($this->getFormat(), $this->view) as $arrItem):
                
    $name        htmlspecialchars($arrItem['text']['name'], ENT_QUOTES); 
                
    $url         $arrItem['text']['url'];
                
    // check if url begins with http://
                
    $parsedURL   parse_url($url);
                if (empty(
    $parsedURL['scheme'])) { $url 'http://' ltrim($url'/'); }
                  
                
    $geolocation $arrItem['text']['geolocation'];
                
    $address     preg_replace"/\r|\n/""<br>"$arrItem['text']['adresse']);
                
    $id          $arrItem['raw']['id'];
       
                
    $info  '<div class="gmap-infobox-tip"></div>';
                
    $info .= '<div class="gmap-infobox-content">';
                
    $info .= '<p class="name">' .$name .'</p>';
                
    $info .= '<p><a target="_blank" href="' .$url .'">' .$url .'</a></p>';
                
    $info .= '<p>' .$address .'</p>';
                
    $info .= '</div>';
            
    ?>
     //<?php if ($arrItem['jumpTo']['deep']): ?>
    //<a href="<?= $arrItem['jumpTo']['url'?>"><?= $this->details ?></a>
    //<?php endif; ?>
     
                // Create Marker
                var gmap1_<?php echo $id?>_marker = new google.maps.Marker({
                  position: new google.maps.LatLng(<?php echo $geolocation?>),
                  map: gmap1,
                  title:"<?php echo $name?>",
                  icon: new google.maps.MarkerImage(
                    'files/theme/metamodels/nail.png',
                    new google.maps.Size(11, 21),
                    new google.maps.Point(0,0),
                    new google.maps.Point(5,21)
                    )
                });
                
                // zoom & center
                    gmap1.center = new google.maps.LatLng(<?php echo $geolocation?>);
                    gmap1.zoom = 12;
       
                // create Infobox
                var gmap1_<?php echo $id?>_infobox1 = new google.maps.InfoWindow({
                  content: '<?php echo $info?>',
                  disableAutoPan: false,
                  maxWidth: 150,
                  boxClass: 'gmap-infobox',
                  pixelOffset: new google.maps.Size(0, -5),
                  zIndex: null,
                  closeBoxMargin: '18px 8px 2px 2px',
                  closeBoxURL: 'http://www.google.com/intl/en_us/mapfiles/close.gif'
                });
                arrInfoBoxes[arrInfoBoxes.length] = gmap1_<?php echo $id?>_infobox1;
              
                // Create Event Listener
                google.maps.event.addListener(gmap1_<?php echo $id?>_marker, 'click', function() {
                    // close all info boxes
                    var i;
                    for (i = 0; i < arrInfoBoxes.length; i++) {
                        arrInfoBoxes[i].close();
                    }
                      
                    gmap1_<?php echo $id?>_infobox1.open(gmap1, this);
                    
                })

                
             <?php endforeach; ?>
            
          }
       </script>
       
    <?php endif; ?>

  6. #6
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    $info kann nicht NULL sein, es wird doch bei content: ausgegeben.

    Ich kann auf der Seite das hier nicht finden
    Code:
       var arrInfoBoxes = new Array();
    Das Aukommentieren der 3 Zeilen 27-29 macht keinen Sinn, weil du da nicht in PHP bist. Eigentlich müssten die "//" im FE ausgegeben werden. Ich kann sie aber auch nicht finden.

    Mach mal in der Schleife einen dump() auf $arrItem. Dann siehst du, was du dort zur Verfügung hast.
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  7. #7
    Contao-Fan
    Registriert seit
    20.10.2014.
    Beiträge
    484

    Standard

    Zitat Zitat von Andreas Beitrag anzeigen
    Mach mal in der Schleife einen dump() auf $arrItem. Dann siehst du, was du dort zur Verfügung hast.
    Dieser dump() hat mir auf die Sprünge geholfen. Wieder was dazu gelernt. Danke.

    Folgende Zeilen eingefügt und es funktioniert

    PHP-Code:
    $link_detail $arrItem['jumpTo']['url'];
    $info .= '<p><a href="' .$link_detail .'">Details anzeigen...</a></p>'
    Geändert von marcohe (15.06.2017 um 20:12 Uhr)

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •