Jetzt stehe ich doch vollkommen auf dem Schlauch.
Mein Modul liest alle Artikel einer Kategorie aus und gibt sie immer in Paketen aus, zusammen mit einem Link zu dem nächsten Fünferpack.
Ich habe versucht zu verstehen was genau Yrewrite an dem Modul stören könnte, aber ich sehe es einfach nicht.
Das Modul funktioniert einwandfrei:
Code: Alles auswählen
<?php
// Nur im Frontend
if (!rex::isBackend()):
if(!function_exists('sortArticlesByCreateDate'))
{
// Sortierfunktion
function sortArticlesByCreateDate( $artA, $artB) {
$createA = $artA->getValue('createdate');
$createB = $artB->getValue('createdate');
if ( $createA == $createB) {
return 0;
}
return $createA > $createB ? -1 : 1;
}
}
$start = !empty($_GET['start']) ? (int) $_GET['start'] : 0; // Startitem
$offset = 5; // 5 Items pro Seite
$cats = array( REX_CATEGORY_ID); // alle Kategorien die Du "indizieren" willst
$articles = array();
foreach ( $cats as $catId) {
$cat = rex_category::get( $catId);
// CatIds die nicht funktionieren aussortieren
if( $cat === null) {
continue;
}
$cat_articles = $cat->getArticles( true);
foreach ( $cat_articles as $ooarticle) {
// keine Startartikel anzeigen
if ( $ooarticle->isStartArticle()) {
continue;
}
// Damit keine Endlosschleife passiert, den Artikel der die Pagination setzt ?berspringen
if ( $ooarticle->getId() == REX_ARTICLE_ID) {
continue;
}
$articles[] = $ooarticle;
}
}
$articles_length = count( $articles);
// Sortieren nach Erstellungsdatum
if ( $articles_length > 0) {
usort( $articles, "sortArticlesByCreateDate");
}
$article_list = array_slice( $articles, $start, $offset);
foreach ( $article_list as $ooarticle) {
$artId = $ooarticle->getId();
$article = new rex_article_content( $artId);echo '<br>';
echo $article->getArticle();
echo '<br><br><br><br><br><br>';
}
$prevStart = $start - $offset;
if ( $prevStart < 0)
{
$prevStart = '';
}
$nextStart = $start + $offset;
if ( $nextStart >= $articles_length)
{
$nextStart = '';
}
// Vorherige Seite Link
if ( $prevStart !== '') {
echo '<a href="'. rex_getUrl( '', '', array('start'=>$prevStart)).'"> < back </a>';
}
// N?chste Seite
if ( $nextStart !== '') {
echo '<a href="'. rex_getUrl( '', '', array('start'=>$nextStart)).'"> more > </a>';
}
endif;
?>
Wie Yrewrite diesen Fall überhaupt regeln kann ist mir auch schleierhaft. Aber warum die Ausgabe des Templates unterdrückt wird ebenfalls.