ich benötige Eure Hüülfeee... Ich bastel an einer Artikelliste rum und habe schon ein paar "Herausforderungen" gemeistert - aber nun komme ich irgendwie nicht weiter.
Die Artikelliste die ich benutze ist diese:
Eingabe:
Code: Alles auswählen
$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);
Code: Alles auswählen
<?php
$selCat = "CMS_VALUE[0]"; // selected category
$maxChar = "CMS_VALUE[3]"; // Max. shown topic length
$str = "CMS_VALUE[2]";
function TextAbschneiden($Text, $Laenge)
{
return substr($Text, 0, strpos(wordwrap($Text, $Laenge)));
}
$Text = "CMS_VALUE[2]";
$Laenge = $maxChar;
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><span class="text">';
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) {
TextAbschneiden($Text, $Laenge);
$headline .= '...';
}
$link = $sess->url("front_content.php?client=$client&lang=$lang&idcat=$selCat&idart=".$db->f("id")."&m=$m&s=$s");
echo '<a style="text-decoration:none;" href="' .$link. '"><img style="float:left; padding:5px;"' .$img. ' height="75px" border="0" alt="Artiekvoransicht"></a>' .$headline .'<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
?>
Nun möchte ich nicht, dass die Worte des "Anreisstextes" mitten drin abgeschnitten werden... dazu habe ich folgene Funktion herausgefunden:
Code: Alles auswählen
function TextAbschneiden($Text, $Laenge)
{
return substr($Text, 0, strpos(wordwrap($Text, $Laenge)));
}
$Text = "CMS_VALUE[2]";
$Laenge = $maxChar;
Code: Alles auswählen
if (strlen($headline) > $maxChar) {
TextAbschneiden($Text, $Laenge);
$headline .= '...';
}

Ich habe wirklich keinen Plan, was ich da falsch mache...
Kann mir bitte jemand helfen????
Vielen Dank
Jörg