Mit den Einstellungen
kann man z.B. immer den aktuellsten Artikel jeder gewählten Kategorie anzeigen.Sortiert nach: Änderungsdatum
Artikelanzahl: 1
Das Ganze ist noch recht ungetestet und soll mehr als Vorlage dienen - es fehlt z.B. die Anzeige, aus welcher Kategorie der Artikel stammt - wenn sich das jemand wünscht...
Auch wenn es relativ ungestet ist, nehme ich gerne Feedback und Fehlermeldungen entgegen. Viel Erfolg!
Beschreibung:
Code: Alles auswählen
Module: Article per category V0.9
Contenido-Version: V4.4.x only
HerrB, 26.05.2005
Code: Alles auswählen
$strSelCats = "CMS_VALUE[0]";
// echo ' <table cellspacing="0" cellpadding="10" border="0">',chr(10);
echo ' <table cellspacing="0" cellpadding="5" border="0" width="100%">',chr(10);
echo ' <tr valign="top">',chr(10);
echo ' <td class="text_medium">Kategorien wählen:</td>',chr(10);
// Trick: To save multiple selections in <select>-Element, add some JS which saves the
// selection, comma separated in a hidden input field on change.
echo ' <td class="text_medium"><script type="text/javascript"><!--',chr(10);
echo ' function fncUpdateSel() {',chr(10);
echo ' var strSel = "";',chr(10);
echo ' for(i=0; i<document.forms[0].cbxCatSel.length; i++) {', chr(10);
echo ' if(document.forms[0].cbxCatSel.options[i].selected == true) {',chr(10);
echo ' if (strSel != "")',chr(10);
echo ' strSel = strSel + ",";',chr(10);
echo ' strSel = strSel + document.forms[0].cbxCatSel.options[i].value;',chr(10);
echo ' }',chr(10);
echo ' }',chr(10);
echo ' document.forms[0].elements["CMS_VAR[0]"].value = strSel;',chr(10);
echo ' }',chr(10);
echo ' //--></script>',chr(10);
echo ' <select size="5" name="cbxCatSel" onChange="fncUpdateSel()" multiple>',chr(10);
$arrSelCats = explode(",", $strSelCats);
$sql = "SELECT * FROM ".$cfg["tab"]["cat_tree"]." AS a,".$cfg["tab"]["cat_lang"]." AS b,
".$cfg["tab"]["cat"]." AS c WHERE a.idcat = b.idcat AND c.idcat = a.idcat AND
c.idclient = '".$client."' AND b.idlang = '".$lang."' ORDER BY a.idtree";
$db->query($sql);
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 .= ">";
/* $spaces = "";
for ($i=0; $i<$db->f("level"); $i++) {
$spaces .= " ";
} */
if (in_array ($db->f("idcat"),$arrSelCats)) {
echo ' <option style="font-weight: bold; color: #666666; background-color: #eeeeee;" value="'.$db->f("idcat").'" selected>'.$spaces.' > '.$db->f("name").'</option>',chr(10);
} else {
echo ' <option style="font-weight: bold; color: #666666; background-color: #eeeeee;" value="'.$db->f("idcat").'">'.$spaces.' > '.$db->f("name").'</option>',chr(10);
}
}
echo ' </select><input type="hidden" name="CMS_VAR[0]" value="' . $strSelCats . '">',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);
Code: Alles auswählen
<?php
$strSelCats = "CMS_VALUE[0]"; // selected categories
$maxChar = "CMS_VALUE[3]"; // Max. shown topic length
if (!is_numeric($maxChar) || $maxChar < 1) {
$maxChar = "50";
}
if($strSelCats != "") {
$arrSelCats = explode(",", $strSelCats);
// Table header
echo '<table width="165" border="0" cellspacing="0" cellpadding="0">',chr(10);
echo '<tr><td height="30" colspan="2" ></td></tr>',chr(10);
echo '<tr><td height="21" width="22" style="border: 0px; border-top:1px; border-bottom:1px; border-color: #F7C473; border-style: solid; background-color: #FCF2D5"><img src="images/wuerfel.gif" width="22" height="21" border="0"></td>',chr(10);
echo '<td width="143" style="border: 1px; border-left:0px; border-color: #F7C473; border-style: dashed; background-color: #FCF2D5; padding-left:10px" class="punkte">CMS_VALUE[2]</td></tr>',chr(10);
foreach ($arrSelCats as $strCat) {
// select all articles in category
$query = "SELECT CONTENT.value AS headline, ARTLANG.idart AS id 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 = '$strCat' ";
if ("CMS_VALUE[6]" != "enabled") {
$query .= "AND CATART.is_start = '0' ";
}
$query .= "AND CONTENT.idartlang = ARTLANG.idartlang ";
// Container-ID
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) {
while ($db->next_record()) {
$headline = urldecode($db->f("headline"));
$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=$strCat&idart=".$db->f("id"));
echo '<tr><td colspan="2" class="text" height="22" style="border: 1px; border-top:0px; border-color: #F7C473; border-style: dashed; background-color: #FCF2D5; padding-left:10px"><a href="'.$link.'">'.$headline.'</a></td></tr>',chr(10);
}
unset($headline);
} // end if
} // end foreach
echo '</table><br>',chr(10);
} // end if
?>
HerrB