Ankündigung

Einklappen
Keine Ankündigung bisher.

Template Anpassung Aufzählung

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Template Anpassung Aufzählung

    Hi,

    ich möchte ein CC-Reader Template dahingehend anpassen, dass eine Inhaltselement "Aufzählung" nur angezeigt wird, wenn auch mit Inhalt gefüllt.

    In den meisten Fällen funktioniert das mit

    <?php if($this->field('myfield')->value()): ?>

    Bei der Aufzählung allerdings nicht. Wie muss ich das hier lösen?

    Grüße,
    mapfei

  • #2
    Ja, das sind undankbare Felder bzw. Feldwerte in Contao. Contao speichert das Aufliste-Widget nicht "leer" im programmiertechnischen Sinne. Das Feld hat quasi immer einen leeren Eintrag.

    Man muss hier auf Existenz von realen Werten prüfen:

    PHP-Code:
    <?php
    $values 
    = \Contao\StringUtil::deserialize$this->field('listing')->value() ) ?? array();
    if( !empty( 
    array_filter($values) ) ): ?>
    <?= $this
    ->field('listing')->html(); ?>
    <?php 
    endif; ?>
    http://www.premium-contao-themes.com

    Kommentar


    • #3
      Okay, cool. Danke!

      Noch was anderes in dem Zusammenhang: lässt sich im Template auch die Kategorie ansprechen bzw. abfragen?

      <?php echo $this->field('category')->html(); ?>

      bringt mich an der Stelle nicht weiter. Möchte unterschiedlichen Text ausgeben, abhängig von der Kategorie des Produkts.

      Kommentar


      • #4
        Zitat von mapfei Beitrag anzeigen
        Okay, cool. Danke!

        Noch was anderes in dem Zusammenhang: lässt sich im Template auch die Kategorie ansprechen bzw. abfragen?

        <?php echo $this->field('category')->html(); ?>

        bringt mich an der Stelle nicht weiter. Möchte unterschiedlichen Text ausgeben, abhängig von der Kategorie des Produkts.
        Ja, geht über die Werte in dem Feld. Ich nehme das ist eine Mehrfachauswahl, wahrscheinlich die Seitenauswahl, wenn es direkt die CC Demo ist.


        Beispiel für Treffer auf die Seitenauswahl: Seiten IDs: 1 oder 10 oder 123

        Code:
        <?php
        // quelle
        $werte = \Contao\StringUtil::deserialize( $this->field('categories')->value() ) ?? array();
        // suchwerte
        $suche = array( 1,10,123 ); // ist bei einem Seitenauswahlfeld die gewaehlte Seiten-ID
        // ueberschneidungen finden
        if( array_intersect($suche,$werte) ): ?>
        Treffer für Wert: 1 oder 10 oder 123
        <?php endif; ?>
        http://www.premium-contao-themes.com

        Kommentar


        • #5
          Zitat von Tim Beitrag anzeigen
          Code:
          <?php
          // quelle
          $werte = \Contao\StringUtil::deserialize( $this->field('categories')->value() ) ?? array();
          // suchwerte
          $suche = array( 1,10,123 ); // ist bei einem Seitenauswahlfeld die gewaehlte Seiten-ID
          // ueberschneidungen finden
          if( array_intersect($suche,$werte) ): ?>
          Treffer für Wert: 1 oder 10 oder 123
          <?php endif; ?>
          Thanx!

          Allerdings muss es

          $this->field('category')->value()

          heissen.

          Kommentar


          • #6
            Ich möchte eine Navigation aus den Produkten einer bestimmten Kategorie erstellen. Habe dazu ein Modul "Liste" erzeugt und hier eine SQL-Bedingung eingefügt:

            Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Bildschirmfoto 2023-04-21 um 11.38.01.png
Ansichten: 85
Größe: 57,3 KB
ID: 27401

            Tut allerdings nicht, was es soll. Falscher Gedankengang?

            Kommentar


            • #7
              Dafür den Seitenauswahl-Filter nutzen in Kombination mit dem Seitenauswahl-Attribut. Siehe CC Directory Demo als Beispiel.
              http://www.premium-contao-themes.com

              Kommentar


              • #8
                Bin gerade nicht sicher, ob wir vom selben reden...

                Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Bildschirmfoto 2023-05-04 um 15.04.12.png
Ansichten: 94
Größe: 362,7 KB
ID: 27504

                Ich habe diese (noch) manuelle Liste im Megamenü angelegt. Die dort einzeln aufgeführten Produkte sind den jeweiligen Kategorien (Kabelscheren, Stahlschneider, usw.) zugeordnet. Die Ausgabe der Produkte soll nun automatisch geschehen.

                Welches Beispiel aus der Directory Demo meinst du hier? Finde dort nur die Ausgabe der Kategorien.

                Viele Grüße,
                mapfei

                Kommentar


                • #9
                  Die Kategorien sind Seiten.
                  http://www.premium-contao-themes.com

                  Kommentar


                  • #10
                    Zitat von Tim Beitrag anzeigen
                    Die Kategorien sind Seiten.
                    Sorry, aber "hä"?

                    Deswegen wollte ich das ja so lösen wie in meinem Post #6.

                    Kommentar


                    • #11
                      Zitat von mapfei Beitrag anzeigen

                      Sorry, aber "hä"?

                      Deswegen wollte ich das ja so lösen wie in meinem Post #6.
                      Zu diesem Thema gibt es viele Einträge hier im Forum inkl. Aufbauten und diversen Modis. https://forum.premium-contao-themes....-seitenauswahl
                      ---
                      Die Demos CC Book-Library und CC Directory nutzen ein Seitenauswahl-Attribut als "Kategorie"-Auswahl -> Je Eintrag werden die Seiten ausgewählt auf denen später der Eintrag erscheinen soll.

                      Die Filterung erfolgt über einen Filter "Seitenauswahl". Grund-Einstellung sollte sein, dass der Filter auf aktive Seite angewendet wird.

                      Die Ausgabe erfolgt über eine CC-Liste mit besagten Filter, die man auf allen "Kategorie"-Seiten platziert (z.B. mit einem eigenen Seitenlayout). Zusätzlich kann man einen Leser auf gleichen Seiten platzieren, wenn man innerhalb der aktiven Seite, die Detailseiten öffnen möchte. (keine Weiterleitungsseite in der Liste wählen, in diesem Fall).

                      Vorteil dieser Methode ist, dass die normale Seitenstruktur bzw. normale Navis wie ein Filter-Modul fungieren.
                      http://www.premium-contao-themes.com

                      Kommentar

                      Lädt...
                      X