ich habe mir mal eine Artikelliste (die ja sooooo selten gefragt sind

Ich glaube es ist eine die im Original von HerrB erstellt wurde. Ich kann es nicht genau sagen, weil kein "Kopf" dabei war...
Aber nun zu den Änderungen:
Ich habe die Ausgabe von Tabellen in die Ausgabe von DIV-Layern geändert.
Zusätzlich wird zu jedem Artikel das UpDate-Datum ausgegeben...
Was ich noch machen will:
Thumbnails und Autor zu jedem Artikel anzeigen lassen...
Ich weiss - es gibt tausende von Modulen dieser Art bereits hier... Aber für mich war / ist es eine gute Übung Contenido / PHP besser zu verstehen...
Also nun kommt der Code.
INPUT:
Code: Alles auswählen
/********************
* Artikelliste mit CSS und DIV-Layern
* Ausgabe von "Aktualisierungsdatum"
* Original: Ich glaube ist von HerrB... es war halt kein Kopf vorhanden ;-)
*
* Modified : 30-08-2005 Jörg Zimmermann
* toDo: Thumbnail Ausgabe zum Artikel...
*
*********************/
$selected = "CMS_VALUE[0]"; // selected category
echo ' <table cellspacing="0" cellpadding="10" border="0">',chr(10);
echo ' <tr valign="top">',chr(10);
echo ' <td class="text_medium">Kategorie wählen:</td>',chr(10);
echo ' <td class="text_medium"><select name="CMS_VAR[0]">',chr(10);
if ($selected != "0" && $selected != "") {
echo ' <option value="0">--- kein ---</option>',chr(10);
} else {
echo ' <option selected="selected" value="0">--- kein ---</option>',chr(10);
}
// fetch all categorys
$query = "SELECT A.idcat, A.level, C.name FROM ".$cfg["tab"]["cat_tree"]." AS A, ";
$query .= $cfg["tab"]["cat"]." AS B, ".$cfg["tab"]["cat_lang"]." AS C WHERE A.idcat=B.idcat ";
$query .= "AND B.idcat=C.idcat AND C.idlang='$lang' AND B.idclient='$client' ";
$query .= "AND C.visible=1 ORDER BY A.idtree";
// execute query
$db->query($query);
// loop result and build the options
while ($db->next_record()) {
$spaces = "|"; // indent spacer
$levels = $db->f("level"); // how many levels
for ($i = 0; $i < $levels; $i++) {
$spaces = $spaces . "--"; // add 2 spaces for every level
}
$spaces .= ">";
if ($selected == $db->f("idcat")) {
// selected category
echo '<option selected="selected" value="'. $db->f("idcat") .'">'. $spaces . $db->f("name") .'</option>',chr(10);
} else {
// category
echo '<option value="'. $db->f("idcat") .'">'. $spaces . $db->f("name") .'</option>',chr(10);
}
}
echo ' </select>',chr(10);
echo ' </td>',chr(10);
echo ' </tr>',chr(10);
echo ' <tr>',chr(10);
echo ' <td class="text_medium">Überschrift</td>',chr(10);
echo ' <td class="text_medium"><input type="text" name="CMS_VAR[2]" value="CMS_VALUE[2]"></td>',chr(10);
echo ' </tr>',chr(10);
echo ' <tr>',chr(10);
echo ' <td class="text_medium">Angezeigte Länge in Zeichen</td>',chr(10);
if (!is_numeric("CMS_VALUE[3]")) {
echo ' <td class="text_medium"><input type="text" name="CMS_VAR[3]" value="50"></td>',chr(10);
} else {
echo ' <td class="text_medium"><input type="text" name="CMS_VAR[3]" value="CMS_VALUE[3]"></td>',chr(10);
}
echo ' </tr>',chr(10);
echo ' <tr>',chr(10);
echo ' <td class="text_medium" style="vertical-align: top;">Sortiert nach:</td>',chr(10);
echo ' <td class="text_medium"><select name="CMS_VAR[4]">',chr(10);
if ("CMS_VALUE[4]" == "" || "CMS_VALUE[4]" == "CATART.idart") {
echo ' <option value="CATART.idart" selected>Artikel-ID</option>',chr(10);
} else {
echo ' <option value="CATART.idart">Artikel-ID</option>',chr(10);
}
if ("CMS_VALUE[4]" == "CONTENT.value") {
echo ' <option value="CONTENT.value" selected>Topic</option>',chr(10);
} else {
echo ' <option value="CONTENT.value">Topic</option>',chr(10);
}
if ("CMS_VALUE[4]" == "ARTLANG.created") {
echo ' <option value="ARTLANG.created" selected>Erstellungsdatum</option>',chr(10);
} else {
echo ' <option value="ARTLANG.created">Erstellungsdatum</option>',chr(10);
}
if ("CMS_VALUE[4]" == "ARTLANG.lastmodified") {
echo ' <option value="ARTLANG.lastmodified" selected>Änderungsdatum</option>',chr(10);
} else {
echo ' <option value="ARTLANG.lastmodified">Änderungssdatum</option>',chr(10);
}
if ("CMS_VALUE[4]" == "ARTLANG.title") {
echo ' <option value="ARTLANG.title" selected>Seitentitel (Backend)</option>',chr(10);
} else {
echo ' <option value="ARTLANG.title">Seitentitel (Backend)</option>',chr(10);
}
if ("CMS_VALUE[4]" == "ARTLANG.pagetitle") {
echo ' <option value="ARTLANG.pagetitle" selected>Seitentitel (Frontend)</option>',chr(10);
} else {
echo ' <option value="ARTLANG.pagetitle">Seitentitel (Frontend)</option>',chr(10);
}
if ("CMS_VALUE[4]" == "ARTLANG.summary") {
echo ' <option value="ARTLANG.summary" selected>Zusammenfassung (Backend)</option>',chr(10);
} else {
echo ' <option value="ARTLANG.summary">Zusammenfassung (Backend)</option>',chr(10);
}
if ("CMS_VALUE[4]" == "ARTLANG.artsort") {
echo ' <option value="ARTLANG.artsort" selected>Sort No.</option>',chr(10);
} else {
echo ' <option value="ARTLANG.artsort">Sort No.</option>',chr(10);
}
echo ' </select><br>',chr(10);
if ("CMS_VALUE[5]" != "DESC") {
echo ' <input type="radio" name="CMS_VAR[5]" value="ASC" checked>Aufsteigend <input type="radio" name="CMS_VAR[5]" value="DESC">Absteigend',chr(10);
} else {
echo ' <input type="radio" name="CMS_VAR[5]" value="ASC">Aufsteigend <input type="radio" name="CMS_VAR[5]" value="DESC" checked>Absteigend',chr(10);
}
echo ' </td>',chr(10);
echo ' </tr>',chr(10);
echo ' <tr>',chr(10);
echo ' <td class="text_medium" style="vertical-align: top;">Startartikel:</td>',chr(10);
if ("CMS_VALUE[6]" != "enabled") {
echo ' <td class="text_medium"><input type="checkbox" name="CMS_VAR[6]" value="enabled">Anzeigen ';
} else {
echo ' <td class="text_medium"><input type="checkbox" name="CMS_VAR[6]" value="enabled" checked>Anzeigen ';
}
if ("CMS_VALUE[7]" != "enabled") {
echo '<input type="checkbox" name="CMS_VAR[7]" value="enabled">An erster Stelle</td>',chr(10);
} else {
echo '<input type="checkbox" name="CMS_VAR[7]" value="enabled" checked>An erster Stelle</td>',chr(10);
}
echo ' </tr>',chr(10);
echo ' <tr>',chr(10);
echo ' <td class="text_medium" style="vertical-align: top;">Topic-Identifikation:</td>',chr(10);
echo ' <td class="text_medium" style="vertical-align: top;">Inhaltstyp: <select name="CMS_VAR[9]">',chr(10);
if (!is_numeric("CMS_VALUE[9]") || !in_array("CMS_VALUE[9]", array("1","2","3","9"))) {
echo ' <option value="1" selected>CMS_HTMLHEAD</option>',chr(10);
} else {
echo ' <option value="1">CMS_HTMLHEAD</option>',chr(10);
}
if ("CMS_VALUE[9]" == "2") {
echo ' <option value="2" selected>CMS_HTML</option>',chr(10);
} else {
echo ' <option value="2">CMS_HTML</option>',chr(10);
}
if ("CMS_VALUE[9]" == "3") {
echo ' <option value="3" selected>CMS_TEXT</option>',chr(10);
} else {
echo ' <option value="3">CMS_TEXT</option>',chr(10);
}
if ("CMS_VALUE[9]" == "9") {
echo ' <option value="9" selected>CMS_HEAD</option>',chr(10);
} else {
echo ' <option value="9">CMS_HEAD</option>',chr(10);
}
echo ' </select><br>',chr(10);
if (!is_numeric("CMS_VALUE[8]")) {
echo ' Typ-Nummer (z.B. 3 bei CMS_HTML[3]): <input type="text" name="CMS_VAR[8]" length="5" maxlength="10" value="1">',chr(10);
} else {
echo ' Typ-Nummer (z.B. 3 bei CMS_HTML[3]): <input type="text" name="CMS_VAR[8]" length="5" maxlength="10" value="CMS_VALUE[8]">',chr(10);
}
echo ' </td>',chr(10);
echo ' </tr>',chr(10);
echo ' <tr>',chr(10);
echo ' <td class="text_medium">Artikelanzahl (0 = keine Begrenzung):</td>',chr(10);
if (!is_numeric("CMS_VALUE[10]")) {
echo ' <td class="text_medium"><input type="text" name="CMS_VAR[10]" value="0"></td>',chr(10);
} else {
echo ' <td class="text_medium"><input type="text" name="CMS_VAR[10]" value="CMS_VALUE[10]"></td>',chr(10);
}
echo ' </tr>',chr(10);
echo ' </table>',chr(10);
OUTPUT:
Code: Alles auswählen
<?php
/********************
* Artikelliste mit CSS und DIV-Layern
* Ausgabe von "Aktualisierungsdatum"
* Original: Ich glaube ist von HerrB... es war halt kein Kopf vorhanden ;-)
*
* Modified : 30-08-2005 Jörg Zimmermann
* toDo: Thumbnail Ausgabe zum Artikel...
*
*********************/
<?php
$selCat = "CMS_VALUE[0]"; // selected category
$maxChar = "CMS_VALUE[3]"; // Max. shown topic length
$str = "CMS_VALUE[2]";
if (!is_numeric($maxChar) || $maxChar < 1) {
$maxChar = "50";
}
if(is_numeric($selCat) && $selCat != "0") {
// select all articles in category without start article
$query = "SELECT CONTENT.value AS headline, ARTLANG.idart AS id, ARTLANG.lastmodified AS lastmodified, ARTLANG.modifiedby AS modifiedby FROM ";
$query .= $cfg["tab"]["cat_art"]." AS CATART, ";
$query .= $cfg["tab"]["art_lang"]." AS ARTLANG, ";
$query .= $cfg["tab"]["content"]." AS CONTENT ";
$query .= "WHERE CATART.idcat = '$selCat' ";
$query .= "AND ARTLANG.idart != '$idart' ";
if ("CMS_VALUE[6]" != "enabled") {
$query .= "AND CATART.is_start = '0' ";
}
$query .= "AND CONTENT.idartlang = ARTLANG.idartlang ";
// Content-Type-Number
if (!is_numeric("CMS_VALUE[8]")) {
$query .= "AND CONTENT.typeid = '1' ";
} else {
$query .= "AND CONTENT.typeid = 'CMS_VALUE[8]' ";
}
// Content-Type
if (!is_numeric("CMS_VALUE[9]")) {
$query .= "AND CONTENT.idtype = '1' ";
} else {
$query .= "AND CONTENT.idtype = 'CMS_VALUE[9]' ";
}
$query .= "AND ARTLANG.idart = CATART.idart AND ARTLANG.idlang = '$lang' ";
$query .= "AND ARTLANG.online = '1' ORDER BY ";
if ("CMS_VALUE[6]" == "enabled" && "CMS_VALUE[7]" == "enabled") { // Startartikel an erster Stelle
$query .= "CATART.is_start DESC, ";
}
// Sort by
if ("CMS_VALUE[4]" == "") {
$query .= "CATART.idart ";
} else {
$query .= "CMS_VALUE[4] ";
}
// ASC/DESC
if ("CMS_VALUE[5]" == "") {
$query .= "DESC ";
} else {
$query .= "CMS_VALUE[5] ";
}
// LIMIT
if (is_numeric("CMS_VALUE[10]") && "CMS_VALUE[10]" > 0) {
$query .= "LIMIT 0, CMS_VALUE[10]";
}
// execute query
$db->query($query);
if ($db->num_rows() > 0) {
echo '<div class="article"><p class="nachricht">CMS_VALUE[2]<br>';
while ($db->next_record()) {
$headline = strip_tags ($headline);
$headline = urldecode($db->f("headline"));
$pos1 = strpos ($headline, "src");
$pos2 = strpos ($headline, "\"",$pos1+6);
$img = substr($headline,$pos1,$pos2-$pos1+1);
$erstellt = date("d.m.y",strtotime($db->f("lastmodified")));
$von = $db->f("modifiedby");
$headline = strip_tags ($headline);
if (strlen($headline) > $maxChar) {
$headline = substr($headline, 0, $maxChar);
$headline .= '...';
}
$link = $sess->url("front_content.php?client=$client&lang=$lang&idcat=$selCat&idart=".$db->f("id")."&m=$m&s=$s");
echo '<span class="text"><a style="text-decoration:none;" href="' .$link. '"><img style="float:left; padding:5px;"' .$img. ' height="75px" border="0" alt="Artiekvoransicht"></a>' .capiStrTrimAfterWord ($headline, $maxChar). '...<br>';
echo '<br>» <a style="font-size:10px;" href="'.$link.'">Diesen Artikel weiterlesen</a></span></p>';
echo '<p class="footer">Artikel aktualisiert: ' .$erstellt. ' von ' .$von. '</p>';
}
unset($headline);
echo '</div>';
} // end while
} // end if
?>
Code: Alles auswählen
/*Klasse Artikelvoransicht*/
.article {
width:290px;
height:145px;
font-size:10px;
background-color:#f5f5f5;
border:1px dashed #cccccc;
margin:2px 3px 5px 3px;
padding:3px;
float:right;
}
p.nachricht{
font-size:12px;
font-weight:bold;
color:#b50000;
}
span.text{
font-weight:normal;
font-size:10px;
color:#000;
}
p.footer{
font-style:italic;
font-size:10px;
text-align:left;
}
Falls sich jemand das einmal ansehen will:
http://www.test.drk-koeln.de/kvkoeln/fr ... ?idcat=139
Edit 18.05.05. 15:00Uhr:
Jetzt wird auch der Autor des Artikels ausgelesen und als "Fußnote" angezeigt...
Edit 19.05.2005.15:43 Uhr:
So nun habe ich auch noch alle Ausgaben der Art-List über CSS gesteuert.
Das Stylesheet für die "Artikelvoransicht" ist weiter oben als Code angegeben...
Klasse "article": steuert die Größe und Umrahmung sowie die Hintergrundfarbe der "Artikelbox"
Klasse "p.nachricht": steuert Schriftfarbe und -größe der Artikelüberschrift...
Klasse "span.text": steuert das aussehen des "anreissenden" Textes des Artikels...
Klasse "footer": steuert die Ausgabe der Fußnote (Aktualisierung / Autor)
Bei der Ausgabe von Überschrift und Text innerhalb der Artikelbox arbeite ich mit "span-Tag" weil ich aus Platzgründen nich noch einen zweiten Absatz einfügen wollte aber trotzdem eine unterschiedliche Darstellung von Text und Headline haben will!!!
Sobald ich das mit den Bildern noch gelöst habe, werde ich das hier natürlich auch noch posten...
Viel Spaß damit!
<EDIT:30-08-2005>
Das Modul ist jetzt fertisch....
Der Code in diesem Thread ist aktualisiert.... und bei mir funzt alles gaaaanz wunderbar....
Viel Spaß damit.
Gruß
Jörg