Blätter-Funktion mit Fehler

Wie verwendet man Module oder Aktion und passt diese an.

Blätter-Funktion mit Fehler

Beitragvon a.albrecht » 22. Aug 2011, 17:29

Hallo Leute,

ich nutze folgendes Script um von einem Startartikel in einen nächsten Startartikel springen zu können:

Code: Alles auswählen
    <?php

    ## eigene ID
    $cat = OOCategory::getCategoryById($this->getValue('category_id'));

    ## current artikel & id
    $currentarticleID = $cat->getId();
    $currentarticle = OOArticle::getArticleById($currentarticleID);

    ## eltern ID & Clang
    $catParent = $cat->getParent();
    $catParentId = $catParent->getId();
    $catParentClang = $catParent->getClang();

    ## ID´s der Kategorien
    $cat = OOCategory::getCategoryById($catParentId);
    $kat = $cat->getChildren();

    ## ID übergabe an katIds
    foreach ($kat as $kats) {
       $katIds[] = $kats->getId();
    }

    ## übergabe der StartArtikel der katIds
    foreach ($katIds as $katArticles) {
       $article[] = OOArticle::getArticleById($katArticles);
    }

    ## ab hier ist es das Modul von 'Artikel blättern'
    if (is_array($article))
    {
       ## artikelreihenfolge in eine liste laden
       foreach ($article as $var)
       {
          $articlestack[] = $var->getId();
       }
       ## herausfinden, welcher artikel der vorgänger-artikel ist
       $i = 0;
       $catcount = count($articlestack);
       foreach ($articlestack as $var)
       {
          if($var == $currentarticleID)
          {
             if($i+1 < $catcount )
             {
                $nextID = $articlestack[$i+1];
                $successor = '<a href="'.rex_getUrl($nextID).'">></a>';
             }
             if($i-1 > -1)
             {
                $prevID = $articlestack[$i-1];
                $predecessor = '<a href="'.rex_getUrl($prevID).'"><</a>';
             }
          }
          $i++;
       }
       echo $predecessor . " " . $successor;
    }
    ?>


Beim Aufruf dieses Codes erhalte ich neuerdings folgende Fehlermeldung:

Code: Alles auswählen
Fatal error: Cannot use object of type OOArticle as array in /mnt/web4/22/49/51509949/htdocs/weis-communications/relaunch/redaxo/include/classes/class.rex_article_base.inc.php(388) : eval()'d code(77) : eval()'d code on line 26


Ich habe hier soweit ich weiß nichts geändert. Weiß jemand warum das ganze jetzt kommt?
Der Fehler muss hier liegen, testungsweise habe ich es rausgenommen und aktualisiert - funktioniert.

andré
a.albrecht
 
Beiträge: 80
Registriert: 17. Dez 2008, 22:43

Re: Blätter-Funktion mit Fehler

Beitragvon frood » 22. Aug 2011, 19:24

Hallo André,
was mir auffält sind die Umlaute in den Kommentaren ... Du hast nicht zufällig gerade auf UTF-8 umgestellt? Da kann es Ausgabefehler geben, auch wenn die Umlaute nur in den Kommentaren vorkommen. Du sagst ja, Du hast am Script selbst nichts geändert ....
Nur so eine Idee ..
Gruss, Marc
frood
 
Beiträge: 88
Registriert: 7. Okt 2008, 14:17

Re: Blätter-Funktion mit Fehler

Beitragvon a.albrecht » 23. Aug 2011, 08:02

Hallo Marc,

das halt leider nicht geholfen. Ich habe alle Umlaute und Sonderzeichen aus den Kommentaren entfernt. Ergebnis ist das gleiche - der oben gezeigte Fehler.

Noch jemand eine Idee?


andré
a.albrecht
 
Beiträge: 80
Registriert: 17. Dez 2008, 22:43

Re: Blätter-Funktion mit Fehler

Beitragvon Gregor.Harlan » 23. Aug 2011, 08:31

Hallo André,

in dem Code, der vor dem geposteten ausgeführt wird (übergeordnetes Template) wird der Variable $article irgendwo ein OOArticle-Objekt zugewiesen, in Zeile 26 des geposteten Codes versuchst das Objekt wie ein Array zu behandeln:
Code: Alles auswählen
    ## übergabe der StartArtikel der katIds
    foreach ($katIds as $katArticles) {
       $article[] = OOArticle::getArticleById($katArticles);
    }

Du solltest vorher $article explizit als Array setzen:
Code: Alles auswählen
    ## übergabe der StartArtikel der katIds
    $article = array();
    foreach ($katIds as $katArticles) {
       $article[] = OOArticle::getArticleById($katArticles);
    }


Gruß, Gregor
Benutzeravatar
Gregor.Harlan
Entwickler
 
Beiträge: 825
Registriert: 4. Jun 2007, 09:35
Wohnort: Dresden

Re: Blätter-Funktion mit Fehler

Beitragvon a.albrecht » 23. Aug 2011, 08:43

Hallihallo!

Der Tag ist gerettet - es funktioniert.
Besten Dank für die Hilfe!

andré
a.albrecht
 
Beiträge: 80
Registriert: 17. Dez 2008, 22:43


Zurück zu Module/Aktionen [R4]

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste