[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
Slices mit getSlicesForArticleOfType - 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/
rash
Beiträge: 41
Registriert: 8. Feb 2008, 01:29

Slices mit getSlicesForArticleOfType

4. Aug 2009, 17:28

Hallo zusammen,

ich versuche, mit dem unten stehenden Code die Values 1 und 2 aller Module ID=14 des Artikels ID=3 auszugeben (Version 4.2). Wenn es mehr als 1 Modul dieses Typs in Artikel 3 gibt, ist alles prima, wenn es hingegen nur eines gibt, wird es nicht ausgegeben. Hier ist erst mal der Code:

Code: Alles auswählen

$slices = OOArticleSlice::getSlicesForArticleOfType(3,14);
if (is_array($slices) && count($slices) > 0) {
	foreach ($slices as $slice) :
		$out .= $slice -> getValue(1);
		$out .= $slice -> getValue(2);
	endforeach;
}

echo $out;
Woran es liegt, ist ungefähr klar: $slices ist offenkundig kein Array, wenn es nur ein Modul dieses Typs gibt. Und wenn ich die is_array-Bedingung weglasse, gibt es halt diesen Fehler hier:

Code: Alles auswählen

Fatal error: Call to a member function on a non-object in .../redaxo/include/classes/class.rex_article.inc.php(700) : eval()'d code(37) : eval()'d code on line 6
Problem zumindest schemenhaft erkannt also, nur: wie löse ich es am besten?

Schöne Grüße
Ralf

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

4. Aug 2009, 18:25

Hej Ralf,

probier das mal:

Code: Alles auswählen

if ((is_array($slices) || is_object($slices)) && count($slices) > 0) { 
vg Thomas

rash
Beiträge: 41
Registriert: 8. Feb 2008, 01:29

4. Aug 2009, 22:10

Hi Thomas,

is_object ist schon mal nicht schlecht. Nur wie bekomme ich die Werte raus? Wenn ich das so mache, wie Du vorschlägst, bleibt es bei der besagten Fehlermeldung:
Fatal error: Call to a member function on a non-object … blabla
Es muss doch möglich sein, auch nur ein einzelnes Slice auszulesen, offenbar stehe ich gerade gut auf dem Schlauch.

Trotzdem danke erst mal,
Ralf

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

5. Aug 2009, 07:31

Hej,

hatte etwas übersehen:

Code: Alles auswählen

$slices = OOArticleSlice::getSlicesForArticleOfType(3,14);

if (is_object($slices))
{
      $out .= $slices->getValue(1);
      $out .= $slices->getValue(2);
}
elseif (is_array($slices) && count($slices) > 0)
{
  foreach ($slices as $slice)
  {
    $out .= $slice->getValue(1);
    $out .= $slice->getValue(2);
  }
}
echo $out; 

vg Thomas

rash
Beiträge: 41
Registriert: 8. Feb 2008, 01:29

5. Aug 2009, 08:25

Jupidupiduh - so gehts! Nochmal danke, der Tag verspricht eine heitere Färbung zu bekommen.

Ralf

Zurück zu „Allgemeines [R4]“