Ergebnis 1 bis 12 von 12

Thema: Bilder eines anderen Metamodels über Mehrfachauswahl anzeigen

  1. #1
    Contao-Fan
    Registriert seit
    07.02.2010.
    Ort
    Kiel
    Beiträge
    263

    Standard Bilder eines anderen Metamodels über Mehrfachauswahl anzeigen

    Hallo,

    dies sind meine ersten Gehversuche mit Metamodels. Erst mal vielen Dank für die tolle und mächtige Erweiterung.

    Ich habe zwei MM’s
    1. Musiker
    2. Becken (die Schlagzeugbecken, die der Musiker spielt)

    Im MM „Becken“ gibt es zwei Attribute „Name“ und „Bild“ (das ist das Bild des Beckens)

    Im MM „Musiker“ habe ich eine Mehrfachauswahl zu den Becken angelegt. D.h. der Redakteur kann jetzt im Backend für den Musiker die Becken per Checkbox anwählen, die von dem Musiker gespielt werden. Die Musiker sollen mit ihren Becken als Liste im Frontend angezeigt werden. So weit, so gut. Klappt auch alles soweit.

    Nur möchte ich jetzt, dass das Bild des Beckens und nicht der Name im Frontend angezeigt wird.
    (Im MM „Becken“ habe ich bereits „Als Bildfeld mit Vorschaubild benutzen“ ausgewählt. Dies klappt ja aber nur, wen ich das MM „Becken“ im Frotend direkt ausgebe. In meinem Fall benutze ich ja aber das MM „Musiker“ für die Frontendausgabe.)

    Wie funktioniert das?

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

    Standard

    gib dir mal das ganze Array aus - siehe http://metamodels.readthedocs.io/de/...templates.html

    im Knoten "raw" solltest Du Zugriff auf das Bild des referenzierten MM haben...

  3. #3
    Contao-Fan
    Registriert seit
    07.02.2010.
    Ort
    Kiel
    Beiträge
    263

    Standard

    o.k., danke für den Tipp. So langsam versteh ich das Prinzip...

    Ist denn meine Vorgehensweise so eigentlich sinnvoll? Was ich ja erreichen möchte, ist eine Liste (Becken) in einer Liste (Musiker). Im Prinzip soll bei Klick auf das Becken sich die Detailansicht für das jeweilige Becken öffnen. Nur dass eben jeder Musiker unterschiedliche Becken spielt, die der Redakteur im BE auswählen soll. Kann ich das denn so überhaupt erreichen?

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

    Standard

    für die m:n-Relation zwischen Becken und Musiker ist das m.E. die "richtige" Vorgehensweise...

    Die Links zu den Detailseiten des Beckens musst du selbst ins Template zaubern, da Deine "Haupt-Ausgabe" über die Musiker läuft.

  5. #5
    Contao-Fan
    Registriert seit
    07.02.2010.
    Ort
    Kiel
    Beiträge
    263

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    gib dir mal das ganze Array aus - siehe http://metamodels.readthedocs.io/de/...templates.html

    im Knoten "raw" solltest Du Zugriff auf das Bild des referenzierten MM haben...
    habe ich gemacht und bekomme auch die URL geliefert.


    Jetzt könnte ich die URL aus dem Array ja zur Anzeige benutzen, ich denke so, richtig?:
    Code:
    <?php echo $this->generateImage($this->getImage(<url>), $strAlt); ?>
    Nur so, dass ich halt die URL aus dem Array dynamisch auslese
    Geändert von karo68 (22.06.2016 um 15:05 Uhr)

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

    Standard

    prüfe bitte nochmal die Implementierung der Debugausgabe - wenn die Knoten raw, attribute, text und html5 (für jedes Item) nicht zu sehen sind, haut irgendwas nicht hin

  7. #7
    Contao-Fan
    Registriert seit
    07.02.2010.
    Ort
    Kiel
    Beiträge
    263

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    prüfe bitte nochmal die Implementierung der Debugausgabe - wenn die Knoten raw, attribute, text und html5 (für jedes Item) nicht zu sehen sind, haut irgendwas nicht hin
    da warst du leider schneller als ich :-) Hatte meinen Beitrag noch mal geändert. Ich bekomme das Array jetzt angezeigt. Man muss die HTML-Kommentare aus dem Code http://metamodels.readthedocs.io/de/...templates.html entfernen!

  8. #8
    Contao-Fan
    Registriert seit
    07.02.2010.
    Ort
    Kiel
    Beiträge
    263

    Standard

    kannst du mir noch einen Tipp geben, wie das Array "raw" ausgelesen werden muss, um die URL (path) des Arrays "cymbals" zu erhalten?

    Code:
    Array
    (
        [0] => Array
            (
                [raw] => Array
                    (
                        [id] => 1
                        [pid] => 0
                        [sorting] => 0
                        [tstamp] => 1466371610
                        [name] => Name
                        [country] => USA
                        [picture] => Array
                            (
                                [bin] => Array
                                    (
                                        [0] => 'Dq4w�[$!_ �
                                    )
    
                                [value] => Array
                                    (
                                        [0] => 01274471-3477-11e6-b85b-0024215f20f3
                                    )
    
                                [path] => Array
                                    (
                                        [0] => files/images/artists/bild.jpg
                                    )
    
                            )
    
                        [cymbals] => Array
                            (
                                [2] => Array
                                    (
                                        [__TAGS_RAW__] => Array
                                            (
                                                [id] => 2
                                                [pid] => 0
                                                [sorting] => 0
                                                [tstamp] => 1466167026
                                                [name] => dark
                                                [picture] => Array
                                                    (
                                                        [bin] => Array
                                                            (
                                                                [0] => ��*"4z�[$!_ �
                                                            )
    
                                                        [value] => Array
                                                            (
                                                                [0] => 92a22a22-347a-11e6-b85b-0024215f20f3
                                                            )
    
                                                        [path] => Array
                                                            (
                                                                [0] => files/images/cymbal icons/table-dark.png
                                                            )
    
                                                    )
    
                                            )
    
                                        [tag_value_sorting] => 0
                                        [name] => dark
                                        [picture] => files/images/cymbal icons/table-dark.png
                                    )

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

    Standard

    Zitat Zitat von karo68 Beitrag anzeigen
    Man muss die HTML-Kommentare aus dem Code http://metamodels.readthedocs.io/de/...templates.html entfernen!
    andere Variante: Handbuch lesen ;-)

    Wird die entsprechende Webseite mit derm Listing im Browser aufgerufen, sollte sich im Quelltext die Debugausgabe befinden.

  10. #10
    Contao-Fan
    Registriert seit
    07.02.2010.
    Ort
    Kiel
    Beiträge
    263

    Standard

    Der Vollständigkeit halber, hier noch meine Lösung, dich ich zum Auslesen des Arrays im Template implementiert habe, um die entsprechenden Bilder aus dem Array "Becken" zu generieren:
    PHP-Code:
            <?php foreach ($arrItem['raw']['cymbals'] as $k => $v) :?>
                    <?php  $filePath $arrItem['raw']['cymbals'][$k]['__TAGS_RAW__']['picture']['path'][0];?>
                    <?php $strAlt =  "cymbal_".$arrItem['raw']['cymbals'][$k]['__TAGS_RAW__']['name'];?>
                    <li>
                           <?php echo $this->generateImage($this->getImage($filePath), $strAlt); ?>
                       </li>
            <?php endforeach;?>

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

    Standard

    ggf. noch eine Abfrage like if ($filePath) { ... und alles ist hübsch :-)

  12. #12
    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

    Warum so unübersichtlicher Code, nur weil zweimal "<li>" ausgegeben werden soll. Ich habs mal aufgeräumt.
    PHP-Code:
    <?php
    foreach ($arrItem['raw']['cymbals'] as $k => $v)
    {
      
    $filePath $arrItem['raw']['cymbals'][$k]['__TAGS_RAW__']['picture']['path'][0];
      
    $strAlt   'cymbal_'.$arrItem['raw']['cymbals'][$k]['__TAGS_RAW__']['name'];
      echo 
    '<li>'.$this->generateImage($this->getImage($filePath), $strAlt).'</li>';
    }
    ?>
    Müsste aber auch so gehen
    PHP-Code:
    <?php
    foreach ($arrItem['raw']['cymbals'] as $cymbal)
    {
      
    $filePath $cymbal['picture'];
      
    $strAlt   'cymbal_'.$cymbal['name'];
      echo 
    '<li>'.$this->generateImage($this->getImage($filePath), $strAlt).'</li>';
    }
    ?>
    Deinen Ordnern solltest du keine Leerzeichen geben - /cymbal icons/ => /cymbal-icons/.
    Geändert von Andreas (24.06.2016 um 14:40 Uhr)
    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

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
  •