Ergebnis 1 bis 16 von 16

Thema: Warning: Undefined global variable $article

  1. #1
    Contao-Nutzer
    Registriert seit
    19.09.2012.
    Beiträge
    141

    Standard Warning: Undefined global variable $article

    PHP-Code:
    <?php
        $evenodd 
    '';
        if (!
    $GLOBALS['article']['first'])
        {
            
    $evenodd .= "articleFirst";
            
    $GLOBALS['article']['first']=1;
            
    $GLOBALS['article']['evenodd'] = true;
        }
     
        
    $GLOBALS['article']['evenodd'] = !$GLOBALS['article']['evenodd'];
     
        if (
    $GLOBALS['article']['evenodd'])
        {
            
    $evenodd .= "articleEven";
     
        }
        else
        {
            
    $evenodd .= "articleOdd";
     
        }
    ?>
    Es handelt sich um ein Upgrade von 4.13 zu 5.3

    ich verwende die Variable "article" in den Templates um zwischen geraden und ungeraden für das Styling zu unterscheiden.

    Heißen die Artikel nun nicht mehr "article" ?
    Habe die Doku und das Forum durchsucht aber nichts gefunden.
    Danke vorab für die Unterstützung

  2. #2
    Contao-Nutzer
    Registriert seit
    19.09.2012.
    Beiträge
    141

    Standard

    PHP-Code:
    $GLOBALS['TL_DCA']['tl_article'
    even und odd wurden entfernt lese ich https://www.trakked.io/de/blog/updat...auf-contao-5-3
    Wie soll ich jetzt gerade und ungerade unterscheiden?

    :-(

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

    Support Contao

    Standard

    Das ist dann mit CSS und dem Pseudoselektor :nth-child() zu machen:

    https://developer.mozilla.org/de/doc...CSS/:nth-child
    ---------------------------------
    Beste Grüße planepix
    Contao für Webdesigner (Website), BlueSky: planepix
    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

    Glücklich sind die, die den Wert erkennen – und wertschätzen.

  4. #4
    Contao-Nutzer
    Registriert seit
    19.09.2012.
    Beiträge
    141

    Standard

    Ok, dann muss ich mal kurz laut denken.
    Hatte even und odd genutzt um zwei völlig verschiedene Aufbauten im Template zu realisieren.
    Jetzt habe ich nur noch CSS....
    Hab grad einen Knoten im Kopf. Wie soll ich die Struktur basierend auf CSS ändern?
    Einblenden / Ausblenden?


    PHP-Code:
    <?php
        $evenodd 
    '';
        if (!
    $GLOBALS['article']['first'])
        {
            
    $evenodd .= "articleFirst";
            
    $GLOBALS['article']['first']=1;
            
    $GLOBALS['article']['evenodd'] = true;
        }
     
        
    $GLOBALS['article']['evenodd'] = !$GLOBALS['article']['evenodd'];
     
        if (
    $GLOBALS['article']['evenodd'])
        {
            
    $evenodd .= "articleEven";
     
        }
        else
        {
            
    $evenodd .= "articleOdd";
     
        }
    ?>

    <div class="<?php echo $evenodd?> col-md-12" style="cursor:pointer; margin-bottom: 60px;" onclick="window.open('<?php echo $this->link?>','_self','')">
    <?php if ($evenodd == "articleEven"): ?>
    <div class="sliderheader row">
    <div class="ce_image col-md-9 offset-md-3 startbox_mobil nopadding" style="background-image: url('<?php echo $this->src?>'); background-size: cover; background-position: center; z-index:2;"></div>
    <div class="col-12 white mobile" style="height: 100px; top: 180px; position: absolute;"></div>
    <div class="slidertextbox col-md-5 nopadding">
                <span class="box_kategorie_date"><?php echo $this->archive->title?></span>
                <?php if ($this->newsHeadline): ?>
                    <h2 class="blue"><?php echo $this->newsHeadline?></h2>
                <?php endif; ?>
                <button class="leftfix">Mehr erfahren</button>
        </div>
    </div>
    <?php else : ?>
        <div class="sliderheader row">
    <div class="ce_image col-md-5 nopadding startbox" style="background-image: url('<?php echo $this->src?>'); background-size: cover; background-position: center; z-index:2;"></div>
    <div class="col-12 white mobile" style="height: 100px; top: 180px; position: absolute;"></div>
    <div class="sliderdialogbox col-md-9 offset-md-3 block">    
        <div class="offset-md-3 col-md-9 dialogtext">
            <span class="box_kategorie_date"><?php echo $this->archive->title?></span>
                <h2 class="blue news_box_headline"><?php echo $this->newsHeadline?></h2>
                <?php if ($this->hasSubHeadline): ?>
            <p class="news_box_text"><?php echo $this->subHeadline?></p>
        <?php endif; ?>
        <button class="fix">Mehr erfahren</button>
        </div>
        </div>
        </div>
        <?php endif ?>
    </div>

  5. #5
    Contao-Nutzer
    Registriert seit
    19.09.2012.
    Beiträge
    141

    Standard

    hat jemand eine Idee/Denkanstoß wie ich nun im Template jeden zweien Beitrag einer Liste anders aufbauen kann?
    Gibt es keine Möglichkeit mehr bereits bei der Erzeugung zu unterscheiden?
    CSS greift ja erst im Frontend, wenn es bereits zu spät ist.

  6. #6
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    37.197
    Partner-ID
    10107

    Standard

    Warum brauchst du eine andere Struktur?
    » sponsor me via GitHub or Revolut

  7. #7
    Contao-Nutzer
    Registriert seit
    19.09.2012.
    Beiträge
    141

    Standard

    PHP-Code:
    <?php
    $counter 
    $this->$count

        if (
    $counter == 0)
        {
            
    $evenodd .= "articleEven";
        }
        else
        {
            
    $evenodd .= "articleOdd";
        }
    ?>
    Klappt nicht, obwohl $count eine Variable der Liste ist (geprüft mit VarDump).
    Wenn ich $count anzeigen lassen will passiert auch nichts.
    Variable ist leer. Im Dump wird sie aber hochgezählt.

  8. #8
    Contao-Nutzer
    Registriert seit
    19.09.2012.
    Beiträge
    141

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Warum brauchst du eine andere Struktur?
    Designvorgabe.
    Hat bis einschließlich 4.13 ja alles noch funktioniert.

  9. #9
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    37.197
    Partner-ID
    10107

    Standard

    Zitat Zitat von Thomas Hinze Beitrag anzeigen
    Designvorgabe.
    Beschreibe die Anforderung genauer.
    » sponsor me via GitHub or Revolut

  10. #10
    Contao-Nutzer
    Registriert seit
    19.09.2012.
    Beiträge
    141

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Beschreibe die Anforderung genauer.
    Wenn count==gerade, dann stelle den Beitrag einer Liste wie folgt dar.

    PHP-Code:
    <div class="sliderheader row">
    <div class="ce_image col-md-9 offset-md-3 startbox_mobil nopadding" style="background-image: url('<?php echo $this->src?>'); background-size: cover; background-position: center; z-index:2;"></div>
    <div class="col-12 white mobile" style="height: 100px; top: 180px; position: absolute;"></div>
    <div class="slidertextbox col-md-5 nopadding">
                <span class="box_kategorie_date"><?php echo $this->archive->title?></span>
                <?php if ($this->newsHeadline): ?>
                    <h2 class="blue"><?php echo $this->newsHeadline?></h2>
                <?php endif; ?>
                <button class="leftfix">Mehr erfahren</button>
        </div>
    </div>
    Wenn der Count == ungerade dann stelle den Beitrag so dar

    PHP-Code:
        <div class="sliderheader row">
    <div class="ce_image col-md-5 nopadding startbox" style="background-image: url('<?php echo $this->src?>'); background-size: cover; background-position: center; z-index:2;"></div>
    <div class="col-12 white mobile" style="height: 100px; top: 180px; position: absolute;"></div>
    <div class="sliderdialogbox col-md-9 offset-md-3 block">    
        <div class="offset-md-3 col-md-9 dialogtext">
            <span class="box_kategorie_date"><?php echo $this->archive->title?></span>
                <h2 class="blue news_box_headline"><?php echo $this->newsHeadline?></h2>
                <?php if ($this->hasSubHeadline): ?>
            <p class="news_box_text"><?php echo $this->subHeadline?></p>
        <?php endif; ?>
        <button class="fix">Mehr erfahren</button>
        </div>
        </div>
        </div>
    </div>
    Geändert von Thomas Hinze (31.03.2025 um 11:41 Uhr)

  11. #11
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    37.197
    Partner-ID
    10107

    Standard

    Der Code ist schwer zu lesen. Berichtige die Einrückungen - oder beschreibe welche Unterschiede es zwischen dem Ersten und dem Zweiten Code gibt.

    Auf der von dir verlinkten Seite, ist jedenfalls auf dem Ersten Blick nicht zu erkennen, warum du da für gerade/ungerade Vorkommnisse eine andere Struktur brauchst.
    » sponsor me via GitHub or Revolut

  12. #12
    Contao-Nutzer
    Registriert seit
    19.09.2012.
    Beiträge
    141

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Der Code ist schwer zu lesen. Berichtige die Einrückungen - oder beschreibe welche Unterschiede es zwischen dem Ersten und dem Zweiten Code gibt.

    Auf der von dir verlinkten Seite, ist jedenfalls auf dem Ersten Blick nicht zu erkennen, warum du da für gerade/ungerade Vorkommnisse eine andere Struktur brauchst.
    Weil sich die Beiträge in der Desktop Ansicht im Wechsel gerade/ungerade vollkommen unterscheiden.

    kannst du mir vielleicht einfach erklären wie ich den Wert der Variable "count" im Template nutzen kann?
    Ich muss einfach nur wissen ob die Zahl des jeweiligen Beitrags einer Liste gerade oder ungerade ist.

    $this->count gibt im Template nichts zurück daher kann ich auch nicht auf gerade oder ungerade prüfen.

    Wenn ich varDump ausgebe existiert aber ein Wert für $count

  13. #13
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    37.197
    Partner-ID
    10107

    Standard

    Zitat Zitat von Thomas Hinze Beitrag anzeigen
    Weil sich die Beiträge in der Desktop Ansicht im Wechsel gerade/ungerade vollkommen unterscheiden.
    Nur visuell, das bekommst du auch mit CSS hin. Die Struktur kann dabei gleich bleiben.



    Zitat Zitat von Thomas Hinze Beitrag anzeigen
    $this->count gibt im Template nichts zurück daher kann ich auch nicht auf gerade oder ungerade prüfen.

    Wenn ich varDump ausgebe existiert aber ein Wert für $count
    Poste die Ausgabe von
    PHP-Code:
    <?php dump($this->arrData?>
    » sponsor me via GitHub or Revolut

  14. #14
    Contao-Nutzer
    Registriert seit
    19.09.2012.
    Beiträge
    141

    Standard

    Poste die Ausgabe von
    PHP-Code:
    <?php dump($this->arrData?>
    [/QUOTE]

    Bildschirmfoto 2025-03-31 um 12.29.55.png


    So ein Block sehe ich nach jedem Beitrag und "count" zählt erwartungsgemäß um jeweils 1 hoch
    Geändert von Thomas Hinze (31.03.2025 um 11:42 Uhr)

  15. #15
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    37.197
    Partner-ID
    10107

    Standard

    $this->count ist schon richtig. Weiter oben hast du dich aber verschrieben und irrtümlich $this->$count benutzt.
    » sponsor me via GitHub or Revolut

  16. #16
    Contao-Nutzer
    Registriert seit
    19.09.2012.
    Beiträge
    141

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    $this->count ist schon richtig. Weiter oben hast du dich aber verschrieben und irrtümlich $this->$count benutzt.

    oh man. danke!

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •