[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
Problem mit getNextSlice() - 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/
kraftan
Beiträge: 2
Registriert: 2. Aug 2008, 21:25

Problem mit getNextSlice()

11. Feb 2009, 21:10

Hallo,

ich habe diesen einfachen Codeteil:

<?
$slice = OOArticleSlice::getFirstSliceForArticle(757,0);
print $slice-> getModulTyp();
$next = $slice->getNextSlice();
print $next-> getModulTyp();
?>

Das Problem:
Das Erste print bringt mir einen korrekten Wert.
Beim Zweiten print erhalte ich eine Fehlermeldung:

Fatal error: Call to a member function on a non-object in /homepages/22/d257995446/htdocs/testweb/redaxo/redaxo/include/classes/class.article.inc.php(179) : eval()'d code on line 5

Natürlich habe ich auch 2 Slices im Artikel. Aus irgendeinem Grund funktioniert bei mir diese getNextSlice Funktion nicht. Ich habe das schon auf verschiedene Weise versucht und auch alle Hinweise hier im Forum durchsucht. Leider komme ich nicht weiter.

Mein eigentliches Ziel ist es, dass ich einfach alle Slices eines bestimmten Typen für einen Artikel ausgeben lasse. Wichtig ist dabei, dass die richtige Reihenfolge eingehalten wird (ohne die Reihenfolge habe ich es schon hinbekommen).

Nachdem ich die Lösung eigentlich schon vorgestern benötige, hoffe ich nun auf Hilfe von euch! Hat irgend jemand eine Idee woran das liegen könnte, oder wie ich das hinbekomme?

Vielen Dank im Voraus!

Gruß,
Andi

Nutzer
Beiträge: 7
Registriert: 28. Apr 2009, 10:53

28. Apr 2009, 10:55

Genau das gleiche Problem habe ich auch. Weiss jemand hier eine Lösung?

kraftan
Beiträge: 2
Registriert: 2. Aug 2008, 21:25

28. Apr 2009, 12:14

Hallo,

ich konnte das Problem dann doch noch lösen (habe aber leider vergessen hier eine Lösung einzutragen).

Ich habe irgendwo im Forum noch diese Funktion gefunden:

function getSlicesForArticle($an_article_id, $clang = false){
global $REX;
if ($clang === false)
$clang = $REX['CUR_CLANG'];
$table = '';
$table = $REX['TABLE_PREFIX']."article_slice";
$sql = new sql;
$i = 0;
$query =<<<EOD
SELECT id,re_article_slice_id,value1,value2,value3,value4,value5,value6,value7,value8,value9,value10,
file1,file2,file3,file4,file5,file6,file7,file8,file9,file10,
link1,link2,link3,link4,link5,link6,link7,link8,link9,link10,
php,html,article_id,modultyp_id
FROM
$table WHERE article_id = $an_article_id AND clang = $clang
EOD;

$sql->setQuery($query);
$slices = $sql->get_array($query);
if ($sql->getRows() > 0)
{
$numSlices = count($slices);
foreach($slices as $value)
{
$sid = $value["re_article_slice_id"];
$slice[$sid]["id"] = $value["id"];
foreach($value as $key => $val)
{
$slice[$sid][$key] = $val;
}
}
while($i<$numSlices)
{
if($i==0)
{
foreach($slice[$i] as $key => $val)
{
$block[$i][$key] = $val;
}
$tmpS = $slice[$i]["id"];
}
else
{
foreach($slice[$tmpS] as $key => $val)
{
$block[$i][$key] = $val;
}
$tmpS = $slice[$tmpS]["id"];
}
$i++;
}
return $block;
}
return null;
}

wenn du diese einfach in die class.ooarticleslice.inc.php einbindest, kannst du diese Funktion dann in deinem Modul aufrufen. Damit funktioniert es dann wie gewünscht.

Z.B.:

$Id = $this->getValue("article_id");
$moduletype = 48;
$slices = OOArticleSlice::getSlicesForArticle($Id);
for($count = 0; $count < count($slices); $count++)
{
if($slices[$count]["modultyp_id"] == $moduletype)
{
echo $slices[$count]["value1"];
}
}

Ich hoffe es hilft dir weiter.

Viele Grüße,
Andi

Zurück zu „Allgemeines [R3]“