[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
getArticle() liefert 502 - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
skittles
Beiträge: 58
Registriert: 25. Mai 2009, 11:22

getArticle() liefert 502

24. Jan 2016, 20:15

Hallo zusammen,
ich möchte gern über ein Modul alle Artikel einer Kategorie ausgeben.
Hierzu habe ich im Startartikel ein Modul erstellt, mit folgender Ausgabe:

Code: Alles auswählen

<?
$cat 		= OOCategory::getCategoryById( REX_CATEGORY_ID );
$articles 	= $cat->getArticles( false );

foreach( $articles as $article ):
	
	if( $article->isOnline() )
	{
  		if( $article->getID() != $cat->getID() )
  		{
  			$art = new article($article->getID());
  			print $art->getArticle();
  		}
	}
endforeach;
?>
Eigentlich ein no-brainer. Allerdings führt

Code: Alles auswählen

print $art->getArticle();
zu einer Endlosschleife und der Server sendet einen 502er.

Was habe ich denn da übersehen? Habe schon lange nicht mehr mit Redaxo gearbeitet, aber ich hab auch in vielen Foreneinträgen genau diese Syntax gefunden.
p.s. es ist redaxo 4.5 im Einsatz.

Kann jemand helfen?
Vielen Dank!

Thomas.Skerbis
Beiträge: 1371
Registriert: 4. Aug 2006, 14:06
Wohnort: Rheinberg
Kontaktdaten: Website Twitter

Re: getArticle() liefert 502

25. Jan 2016, 14:19

Hier der Code aus der ersten Demo:

Code: Alles auswählen

<?php

$cat = rex_category::get($this->getValue("category_id"));
$article = $cat->getArticles();

if (is_array($article)) 
{
  foreach ($article as $var) 
  {
    $articleId = $var->getId();
    $articleName = $var->getName();
    $articleDescription = $var->getValue("art_description");
    if (!$var->isStartArticle()) 
    {
      echo '<a href="'.rex_getUrl($articleId).'" class="faq">'.$articleName.'</a><br />';
    }
  }
}

?>

gupi
Beiträge: 286
Registriert: 20. Nov 2008, 13:49
Wohnort: Elsdorf/Rheinland

Re: getArticle() liefert 502

2. Feb 2016, 20:46

Hi,
versuch's mal damit:

Code: Alles auswählen

<?php
if (!$REX['REDAXO']) {
$cat       = OOCategory::getCategoryById( REX_CATEGORY_ID );
$articles    = $cat->getArticles( false );
foreach( $articles as $article ){
   if( $article->isOnline() )
   {
        if( $article->getID() != $cat->getID() )
        {
           $art = new rex_article($article->getID());
           echo $art->getArticle();
        }
   }
}
} else {
echo "Artikelausgabe";
}
?>
Gruß
Gunter
read the manual first

Benutzeravatar
Thomas.Blum
Entwickler
Beiträge: 5063
Registriert: 24. Aug 2004, 22:11
Wohnort: Dresden
Kontaktdaten: Website

Re: getArticle() liefert 502

2. Feb 2016, 21:02

Hej,

@Gunter dein Code ist für REDAXO 4 nicht für die 5er Version geeignet.

vg Thomas

gupi
Beiträge: 286
Registriert: 20. Nov 2008, 13:49
Wohnort: Elsdorf/Rheinland

Re: getArticle() liefert 502

3. Feb 2016, 10:21

Hi Thomas,
das ist vollig richtig, ich denke der Thread gehört auch gar nicht hier hin,
skittles hat geschrieben: p.s. es ist redaxo 4.5 im Einsatz.
read the manual first

Benutzeravatar
Thomas.Blum
Entwickler
Beiträge: 5063
Registriert: 24. Aug 2004, 22:11
Wohnort: Dresden
Kontaktdaten: Website

Re: getArticle() liefert 502

3. Feb 2016, 10:29

gupi hat geschrieben:das ist vollig richtig, ich denke der Thread gehört auch gar nicht hier hin,
skittles hat geschrieben: p.s. es ist redaxo 4.5 im Einsatz.
Stimmt auch wieder :) . Habe den Thread daher mal verschoben.


Probier einmal das hier:

Code: Alles auswählen

<?php
$cat = OOCategory::getCategoryById(REX_CATEGORY_ID);
$articles = $cat->getArticles(true);

if (count($articles)) {
    foreach($articles as $article) {
        if($article->isStartarticle()) {
            // Endlosschleife vermeiden
            continue;
        }
        $a = new rex_article($article->getId());
        echo $a->getArticle();
    }
}
?>
vg Thomas

gupi
Beiträge: 286
Registriert: 20. Nov 2008, 13:49
Wohnort: Elsdorf/Rheinland

Re: getArticle() liefert 502

3. Feb 2016, 11:57

Hi Thomas,
klar ist es sinnvoller von vornherein nur die "online" Artikel auszuwählen, dann muss man das nicht hinterher mit einer if-Abfrage prüfen.
Ich denke die ursprüngliche Frage zielte aber in eine andere Richtung und das habe ich versucht zu beantworten.

Übrigens:

Code: Alles auswählen

$a = new article($article->getId());
        echo $art->getArticle();
geht in die Hose - dass müsste doch wohl:

Code: Alles auswählen

$art = new rex_article($article->getId());
        echo $art->getArticle();
heißen :wink:
Du instanzierst hier article und nicht rex_article und genau daran war skittles doch gescheitert. Zudem ist $art undefiniert.
LG
Gunter
read the manual first

skittles
Beiträge: 58
Registriert: 25. Mai 2009, 11:22

Re: getArticle() liefert 502

4. Feb 2016, 11:47

Hallo zusammen,

herzlichen dank für die Unterstützung.
Tatsache hat ein Instanziieren der Klasse rex_article zum gewünschten Ergebnis geführt.

Da wäre ich allein jetzt nicht drauf gekommen!

Habt vielen vielen Dank!

Zurück zu „Allgemeines [R4]“