Ich hätte da auch noch eine kleine Variante der Ursprungsmoduls anzubieten. So läuft es bei mir, und nur dafür habe ich es gemacht. Ist also recht speziell im Layout, und CSS-Klassen. Ist auch keine große Veränderung, aber vielleicht hilft es ja jemandem irgendwie.
Keine Garantie, keine Gewähr für irgendwas!
Das Modul holt Überschrift 1 und 2, datum, Autor (wenn gewünscht; im Code z.Zt. auskommentiert ) und Teasertext (In der Länge einstellbar). Falls auf einer Artikel-Seite mehrere Artikel sind, wird nur der Oberste auf der Seite ausgelesen.
Falls dieser kein reiner Text ist (idtype=3), sondern z.B. WYSIWYG-Text wird der Teaser-Text mit "..." belegt. Ich hab keine Ahnung, wie ich WYSIWYG-Text umformatieren soll, so dass er als reiner Text ausgegeben wird.

Wer gemischte Text-Arten auf seinen Seiten hat, müsste also Zuoberst ein reines Text-Modul verwenden. Oder halt ein anderes Artikel-Modul.
Bilder werden nicht gelesen.
Mein Projekt läuft noch lokal, ich kann also keinen Link zum Angucken anbieten.
Code: Alles auswählen
/***********************************************
* CONTENIDO MODUL - INPUT
*
* Modulname : Artikelliste
* Author(s) : 4fb - Jan Lengowski, Jose Rodriguez
* Copyright : Contenido - four for business, Jose Rodriguez
* Created : 15-08-2002
* Modified : 21-09-2002
*
* Modified by : D. Wagner 01-11-2002
* Modified by : M.Eisenhardt [Eisi] m.e@gmx.net 07-01-2003
* Gibt Artikelliste aus, mit Headline1+2(Summary), Date,
* Autor und Teaser-Text
************************************************/
// selected category
$selected = "CMS_VALUE[0]";
echo "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\">
<tr valign=\"top\">
<td>News-Verzeichnis:</td>
<td>
<select name=\"CMS_VAR[0]\">";
// fetch all categorys
$query = "SELECT A.idcat, A.level, C.name FROM $cfgTab_cat_tree AS A, ".
"$cfgTab_cat AS B, $cfgTab_cat_lang AS C WHERE A.idcat=B.idcat ".
"AND B.idcat=C.idcat AND C.idlang='$lang' AND B.idclient='$client' ".
"ORDER BY A.idtree desc";
// execute query
$db->query($query);
// loop result and build the options
while ($db->next_record()) {
// indent spacer
$spaces = "";
// how many levels
$levels = $db->f("level");
for ($i = 0; $i > $levels; $i ++) {
// add 2 spaces for every level
$spaces = $spaces . " ";
} // end for
if ($selected == $db->f("idcat")) {
// selected category
echo "<option selected=\"selected\" value=\"". $db->f("idcat") ."\">". $spaces . $db->f("name") ."</option>";
} else {
// category
echo "<option value=\"". $db->f("idcat") ."\">". $spaces . $db->f("name") ."</option>";
} // end if
} // end while
echo " </select>
</td>
</tr>
<tr>
<td>Anzahl Artikel:</td>";
if("CMS_VALUE[1]"!=0){
echo"<td><input type=\"text\" name=\"CMS_VAR[1]\" value=\"CMS_VALUE[1]\"></td>";
}
else{
echo"<td><input type=\"text\" name=\"CMS_VAR[1]\" value=\"3\"></td>";
}
echo"
</tr>
<tr>
<td>Untertitel (Anzahl Zeichen)</td>";
if("CMS_VALUE[3]"!=0){
echo"<td><input type=\"text\" name=\"CMS_VAR[3]\" value=\"CMS_VALUE[3]\"></td>";
}
else{
echo"<td><input type=\"text\" name=\"CMS_VAR[3]\" value=\"50\"></td>";
}
// Eisi:
echo"
</tr>
<tr>
<td>Teaser (Anzahl Zeichen):</td>";
if("CMS_VALUE[4]" != 0) {
echo"<td><input type=\"text\" name=\"CMS_VAR[4]\" value=\"CMS_VALUE[4]\"></td>";
}
else{
echo"<td><input type=\"text\" name=\"CMS_VAR[4]\" value=\"200\"></td>";
}
//
echo"
</tr>
</table>";
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname : Artikelliste
* Author(s) : 4fb - Jan Lengowski, Jose Rodriguez
* Copyright : Contenido - four for business, Jose Rodriguez
* Created : 15-08-2002
* Modified : 21-09-2002
*
* Modified by : D. Wagner 01-11-2002
* Modified by : M.Eisenhardt [Eisi] m.e@gmx.net 07-01-2003
* Gibt Artikelliste aus, mit Headline1+2(Summary), Date,
* Autor und Teaser-Text
************************************************/
// selected category
$selcat = "CMS_VALUE[0]";
// anzahl articles
$showart= "CMS_VALUE[1]";
// anzahl der zeichen h1
$mxh = "CMS_VALUE[3]";
// Eisi: Anzahl der Zeichen Teaser
if ("CMS_VALUE[4]" !="") {
$teasermax = "CMS_VALUE[4]";
} else { $teasermax = "200";
}
// select all articles in category widthout start article
$query = "SELECT ARTLANG.idside, ARTLANG.idsidelang FROM $cfgTab_cat_side AS CATART, $cfgTab_side_lang AS ARTLANG ".
"WHERE CATART.idcat = '$selcat' AND ARTLANG.idside = CATART.idside AND ARTLANG.idlang = '$lang' AND ".
"ARTLANG.online = '1' ORDER BY CATART.idside DESC ";
// execute query
$db->query($query);
unset($articleID);
unset($linkID);
// any news?
$newscounter = $db->num_rows($db);
if ($newscounter > 0){
// session register des Startwertes für den Wiederbesuch der Seite
// $startwert_news[$client] als Array,
// um dieses Tool bei mehreren clients
// innerhalb einer Site nutzen zu können
$sess->register("startwert_news");
//wenn per link ($startwert_url) ein Startwert kommt
if(isset($startwert_url))
$startwert_news[$client]=$startwert_url;
//wenn weniger Artikel da sind, als gezeigt werden sollen
if ($startwert_news[$client]<$showart)
$startwert_news[$client]=0;
// start html-output
/**
echo "<table width=\"100%\" cellspacing=\"0\" cellpadding=\"3\" cellspacing=\"1\" border=\"0\">
<tr valign=\"middle\">
<td align=\"left\" class=\"text_headline2\" valign=\"top\" colspan=\"2\"><b>Artikelliste:</b> </td>
</tr>";
**/
echo "<table width=\"100%\" cellspacing=\"1\" cellpadding=\"3\" border=\"0\" class=\"forumline\">
<tr valign=\"middle\">";
//wenn die Weiterschaltung benötigt wird
if($newscounter>$showart){
$link = $PHP_SELF."?client=$client&lang=$lang&idcat=$idcat&idside=$idside";
if($startwert_news[$client]>0){
$summe=$startwert_news[$client] - $showart;
if ($startwert_news[$client]<$showart)
$summe=0;
echo"<td align = \"left\" width=\"50%\" class=\"\">";
echo "<a href=\"".$link."&startwert_url=".$summe."\" class=\"link_main\"><img src=\"" . $cfgClient[$client]["frontendpath"]["img"] . "/layout_arrow_back.gif\" align=\"middle\" border=\"0\" width=\"21\" height=\"21\"> neuere Meldungen</a><br />
</td>";
}
if($startwert_news[$client]<$newscounter-$showart){
$summe=$startwert_news[$client]+$showart;
echo"<td align = \"right\" width=\"50%\" class=\"\">";
echo "<a href=\"$link&startwert_url=".$summe."\" class=\"link_main\">ältere Meldungen <img src=\"" . $cfgClient[$client]["frontendpath"]["img"] . "/layout_arrow_right.gif\" align=\"middle\" border=\"0\" width=\"21\" height=\"21\"></a><br />
</td>";
}
echo"</tr>";
}
echo" <tr valign=\"middle\">
<td class=\"catHead\" colspan=\"2\" height=\28\"><span class=\"cattitle\">VamosNews:</span></td>
</tr>";
// get id's of sub articles
while ($db->next_record()) {
$articleID[] = $db->f("idsidelang");
$linkID[] = $db->f("idside");
} // end while
// loop through subarticles
if($newscounter >= $showart+$startwert_news[$client])$i_max=$showart+$startwert_news[$client];
if($newscounter < $showart+$startwert_news[$client])$i_max=$newscounter;
for ($i=$startwert_news[$client]; $i<$i_max;$i++){
// select all CMS variables of the article
// $query = "SELECT * FROM $cfgTab_content WHERE idsidelang = '$value' ORDER BY typeid";
$query = "SELECT title,summary,created,author FROM $cfgTab_side_lang WHERE idsidelang = '$articleID[$i]'";
// execute query
$db->query($query);
// link
//// $link = $sess->url("front_content.php?client=$client&lang=$lang&idcat=$selcat&idside=$linkID[$i]&m=$m&s=$s");
$link = $sess->url("front_content.php?client=$client&lang=$lang&idcat=$selcat&idside=$linkID[$i]");
// loop through result and extraxt data
while ($db->next_record()) {
// data type
$headline[] = $db->f("title");
$created= date("d.m.y",strtotime($db->f("created")));
$summary = $db->f("summary");
$author = $db->f("author");
$len = strlen($summary);
// cut summary if too long
if ($len > $mxh ) {
$summary = substr($summary,0,$mxh);
$summary .= " ...";
} // end if
// Get Teaser-Text
$query = "SELECT value,idtype FROM $cfgTab_content WHERE idsidelang = '$articleID[$i]'";
// execute query
$db->query($query);
// loop through result and extraxt data
while ($db->next_record()) { // inner while
// data type
$type = $db->f("idtype");
if ($teaser == "") {
if ($type == 3) { // pure text
$teaser = $db->f("value");
// cut Teaser if too long
$len = strlen($teaser);
if ($len > $teasermax) {
$teaser = substr($teaser,0,$teasermax);
$teaser .= "...";
}
}
else {
if ($type == 2) { // wysiwyg
$teaser = "...";
}
} // end if
} // end if
} // end inner while
} // end while
// HTML template for one element
echo " <tr>
<td class=\"row1\" width=\"100%\" colspan=\"2\" style=\"padding-left: 5px; padding-top: 2px;\">
<span class=\"text_headline2\">$headline[0]</span>
<span class=\"text_main\"> ($created)<br /></span>";
// <span class=\"text_main\"> - $author<br />";
if($summary!="") echo "<span class=\"text_main\">$summary<br /></span>";
//Teaser
echo"<span class=\"text_main\">$teaser<br/></span>";
echo"<a href=\"$link\" class=\"link_main\"><img src=\"" . $cfgClient[$client]["frontendpath"]["img"] . "/layout_arrow_link.gif\" border=\"0\" align=\"middle\" width=\"12\" height=\"12\"> mehr</a>
<br />
</td>
</tr>";
unset($headline);
unset($summary);
unset($created);
unset($author);
unset($teaser);
} // end foreach
echo "<tr>
<td><br /></td>
</tr>
</table>";
} // end any news?