Guten Tag zusammen,
ja, ich habe die Suche im Forum benutzt, bin aber leider nicht fündig geworden. Deshalb habe ich mich nun entschlossen, eine Anfrage zu erstellen. Mein Problem ist folgendes:
Ich benutze das Modul News, um Artikel einer Kategorie anzeigen zu lassen. Nun möchte ich jedoch, dass die ersten 5 Artikel mit einem bestimmten Template verbunden werden, alle anderen dementsprechend mit einem zweiten. Das ganze soll den Effekt haben, dass die neusten Einträge mit Überschrift, Teasertext und Bild angezeigt werden können, die älteren nur mit der Überschrift.
Ich hoffe, ich konnte mein Anliegen verständlich machen.
Vielen Dank im Voraus.
funktionaer
Artikelliste mit zweigeteilter Ausgabe
-
- Beiträge: 4
- Registriert: Do 12. Jul 2007, 08:28
- Kontaktdaten:
Du brauchst im Prinzip nur zwei Container auf der Seite. Im ersten hast du eine Artikelliste, die die ersten 5 Artikel im ausführlichen Modul-Template anzeigt; und im zweiten zeigst du die anderen Artikel im spartanischeren Modul-Template an...
Klingt nicht sonderlich aufwändig...
Klingt nicht sonderlich aufwändig...
"Es wird keine Handlung geben, keine Geschichte mit ihrer Versprechung auf einen Anfang und ihrer Hoffnung auf ein Ende." (Andrzej Stasiuk)
-
- Beiträge: 4
- Registriert: Do 12. Jul 2007, 08:28
- Kontaktdaten:
Hallo MichFress,
danke für deine schnelle Antwort.
Soweit bin ich mit meinen Überlegungen auch gekommen, nur dabei stellt sich mir ein Problem in den Weg. Ich müsste dann doch im Modul News definieren, dass:
1. die Artikel absteigend nach deren Veröffentlichungsdatum sortiert werden (sollte nicht das eigentliche Problem sein)
2. die ersten 5 mit dem ausführlichen Template verwendet werden und
3. alle nachfolgenden mit dem "spartanischen".
Ansonsten bekomme ich doch Redundanzen, oder?
danke für deine schnelle Antwort.
Soweit bin ich mit meinen Überlegungen auch gekommen, nur dabei stellt sich mir ein Problem in den Weg. Ich müsste dann doch im Modul News definieren, dass:
1. die Artikel absteigend nach deren Veröffentlichungsdatum sortiert werden (sollte nicht das eigentliche Problem sein)
2. die ersten 5 mit dem ausführlichen Template verwendet werden und
3. alle nachfolgenden mit dem "spartanischen".
Ansonsten bekomme ich doch Redundanzen, oder?
um das problem etwas universell zu lösen, müsstest du in der lage sein, deiner artikelliste zwei masken anzugeben: 1 für die ersten fünf sowie 1 für die folgenden einträge.
ist im prinzip keine grosse sache.
ist im prinzip keine grosse sache.
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
-
- Beiträge: 4
- Registriert: Do 12. Jul 2007, 08:28
- Kontaktdaten:
Hallo nochmals,
ich habe versucht, im Output des Moduls die Trennung der Artikel zu vollziehen. Anbei der Output:
Die Variable $ganze_artikel soll angeben, wieviele Artikel mit dem Template teaser_standard.html angezeigt werden sollen, alle anderen sollten mit teaser_sparta.html angezeigt werden.
Zumindest funktioniert der erste Teil, nur drei Artikel werden ausführlich dargestellt, dann jedoch kommt der Wurm. Es werden zwar auch Artikel mit dem spartanischen Template angezeigt, doch wiederum die 3 gleichen. Könntet ihr mir vielleicht auf die Sprünge helfen, wo der Fehler liegt?
Danke,
funktionaer
ich habe versucht, im Output des Moduls die Trennung der Artikel zu vollziehen. Anbei der Output:
Code: Alles auswählen
<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname : News
* Author(s) : Andreas Lindner, 4fb
* Copyright : Contenido - four for business, Andreas Lindner
* Created : 12.08.2005
************************************************/
cInclude('classes', 'class.article.php');
cInclude('includes', 'functions.api.string.php');
cInclude('includes', 'functions.api.images.php');
if (!is_object($tpl)) {
$tpl = new Template;
}
if (!is_object($tpl2)) {
$tpl2 = new Template;
}
$tpl->reset();
$tpl2->reset();
$sql = "SELECT
htmlpath, frontendpath
FROM
".$cfg["tab"]["clients"]."
WHERE
idclient = ".$client." ";
$db->query($sql);
if ($db->next_record()) {
$htmlpath = $db->f('htmlpath');
$frontendpath = $db->f('frontendpath');
}
// selected category
$selcat = "CMS_VALUE[1]";
$template1 = "teaser-standard.html";
$template2 = "teaser-sparta.html";
// anzahl der zeichen text
$mxtext = 190;
$limit = "CMS_VALUE[15]";
$cms_sort_direction = "CMS_VALUE[16]";
if ($cms_sort_direction == '') {
$cms_sort_direction = 'desc';
}
if ("CMS_VALUE[3]" == "sortdate") {
$order = 'lastmodified';
} else {
$order = 'artsort';
}
if ("CMS_VALUE[17]" != '') {
$with_start = true;
} else {
$with_start = false;
}
$newsheadline = "CMS_VALUE[4]";
$ganze_artikel = 3;
$tpl->set('s', 'TITLE', $newsheadline);
if (strlen($selcat) > 0 AND $selcat != '0') {
$options = array ('idcat' => $selcat, "start" => $with_start, "order" => $order, "direction" => $cms_sort_direction);
$list = new ArticleCollection($options);
$count = $list->count;
if ($count > 0) {
if (is_numeric($limit) AND strlen($limit) > 0) {
if ($limit < $list->count) {
$limit_art = $limit;
} else {
$limit_art = $list->count;
}
} else {
$limit_art = $list->count;
}
//if ($limit_art > $ganze_artikel) {
/* $ganze_artikel = $limit_art;
} else {
$ganze_artikel = $ganze_artikel;
}*/
for ($i = 0; $i < $ganze_artikel; $i ++) {
$article = $list->nextArticle();
$article_id = $article->getField('idart');
$headline = strip_tags($article->getContent('CMS_HTMLHEAD', 1));
$headline = str_replace($replace, " ", $headline);
/* $subheadline = strip_tags($article->getContent('CMS_HTMLHEAD', 2));
$subheadline = str_replace($replace, " ", $subheadline);*/
$teaserheadline = /*$subheadline." - ".*/
$headline;
$href = $sess->url("front_content.php?idcat=$selcat&idart=$article_id");
$teasertext = $article->getField('summary');
$teaser_tag = date('d', strtotime($article->getField('lastmodified')));
$teaser_monat = date('m', strtotime($article->getField('lastmodified')));
$teaser_jahr = date('Y', strtotime($article->getField('lastmodified')));
switch ($teaser_monat):
case 01:
$teaser_monat = 'JAN';
break;
case 02:
$teaser_monat = 'FEB';
break;
case 03:
$teaser_monat = 'MAR';
break;
case 04:
$teaser_monat = 'APR';
break;
case 05:
$teaser_monat = 'MAI';
break;
case 06:
$teaser_monat = 'JUN';
break;
case 07:
$teaser_monat = 'JUL';
break;
case 08:
$teaser_monat = 'AUG';
break;
case 09:
$teaser_monat = 'SEP';
break;
case 10:
$teaser_monat = 'OKT';
break;
case 11:
$teaser_monat = 'NOV';
break;
case 12:
$teaser_monat = 'DEZ';
break;
endswitch;
if (strlen(trim($teasertext)) == 0) {
$teasertext = strip_tags($article->getContent('CMS_HTML', 1));
$teasertext2 = $teasertext;
$teasertext = capiStrTrimAfterWord($teasertext, $mxtext);
if ($teasertext!=$teasertext2) {
$teasertext.= '...';
}
} // end if
$teasertext = $teasertext." ";
$tpl->set('d', 'HEADLINE', $teaserheadline);
$tpl->set('d', 'TEXT', $teasertext);
$tpl->set('d', 'HREF', $href);
$tpl->set('d', 'IMG', $teaser_img);
$tpl->set('d', 'TAG', $teaser_tag);
$tpl->set('d', 'MONAT', $teaser_monat);
$tpl->set('d', 'JAHR', $teaser_jahr);
$tpl->set('d', 'MORE', mi18n("[mehr]"));
$tpl->next();
} // end for
$tpl->generate('templates/'.$template1);
// }
for ($i = $ganze_artikel; $i < $limit_art; $i ++) {
$article = $list->nextArticle();
$article_id = $article->getField('idart');
$headline = strip_tags($article->getContent('CMS_HTMLHEAD', 1));
$headline = str_replace($replace, " ", $headline);
/* $subheadline = strip_tags($article->getContent('CMS_HTMLHEAD', 2));
$subheadline = str_replace($replace, " ", $subheadline);*/
$teaserheadline = /*$subheadline." - ".*/
$headline;
$href = $sess->url("front_content.php?idcat=$selcat&idart=$article_id");
$teasertext = $article->getField('summary');
if (strlen(trim($teasertext)) == 0) {
$teasertext = strip_tags($article->getContent('CMS_HTML', 1));
$teasertext2 = $teasertext;
$teasertext = capiStrTrimAfterWord($teasertext, $mxtext);
if ($teasertext!=$teasertext2) {
$teasertext.= '...';
}
} // end if
$teasertext = $teasertext." ";
$tpl2->set('d', 'HEADLINE', $teaserheadline);
$tpl2->set('d', 'TEXT', $teasertext);
$tpl2->set('d', 'HREF', $href);
$tpl2->set('d', 'MORE', mi18n("[mehr]"));
$tpl2->next();
} // end for
$tpl->generate('templates/'.$template2);
}
}
?>
Zumindest funktioniert der erste Teil, nur drei Artikel werden ausführlich dargestellt, dann jedoch kommt der Wurm. Es werden zwar auch Artikel mit dem spartanischen Template angezeigt, doch wiederum die 3 gleichen. Könntet ihr mir vielleicht auf die Sprünge helfen, wo der Fehler liegt?
Danke,
funktionaer