Ergebnis 1 bis 8 von 8

Thema: Alle Einträge aus dem Attribut Tags auflisten

  1. #1
    Contao-Nutzer
    Registriert seit
    13.09.2009.
    Ort
    Münster; NRW
    Beiträge
    77

    Standard Alle Einträge aus dem Attribut Tags auflisten

    Hallo,

    Wie schaffe ich es alle Einträge aus dem Attribut [tags] ohne Komma(Text) und nicht als Liste(html5) auszugeben?

    Aktuell habe ich einfach das Template "mm_attr_tags" angepasst. Es muss doch aber auch eine saubere Möglichkeit geben im Template "metamodel_prerendered" alle Einträge hintereinander auszugeben. Die Einträge sind ja alle im Array enthalten.

    Wie ich jeden einzelnen Eintrag ausgeben kann ist mir klar. Nur wie kann ich immer alle Einträge ausgeben? Sind ja auch dynamsch.

    Code:
    <?php echo $arrItem['raw']['project_categories']['1']['category_alias']; ?>
    Hintergrund ist das ich die Ausgabe der Einträge [tags] im Template als class="[tags]" nutzen möchte.

    Danke VG Marc

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

    Standard

    die Seite http://metamodels.readthedocs.org/de...templates.html wirst Du sicher schon gefunden haben...

    Du könntest z.B.

    * eine Schleife (foreach) mit $arrItem['raw']['project_categories'] machen
    * in Ausgabe [text] die Kommata ersetzen (replace)
    * eigenes ("Sub")Template erstellen

    oder Google: https://www.google.de/search?q=php+a...61FMHTPM60mogM

  3. #3
    Contao-Nutzer
    Registriert seit
    13.09.2009.
    Ort
    Münster; NRW
    Beiträge
    77

    Standard

    Danke zonky,

    ich habe es jetzt mit der foreach-Schleife hinbekommen.

    Code:
    <?php foreach ($arrItem['raw']['project_categories'] as $test): ?>
      <?php echo $test['category_alias']; ?>
    <?php endforeach; ?>
    Ob das jetzt der beste/richtige Weg ist kann ich nicht sagen. Es erschein mir aber sinvoller zu sein als das Template zu ändern oder mit der Kirche ums Dorf zu fahren und mit replace/strtolower/etc zu arbeiten.

    Sollte es noch Verbesserungsvorschläge geben, immer her damit.

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

    Standard

    mit "implode" könnte man einen "Einzeiler" daraus machen...

  5. #5
    Maintainer Avatar von xtra
    Registriert seit
    02.07.2009.
    Ort
    Tuebingen
    Beiträge
    2.007
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von makrele Beitrag anzeigen
    Ob das jetzt der beste/richtige Weg ist kann ich nicht sagen.
    Nein ist es nicht.
    Zitat Zitat von makrele Beitrag anzeigen
    Es erschein mir aber sinvoller zu sein als das Template zu ändern
    Doch, deshalb kann man bei jedem render setting ein Template auswaehlen und bei den Attributen darin nochmal je ein eigenes.
    Zitat Zitat von makrele Beitrag anzeigen
    oder mit der Kirche ums Dorf zu fahren und mit replace/strtolower/etc zu arbeiten.
    Du faehrst aktuell "mit der Kirche ums Dorf", weil du nun eine Spezialbehandlung fyr das Attribut in dein Listentemplate eingebaut hast.
    abgesehen davon hast du recht, mit replaces usw. zu arbeiten waere noch schlimmer.

    Zitat Zitat von makrele Beitrag anzeigen
    Sollte es noch Verbesserungsvorschläge geben, immer her damit.
    Siehe oben, mach ein Attributstemplate, weil das macht genau das was du aktuell machst und dann wird es auch nur einmal gemacht.
    In deiner Loesung wird es im Attributstemplate gemacht, das Ergebnis weggeschmissen und dann in deinem listentemplate nochmal neu gemacht.
    Bedenke stets: Wenn Du ungenaue oder unzureichende Angaben machst, so koennte dies die Bearbeitung deiner Frage endlos verzoegern (oder sogar dazu fyhren, dass ich zu viel nachdenken muss und die Antwort vergesse!). Kein Support per PN.

  6. #6

  7. #7
    Contao-Nutzer
    Registriert seit
    13.09.2009.
    Ort
    Münster; NRW
    Beiträge
    77

    Standard

    Ich habe jetzt das Attributstemplate mit folgendem Inhalt:

    Code:
    <?php foreach ($this->raw as $arrTag):
        $arrClass = array();
        if ($this->alias && isset($arrTag[$this->alias]) && !is_numeric($arrTag[$this->alias])) {
            $arrClass[] = standardize($arrTag[$this->alias]);
        }
    ?>
    <?php echo implode(' ', $arrClass); ?> <?php endforeach; ?>
    was genau hier gemacht wird erschließt sich mir noch nicht 100%ig

    Code:
        if ($this->alias && isset($arrTag[$this->alias]) && !is_numeric($arrTag[$this->alias])) {
            $arrClass[] = standardize($arrTag[$this->alias]);
        }
    Es wird geprüft ob die Tags einen Alias besitzen und dieser wird dann ggf standardisiert (Kleinschreibung; keine Umlaute; etc..)?

    Vielleich könnte mir da nochmal jemand helfen bzw. sagen was genau dort gemacht wird?

    Danke für eure Hilfe.

  8. #8
    Maintainer Avatar von xtra
    Registriert seit
    02.07.2009.
    Ort
    Tuebingen
    Beiträge
    2.007
    User beschenken
    Wunschliste

    Standard

    Du hast das schon verstanden.
    Die aliase werden gesammelt, standardisiert und dann als CSS Klassen verwendet.
    Bedenke stets: Wenn Du ungenaue oder unzureichende Angaben machst, so koennte dies die Bearbeitung deiner Frage endlos verzoegern (oder sogar dazu fyhren, dass ich zu viel nachdenken muss und die Antwort vergesse!). Kein Support per PN.

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
  •