Zum Inhalt springen

Weiterverarbeitung von DB / GP Variablen im Typoscript

Erstellt am 9. Juli 2015 · 3 Antworten · letzte Antwort am 12. Juli 2015

Tags: tt_address, TYPO3 6.x, Frage

Kahlscher ·

Nach langen suchen in verschiedensten Foren habe ich weiterhin entweder eine Verständnislücke was TS angeht, oder versuch etwas nicht mögliches.

Zum Problem:

Ich habe mir über das Setup eine Detailseite für die Ausgabe eines tt_address Datensatzes gebastelt.

Einfügug erfolgt so:

lib.platzHalter = CONTENT
lib.platzHalter.wrap =  |
lib.platzHalter {
table = tt_address
select {
andWhere.data = GP:showUid
andWhere.wrap = uid=|
pidInList = 221
}

Die Daten hole ich mir dann über ein renderObj rein.

renderObj = COA
renderObj {
 
2 = COA
2 { ...

Das einfügen als TEXT von Datenbankfeldern über field funktioniert einwandfrei.

Nun füge ich an einer Stelle die openstreetmapextension per TS ein.

40 = COA
40 {
 wrap = <tr><td> | </td></tr>


  
10 < plugin.tx_odsosm_pi1
10 {
    
    marker.tt_address = field:uid
    width = 100%
    height = 300px
    zoom = 14
    library = leaflet
    layer = 1
    mouse_navigation = 0
    show_popups = 1
    show_layerswitcher = 0
    no_marker = 1
  
}
}

Und leider funktioniert das nicht. Das einfügen der Ext geht, wenn ich ein einen Test mache mit marker.tt_address = 10 wird das auch so angezeigt. Nur leider funktioniert das mit der ausgelesenen Variable field:uid nicht.

Als Umweg dachte ich daran die GP:showUid zu nehmen, was jedoch auch nicht geht.

Nun bitte ich um eure Hilfe.

Kahlscher ·

danke für die Antwort.
Die geklammerte Variante funktioniert nicht, bei der .data bekomme ich sogar eine Exception "PHP Warning: explode() expects parameter 2 to be string, array give ..."

Hat jemand vielleicht noch andere Ideen?

Julian.​Hofmann ·

Die marker haben keine stdWrap-Eigenschaften => kann nicht hinhauen.

Die entsprechenden Zeilen, an denen die Marker-Konfiguration behandelt wird:

if(is_array($conf['marker.'])){
  foreach($conf['marker.'] as $name=>$value){
    if(!empty($value)){
      if(!is_array($this->config['marker'][$name])) $this->config['marker'][$name]=array();
      $this->config['marker'][$name]=$this->config['marker'][$name]+explode(',',$value);
    }
  }
}

Lösungenansatz habe ich leider keinen 🙁