Contao-Camp 2024
Ergebnis 1 bis 7 von 7

Thema: ['select'] Ausgabe via template

  1. #1
    Contao-Nutzer
    Registriert seit
    28.01.2011.
    Ort
    Winterthur, Schweiz
    Beiträge
    169

    Standard ['select'] Ausgabe via template

    Hallo zusammen

    Ich habe bereits ein angepasstes, eingebundenes und funktionierendes Template in einem Metamodel.
    Nun habe ich über ein zweites Metamodel (darin befindet sich ein einziges Text-Attribut) ein Select-Attribut im ersten Metamodel erstellt, durch das man via Radiobuttons die Werte wählen kann.

    Das Neue Select-Attribut wird problemlos über Backend-Listen oder Frontend-Listen ausgegeben, und heisst:
    service_format [select]

    Im Template will ich diesen Wert auch als Klasse ausgeben, wie ich es schon bei ['text']-Attributen gemacht habe. Aber irgendwie steuere ich das Feld in PHP falsch an:
    PHP-Code:
    <div class="<?php echo $arrItem['select']['service_format']; ?>"></div>
    Was mache ich falsch?

    Danke für eure Hilfe.
    Lg Nick

  2. #2
    Contao-Yoda Avatar von MacKP
    Registriert seit
    15.06.2009.
    Ort
    Duisburg
    Beiträge
    13.292
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo 4lmnts,
    ich glaub da passt deine Abfrage einfach nicht...
    Versuchs mal so:
    Code:
    $arrItem['html5']['service_format'];
    Oder lass dir einfach mal das Array ausgeben (kannst hier auch posten... dann kann man besser helfen an so einer Stelle).

    Viele Grüße
    Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
    [Arbeitet bei -> Paus Design & Medien]
    "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

  3. #3
    Contao-Nutzer
    Registriert seit
    28.01.2011.
    Ort
    Winterthur, Schweiz
    Beiträge
    169

    Standard

    Zitat Zitat von MacKP Beitrag anzeigen
    Oder lass dir einfach mal das Array ausgeben.
    Hallo MacKP

    Das war ein super Hinweis mit der Array-Ausgabe! Das werde ich in Zukunft regelmässig nutzen.

    Lösung meines Problems:
    Die Array Ausgabe habe ich mit diesen Codezeilen gemacht, die ich in das Template "metamodel_prerendered" (temporär) direkt nach
    PHP-Code:
    <div class="layout_full"
    eingefügt habe:
    PHP-Code:
    <?php 
    echo "<!-- \n";
    print_r($this->items->parseAll($this->getFormat(), $this->view)); 
    echo 
    "\n -->";
    ?>
    Das Template speichern und im Frontend die Seite neu laden (da sollte sich auf den ersten Blick nichts ändern!) und dann im Quelltext nachgeschaut. Dort werden gleich nach dem div von oben die Arrays ausgegeben und somit konnte ich sehen, dass die Werte aus dem select-Attribut, das auf das Text-Attribut des zweiten Metamodels zugreift, folgendermassen verschachtelt sind:

    PHP-Code:
    <?php echo $arrItem['raw']['service_format']['kachel_format']; ?>
    Also nicht in einem ['select'], ['text'] oder ['html5'].
    Sondern über das ['raw'] und dann den Feld-Namen des select-Attributs aus dem ersten Metamodel und dann den Feld-Namen des text-Attributs des zweiten Metamodels.

    Wichtig zu wissen:
    Den Wert des Attributs brauche ich nicht als Ausgabe im Frontend, sondern nur als Klasse für das item, um CSS anzuwenden.
    In der Rendereinstellungen für die Frontendliste muss das Attribut aktiviert sein, damit es a) in der Klasse des Items ausgegeben wird und b) auch in der Array-Ausgabe mit obigen Codezeilen ausgegeben wird. Sonst ist da nüschts!
    Ich blendete dann also den div "field" dann einfach über CSS aus (display:none), damit ich davon nichts im Frontend sehe.

  4. #4
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.682
    User beschenken
    Wunschliste

    Standard

    mit welcher MM-Version arbeitest Du? bisher war es bei mir so, dass auch nicht aktivierte Elemente in raw vorhanden waren nur nicht in text und html5...

  5. #5
    Contao-Nutzer
    Registriert seit
    28.01.2011.
    Ort
    Winterthur, Schweiz
    Beiträge
    169

    Standard

    Hallo Zonky

    Das ist metamodels2-nightly-tng.
    Ich habe es gerade nochmals geprüft: Das Attribut muss in der Frontendrenderliste aktiviert sein.

  6. #6
    Contao-Yoda Avatar von MacKP
    Registriert seit
    15.06.2009.
    Ort
    Duisburg
    Beiträge
    13.292
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von 4lmnts Beitrag anzeigen
    Ich blendete dann also den div "field" dann einfach über CSS aus (display:none), damit ich davon nichts im Frontend sehe.
    Hallo 4lmnts,
    du kannst dem Attribut auch ein Template geben mit keinem Inhalt. Dann wird auch nix ausgegeben ;-)

    Viele Grüße
    Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
    [Arbeitet bei -> Paus Design & Medien]
    "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

  7. #7

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
  •