dank einem codeschnipsels eines anderen users habe ich es geschafft mithilfe "getSlicesForArticleOfType" die slices wie im backend zu sortieren, die ja "von haus aus" nur über die id sortiert werden...
das klappt auf einer unterseite auch wunderbar, wenn ich das gleiche modul bzw. dessen inhalt für einen teaser auf der startseite nutzen will, bekomme ich folgenden error:
Code: Alles auswählen
Warning: Cannot use a scalar value as an array in /www/htdocs/w00fd426/redaxo/include/classes/class.rex_article.inc.php(133) : eval()'d code on line 398
hier der gesamte code des moduls:
Code: Alles auswählen
<?php
$slice = OOArticleSlice::getSlicesForArticleOfType(29, 6);
$anzahl=sizeof($slice);
$alle_ids = array();
$cat = 'REX_VALUE[12]';
for ($i=0; $i<$anzahl; $i++) {
$slicecat[$i] = $slice[$i]->getValue(11);
$datum[$i] = $slice[$i]->getValue(1);
$titel[$i] = $slice[$i]->getValue(2);
$referent[$i] = $slice[$i]->getValue(3);
$text[$i] = $slice[$i]->getValue(4);
$id[$i] = $slice[$i]->getId();
$rea_slice_id[$i] = $slice[$i]->getSliceId();
/*
getSliceId(): "selbstgestrickte" Funktion, in class.ooarticleslice.inc.php integriert:
function getSliceId() {
return $this->_re_article_slice_id;
}
*/
// alle id's in ein Array packen
array_push($alle_ids, $id[$i]);
} // for ($i=0; $i<$anzahl; $i++)
/*
ersten Sclice festlegen; dessen re_article_slice_id ist nicht in der Liste der id's enthalten
*/
for ($i=0; $i<$anzahl; $i++)
{
if (in_array($rea_slice_id[$i], $alle_ids) != TRUE)
{
$slicecat_sortiert[0] = $slicecat[$i];
$datum_sortiert[0] = $datum[$i];
$titel_sortiert[0] = $titel[$i];
$referent_sortiert[0] = $referent[$i];
$text_sortiert[0] = $text[$i];
$id_sortiert[0] = $id[$i];
} // if
} // for
/*
Reihenfolge der übrigen Slices festlegen
die re_article_slice_id eines Slices ist jeweils die id des Vorgänger-Slices
*/
if ($cat == 'Zahnärzte') {
echo '<h2>Fortbildungen für '.$cat.'</h2><hr class="headline"/>';
for ($counter = 0; $counter < $anzahl; $counter++) {
for ($i=0; $i<$anzahl; $i++)
{
if ($rea_slice_id[$i] == $id_sortiert[$counter-1])
{
$slicecat_sortiert[$counter] = $slicecat[$i];
$datum_sortiert[$counter] = $datum[$i];
$titel_sortiert[$counter] = $titel[$i];
$referent_sortiert[$counter] = $referent[$i];
$text_sortiert[$counter] = $text[$i];
$id_sortiert[$counter] = $id[$i];
} // if
} // for ($i=0; ...
if ($slicecat_sortiert[$counter] == 'Zahnärzte') {
?>
<div class="fortbildung">
<table><tr><td>
<h2><?php echo $datum_sortiert[$counter]; ?></h2>
</td>
<td>
<h2><?php echo $titel_sortiert[$counter]; ?></h2>
<p class="referent"><?php echo $referent_sortiert[$counter]; ?></p>
<?php echo $text_sortiert[$counter]; ?>
</td></tr></table></div>
<?php
}
} // for ($counter = 1; ...
} // if $slicecat_sortiert[ ...
elseif ($cat == 'Therapeuten') {
echo '<h2>Fortbildungen für '.$cat.'</h2><hr class="headline"/>';
for ($counter = 0; $counter < $anzahl; $counter++) {
for ($i=0; $i<$anzahl; $i++)
{
if ($rea_slice_id[$i] == $id_sortiert[$counter-1])
{
$slicecat_sortiert[$counter] = $slicecat[$i];
$datum_sortiert[$counter] = $datum[$i];
$titel_sortiert[$counter] = $titel[$i];
$referent_sortiert[$counter] = $referent[$i];
$text_sortiert[$counter] = $text[$i];
$id_sortiert[$counter] = $id[$i];
} // if
} // for ($i=0; ...
if ($slicecat_sortiert[$counter] == 'Therapeuten') {
?>
<div class="fortbildung">
<table><tr><td>
<h2><?php echo $datum_sortiert[$counter]; ?></h2>
</td>
<td>
<h2><?php echo $titel_sortiert[$counter]; ?></h2>
<p class="referent"><?php echo $referent_sortiert[$counter]; ?></p>
<?php echo $text_sortiert[$counter]; ?>
</td></tr></table></div>
<?php
}
} // for ($counter = 1; ...
} // if $slicecat_sortiert[ ...
?>