Contao-Camp 2024
Ergebnis 1 bis 12 von 12

Thema: Fallback Artikel zeigen wenn keiner ausgewählt wurde

  1. #1
    Contao-Fan
    Registriert seit
    10.08.2011.
    Ort
    Berlin
    Beiträge
    828

    Standard Fallback Artikel zeigen wenn keiner ausgewählt wurde

    Angenommen im Layout gibt es die Zuordnung Artikel -> Kopfzeile, so dass man einen Artikel anlegen , der Kopfzeile zuordnen und dort z.B. ein Kopfbild einbauen kann.
    Der Sinn wäre, dass eine Redakteurin jeder Seite ein individuelles "Hero-Image" zuordnen können soll .

    Auf den Seiten wo das nicht gewollt ist oder vergessen wird wäre es praktisch wenn dort dann automatisch dem Header ein Standardbild zugeordnet würde.
    Also in diesem Sinne:
    Wenn Artikel (Kopfzeile) zeige diesen, wenn kein Artikel zeige das Fallback.

    Bliebe noch die Frage was ist, wenn man gar kein Bild an der Stelle haben will. Ich hab momentan keine wirkliche Idee wie ich das am besten umsetzen könnte.

    Vielleicht hat das schon mal jemand gemacht und kann mich in die "richtige" Richtung schubsen?

  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 Bennie,
    guck dir mal diese Erweiterung an: https://github.com/terminal42/contao-pageimage
    Da brauchst du dann keinen extra Artikel für sowas und das Bild wird in der Struktur vererbt, wenn keins ausgewählt wurde und du das so einstellst.
    Ob es dann auch möglich ist mal eine Seite ohne Bild zu haben kann ich gerade gar nicht sagen, da ich die Erweiterung aktuell gar nicht mehr in Benutzung habe...

    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-Fan
    Registriert seit
    10.08.2011.
    Ort
    Berlin
    Beiträge
    828

    Standard

    Ja die Erweiterung hatte ich schon im Blick, werde ich probieren aber ich dachte es gäbe eine Lösung die so ähnlich ist wie z.B. Abfragen einer bestimmte Seite
    PHP-Code:
    <?php global $objPage;
               if(
    $objPage->id == 1)
    // do anything
    ?>
    nur eben so was wie Artikel ja/nein dann mach dieses.

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

    Ja, sowas in der Art könnte man sicher in der fe_page implementieren.. nur wenn in dem Bereich etwas enthalten ist, dann gib das und das aus, ansonsten ein Default Bild...
    Wobei es bei sowas eigentlich immer schöner ist, die Logik nicht unbedingt im Template zu haben und zusätzlich bist du mit der Erweiterung wesendlich flexiebler (auch was eventuelle zukünftige Wünsche angeht).

    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."

  5. #5
    AG Pressearbeit
    Community-Moderator
    Buchautor 'Contao für Webdesigner'
    Avatar von planepix
    Registriert seit
    05.06.2009.
    Ort
    Stuttgart
    Beiträge
    6.464
    Partner-ID
    107
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Aus dem Jahr 2012 und von MacKP :
    https://de.contaowiki.org/Dynamische...it_Insert-Tags
    ---------------------------------
    Beste Grüße planepix
    Contao für Webdesigner (Website), Twitter: @contaowebdesign
    weitzeldesign
    Contao-Sprechstunde
    Contao Schulungen: https://www.weitzeldesign.com/cms-co...chulungen.html
    Contao Jahrbuch: www.contao-jahrbuch.de
    Contao Agenturtag: www.contao-agenturtag.de
    Contao Stammtisch Stuttgart: www.contao-stammtisch-stuttgart.de
    Contao 4 Erfahrungen als Gitbook: https://app.gitbook.com/@planepix/s/...-mit-contao-4/
    Contao 4 & Manager Hosterhinweise: https://github.com/contao/contao-manager/wiki

    Schon wieder ein Update?
    Glücklich sind die, die den Wert erkennen – und wertschätzen.
    „Muss man machen wie beim Zahnarzt. Der bestraft einen auch mit hohen Rechnungen wenn man die Pflege vernachlässigt.”

  6. #6
    Contao-Urgestein Avatar von Franko
    Registriert seit
    22.06.2009.
    Beiträge
    1.503
    Partner-ID
    6122

    Standard

    Du könntest evtl. auch folgendes probieren:

    Ein Modul "Eigener HTML-Code" anlegen mit:
    HTML-Code:
    <div class="fallback"></div>
    Dieses Modul im Seitenlayout VOR dem Artikel/Kopfzeile hinzufügen und ebenfalls der Kopfzeile zuordnen.
    Somit ist zumindest sichergestellt, das immer <header>...</header> generiert wird auch wenn gar kein "echter" Artikel für den Bereich Kopfzeile vorliegt.

    Angenommen das hero banner muss immer im ersten Artikel im Bereich <header> existieren und das entsprechende Inhaltselement erhält zwingend die CSS-Klasse "hero" könnte die Struktur z.B. so aussehen:

    HTML-Code:
    <header id="header">
    <div class="inside">
      <div class="fallback"></div>
    
      <div class="mod_article first block" id="article-20">
        <div class="ce_text hero first last block"></div>
      </div>
      <div class="mod_article last block" id="article-22">
        <div class="ce_text first last block"></div>
      </div>
    </div>
    </header>
    Mit CSS fragst du jetzt die Existenz der Klasse "hero" im ersten Artikel nach dem "fallback" Container ab - ala:

    PHP-Code:
    #header .fallback + .mod_article div.hero {
     
    border1px solid #008000;
    }

    #header .fallback + .mod_article div:not(.hero)::before {
      
    displayblock;
      
    content'';
      
    min-height20px;
      
    background-color#ccc;
      
    border1px solid #ff0000;

    Ist diese nicht vorhanden wird entsprechend eine Alternative ausgegeben. Dies bedingt jedoch das immer eine Ausgabe erfolgt.
    Was alternativ ausgegeben werden soll (als CSS background-image) könnte man zudem über CSS Klassen des Body Tags steuern ...
    Freelancer, Digital Design Enthusiast, Contao Aficionado and Tutorial Junkie @MoinFranko - Carpe diem ...

  7. #7
    Contao-Fan
    Registriert seit
    10.08.2011.
    Ort
    Berlin
    Beiträge
    828

    Standard

    @Franko
    auch 'ne gute Idee, die ich evtl. an anderer Stelle noch brauchen kann. Hier ist es allerdings so dass es kein background-image sein soll allein weil ich das srcset nutze aber egal, dennoch ein sehr interessanter Ansatz.
    Ich werde mal einiges probieren, anscheinend ist es eine Anforderung die zumindest hier bisher nur einmal formuliert wurde und zwar vor 8 Jahren ohne konkretes Ergebnis.

  8. #8
    Contao-Urgestein Avatar von Franko
    Registriert seit
    22.06.2009.
    Beiträge
    1.503
    Partner-ID
    6122

    Standard

    Glaube Denkfehler oben, geht ja so von einer existierenden .mod_article aus ...
    Sorry.
    Freelancer, Digital Design Enthusiast, Contao Aficionado and Tutorial Junkie @MoinFranko - Carpe diem ...

  9. #9
    Contao-Fan
    Registriert seit
    10.08.2011.
    Ort
    Berlin
    Beiträge
    828

    Standard

    Macht ja nix, das Prinzip geht doch trotzdem so oder so ähnlich.

  10. #10
    Contao-Urgestein Avatar von Franko
    Registriert seit
    22.06.2009.
    Beiträge
    1.503
    Partner-ID
    6122

    Standard

    Schade das es :has() in keinen Browser geschafft hat ...
    Freelancer, Digital Design Enthusiast, Contao Aficionado and Tutorial Junkie @MoinFranko - Carpe diem ...

  11. #11
    Contao-Urgestein Avatar von Franko
    Registriert seit
    22.06.2009.
    Beiträge
    1.503
    Partner-ID
    6122

    Standard

    Zitat Zitat von Bennie Beitrag anzeigen
    Macht ja nix, das Prinzip geht doch trotzdem so oder so ähnlich.
    Eine Alternative wäre die Änderung der Reihenfolge:
    Im Seitenlayout setzt du das Mudul/"Eigener HTML-Code"/Kopfzeile nach dem "Artikel/Kopfzeile".

    Und dann via CSS:

    PHP-Code:
    #header .inside .fallback {
     
    positionabsolute;
     
    top0;
     
    left0;
     
    displayblock;
     
    height40px;
     
    width100vw;
     
    border1px solid #ff0000;
     
    background-color#fafafa;
    }

    #header .inside .mod_article.first ~ .fallback {
      
    displaynone;

    Hier wird dann der container mit der CSS-Klasse "fallback" immer angezeigt.
    Es sei denn ein container mit der CSS-Klasse "mod_article.first" ist vorhanden (als parent)
    Freelancer, Digital Design Enthusiast, Contao Aficionado and Tutorial Junkie @MoinFranko - Carpe diem ...

  12. #12
    Contao-Fan
    Registriert seit
    10.08.2011.
    Ort
    Berlin
    Beiträge
    828

    Standard

    Ich bin da aus Zeitgründen noch nicht weitergekommen aber ich denke mit dem merger2 könnte das auch klappen.

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
  •