Modul: Artikelliste für V4.4.x (V2.0.2)

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Fr 17. Jun 2005, 12:27

Das braucht ein bisschen (vielleicht morgen).

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

Hotte
Beiträge: 17
Registriert: Mi 9. Mär 2005, 10:22
Kontaktdaten:

Beitrag von Hotte » Fr 17. Jun 2005, 13:01

Das wäre super!
Danke

i-fekt
Beiträge: 1520
Registriert: Mo 3. Jan 2005, 02:15
Wohnort: Chemnitz
Kontaktdaten:

Beitrag von i-fekt » Fr 17. Jun 2005, 18:07

Das ist mir auch gerade aufgefallen, das wäre wirklich gut, wenn der auch den Titel aus dem Backend ausgibt, wenn man die Sortieroption "Seitentitel (Backend)" gewählt hat.

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Sa 18. Jun 2005, 15:21

So, anbei eine BETA-Version, sie ist nur stichpunktartig getestet (daher Empfehlung: zunächst als zusätzliches Modul einbinden).

Ich bitte um Test. Wenn alles in Ordnung ist, aktualisiere ich Seite 1.

Änderung:
- Topic kann nun Seitentitel (Frontend oder Backend) oder Zusammenfassung sein.

Beschreibung:

Code: Alles auswählen

Artikelliste V4.4.5 V2.1beta

Basiert auf der Standardartikelliste von Contenido V4.4.x (Autor: Jan Legowski, 4fb).
Überarbeitet von HerrB, 18.06.2005
Input:

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&auml;hlen:</td>',chr(10); 
echo '          <td class="text_medium" colspan="2"><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">&Uuml;berschrift</td>',chr(10); 
echo '          <td class="text_medium" colspan="2"><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&auml;nge in Zeichen</td>',chr(10); 
if (!is_numeric("CMS_VALUE[3]")) { 
   echo '          <td class="text_medium" colspan="2"><input type="text" name="CMS_VAR[3]" value="50"></td>',chr(10); 
} else { 
   echo '          <td class="text_medium" colspan="2"><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" colspan="2"><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&nbsp;<input type="radio" name="CMS_VAR[5]" value="DESC">Absteigend',chr(10); 
} else { 
   echo '             <input type="radio" name="CMS_VAR[5]" value="ASC">Aufsteigend&nbsp;<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" colspan="2"><input type="checkbox" name="CMS_VAR[6]" value="enabled">Anzeigen&nbsp;'; 
} else { 
   echo '          <td class="text_medium" colspan="2"><input type="checkbox" name="CMS_VAR[6]" value="enabled" checked>Anzeigen&nbsp;'; 
} 
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:</td>',chr(10);
echo '          <td class="text_medium" style="vertical-align: top;"><select name="CMS_VAR[9]">',chr(10); 
if (!is_numeric("CMS_VALUE[9]") || !in_array("CMS_VALUE[9]", array("-3","-2","-1","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); 
}
if ("CMS_VALUE[9]" == "-1") { 
   echo '                <option value="-1" selected>Seitentitel (Frontend)*</option>',chr(10); 
} else { 
   echo '                <option value="-1">Seitentitel (Frontend)*</option>',chr(10); 
} 
if ("CMS_VALUE[9]" == "-2") { 
   echo '                <option value="-2" selected>Seitentitel (Backend)*</option>',chr(10); 
} else { 
   echo '                <option value="-2">Seitentitel (Backend)*</option>',chr(10); 
} 
if ("CMS_VALUE[9]" == "-3") { 
   echo '                <option value="-3" selected>Zusammenfassung (Backend)*</option>',chr(10); 
} else { 
   echo '                <option value="-3">Zusammenfassung (Backend)*</option>',chr(10); 
} 
echo '            </select><br><font size="1">* Typ-Nummer wird ignoriert</font>',chr(10);
echo '          </td>',chr(10);
echo '        </tr>',chr(10);
echo '        <tr>',chr(10); 
echo '          <td class="text_medium" style="vertical-align: top;">&nbsp;</td>',chr(10); 
echo '          <td class="text_medium" style="vertical-align: top;">Typ-Nummer:</td>',chr(10);
echo '          <td class="text_medium" style="vertical-align: top;">',chr(10); 
if (!is_numeric("CMS_VALUE[8]")) { 
   echo '          <input type="text" name="CMS_VAR[8]" length="5" maxlength="10" value="1"><br><font size="1">z.B. 3 bei CMS_HTML[3]</font>',chr(10); 
} else { 
   echo '          <input type="text" name="CMS_VAR[8]" length="5" maxlength="10" value="CMS_VALUE[8]"><br><font size="1">z.B. 3 bei CMS_HTML[3]</font>',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" colspan="2"><input type="text" name="CMS_VAR[10]" value="0"></td>',chr(10); 
} else { 
   echo '          <td class="text_medium" colspan="2"><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
unset ($arrData);
$arrData = array();
$arrData["Category"]	= "CMS_VALUE[0]";  // selected category
                                                               // 1 was used in previous versions
$arrData["Headline"]	= "CMS_VALUE[2]";  // Table headline
$arrData["MaxChar"]	= "CMS_VALUE[3]";  // Max. shown topic length
$arrData["OrderBy"]	= "CMS_VALUE[4]";  // Order By selection
$arrData["AscDesc"]	= "CMS_VALUE[5]";  // Asc or Desc sorting
$arrData["WithStart"]	= "CMS_VALUE[6]";  // with start article?
$arrData["StartFirst"]	= "CMS_VALUE[7]";  // Start article as first article in list?
$arrData["TypeCount"] = "CMS_VALUE[8]";  // Content type count, e.g. CMS_H T M L [3] -> $TypeCount = 3
$arrData["TypeID"]	= "CMS_VALUE[9]";  // Content type id, e.g. CMS_H T M L or pagetitle (-2) or title (-1)
$arrData["Limit"]	= "CMS_VALUE[10]"; // Max. article count

if (!is_numeric($arrData["MaxChar"]) || $arrData["MaxChar"] < 1) {
   $arrData["MaxChar"]   = "50";
}

if ($arrData["AscDesc"] == "") {
   $arrData["AscDesc"] = "DESC ";
}

if (!is_numeric($arrData["TypeID"])) {
   $arrData["TypeID"]    = "1";
   $arrData["TypeCount"] = "1";
}

if (!is_numeric($arrData["TypeCount"])) {
   $arrData["TypeCount"] = "1";
}

if ($arrData["OrderBy"] == "" || ($arrData["TypeID"] < 0 && strpos($arrData["OrderBy"], "CONTENT") !== false)) {
   // If no order by specified or an order by specified using CONTENT where no CONTENT is available ...
   $arrData["OrderBy"] = "CATART.idart ";
}

if (is_numeric($arrData["Category"]) && $arrData["Category"] != "0") {
   // select all articles in category without start article
   switch ($arrData["TypeID"]) {
      case "-3":
         // Article title (Backend)
         $query =  "SELECT ARTLANG.summary AS topic, ARTLANG.idart AS id FROM ";
         $query .= $cfg["tab"]["cat_art"]." AS CATART, ";
         $query .= $cfg["tab"]["art_lang"]." AS ARTLANG ";
         $query .= "WHERE ";
         break;
      case "-2":
         // Article title (Backend)
         $query =  "SELECT ARTLANG.title AS topic, ARTLANG.idart AS id FROM ";
         $query .= $cfg["tab"]["cat_art"]." AS CATART, ";
         $query .= $cfg["tab"]["art_lang"]." AS ARTLANG ";
         $query .= "WHERE ";
         break;
      case "-1":
         // Pagetitle (Frontend)
         $query =  "SELECT ARTLANG.pagetitle AS topic, ARTLANG.idart AS id FROM ";
         $query .= $cfg["tab"]["cat_art"]." AS CATART, ";
         $query .= $cfg["tab"]["art_lang"]." AS ARTLANG ";
         $query .= "WHERE ";
         break;
      default:
         $query =  "SELECT CONTENT.value AS topic, 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 CONTENT.idartlang = ARTLANG.idartlang ";
         $query .= "AND CONTENT.typeid = '".$arrData["TypeCount"]."' "; // Element count (CMS_H T M L [3] -> $TypeCount = 3)
         $query .= "AND CONTENT.idtype = '".$arrData["TypeID"]."' AND ";    // Content-Type
   }

   $query .= "CATART.idcat = '".$arrData["Category"]."' ";
   $query .= "AND ARTLANG.idart = CATART.idart AND ARTLANG.idlang = '".$lang."' ";
   $query .= "AND ARTLANG.online = '1' ";

   if ($arrData["WithStart"] != "enabled") {
      $query .= "AND CATART.is_start = '0' ";
   }

   // Sort by
   $query .= "ORDER BY ";

   if ($arrData["WithStart"] == "enabled" && $arrData["StartFirst"] == "enabled") { // Startartikel an erster Stelle
      $query .= "CATART.is_start DESC, ";
   }

   $query .= $arrData["OrderBy"]." ";
   $query .= $arrData["AscDesc"]." "; // ASC/DESC

   // LIMIT
   if (is_numeric($arrData["Limit"]) && $arrData["Limit"] > 0) {
      $query .= "LIMIT 0, ".$arrData["Limit"];
   }

   // execute query
   $db->query($query);

   if ($db->num_rows() > 0) {
      // Table header
      echo '<table width="165" border="0" cellspacing="0" cellpadding="0">';
      echo '<tr><td height="30" colspan="2" ></td></tr>';
      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>';
      echo '<td width="143" style="border: 1px; border-left:0px; border-color: #F7C473; border-style: dashed; background-color: #FCF2D5; padding-left:10px" class="punkte">'.$arrData["Headline"].'</td></tr>';

      while ($db->next_record()) {
         $topic = urldecode($db->f("topic"));
         if (strlen($topic) > $arrData["MaxChar"]) {
            $topic = substr($topic, 0, $arrData["MaxChar"]);
            $topic .= '..';
         }

         $link = $sess->url("front_content.php?client=$client&lang=$lang&idcat=$selCat&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.'">'.$topic.'</a></td></tr>';
      } // end while

      unset($topic);

      echo '</table><br>';
   } // end if
} // end if
unset ($arrData);
?>
Viel Erfolg.

Gruß
HerrB
Zuletzt geändert von HerrB am Mo 20. Jun 2005, 20:10, insgesamt 1-mal geändert.
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

Hotte
Beiträge: 17
Registriert: Mi 9. Mär 2005, 10:22
Kontaktdaten:

Beitrag von Hotte » Sa 18. Jun 2005, 17:14

Das ging ja schnell. Ich habe es auf die schnelle installiert, allerdings eine Fehlermeldung bekommen. Habe momentan keine Zeit das ganze zu prüfen. Werde mich aber allerspätestens Montag melden, ob und wie es klappt.
Erst mal vielen Dank für Deine Mühe.

Hotte
Beiträge: 17
Registriert: Mi 9. Mär 2005, 10:22
Kontaktdaten:

Beitrag von Hotte » So 19. Jun 2005, 22:19

Hallo Herr B.
Den Seitentitel (Backend) kann ich in der Artikelliste anzeigen lassen, klappt wunderbar. Allerdings bekomme ich im Editor folgende Fehlermeldung:

Code: Alles auswählen

Parse error: parse error, unexpected '<' in /home/www/xxx/xxx/xxx/contenido/includes/include.con_editcontent.php(571) : eval()'d code on line 859
.
Konnte den Fehler leider nicht finden. Für Dich wahrscheinlich ein Leichtes.
Viele Grüße
Hotte

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Mo 20. Jun 2005, 20:12

Nein, leicht war es nicht. Ein blöder Fehler, ersetze in den Kommentaren überall CMS_HTML durch CMS_H T M L.

Im Editor wird offensichtlich CMS_HTML ersetzt (was ja auch logisch ist) - dabei entsteht Murks.

Durch die gesperrte Schreibweise werden die CMS_HTML-Elemente nicht mehr erkannt und es gibt kein Problem mehr.

Code oben ist aktualisiert.

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

Hotte
Beiträge: 17
Registriert: Mi 9. Mär 2005, 10:22
Kontaktdaten:

Beitrag von Hotte » Mo 20. Jun 2005, 21:19

Jetzt läuft es einwandfrei!
Danke für Deine Mühe und Zeit, die Du Dir genommen hast.
Gruß Hotte

Steffan
Beiträge: 1
Registriert: Di 5. Jul 2005, 15:40
Kontaktdaten:

Beitrag von Steffan » Di 25. Okt 2005, 13:50

Hallo,

ich habe mir das Modul von der ersten Seite eben kopiert und in Contenido 4.4.5 eingebaut.
Ich hab dieses "contenidocms-wamp" installiert von:
http://sourceforge.net/project/showfile ... p_id=35885

Bei mir funktioniert es leider nicht und nach etwas testen sieht es so aus:
Es ist als "CMS_CONTAINER[12]" ins Template eingebaut.
In der Vorkonfiguration hab ich "Kategorie wählen: Punkt 1" eingestellt.
Im Ausgabemodul hab ich mal ergänzt:

Code: Alles auswählen

<?php 
$selCat     = "CMS_VALUE[0]"; // selected category 
$maxChar = "CMS_VALUE[3]"; // Max. shown topic length 
echo "Kategorie:" . $selCat;
Es wird aber nur "Kategorie: " ausgegeben und natürlich keine Artikelliste.

*EDIT*
Anscheinend ist es so:
in der Modul-Vorkonfiguration kann ich zwar die Einstellungen machen und abspeichern (er merkt sich die Änderungen), aber diese Änderungen haben auf das Ausgabemodul keine Wirkung.
Ich habe jetzt das News-Modul durch diese Artikelliste ersetzt und im Ausgabemodul die 2. Zeile geändert (das ist eh das was ich haben will):

Code: Alles auswählen

<?php 
$selCat     = $idcat;
Jetzt steht da wo vorher die News waren die richtige Artikelliste der aktuellen Kategorie, aber als Überschrift steht da noch immer "News" anstatt "Test" was ich bei "Überschrift" reingeschrieben habe.

*EDIT 2*
So, jetzt hab ich das Verzeichnis "C:\Contenido" umbenannt und das "contenidocms-wamp" völlig neu installiert. Ich hab dieses Modul neu hinzugefügt Name="Artikelliste_HerrB" und in den Container 8 gepackt.
Wieder das gleiche Problem:
Die Werte die ich in der Modul-Vorkonfiguration eingebe werden zwar gespeichert, aber die Änderungen haben keinen Einfluss auf das Frontend.
Die Zeile
echo "maxChar: " . $maxChar;
gibt immer "maxChar: 50" aus, auch wenn ich den Wert auf 100 ändere.

Gruß,
Steffan

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Fr 11. Nov 2005, 11:55

Hast Du die Einstellung auch in der Konfiguration (Kategorie/Artikel) vorgenommen, nicht nur in der Vorkonfiguration?

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

Nebel

Beitrag von Nebel » Do 17. Nov 2005, 22:09

Hi,

ersteinmal ein dickes Lob! Die Artikelliste ist wirklich gelungen.

Ich habe noch eine Frage dazu:
Kann man einen alternativen Inhalt (z.B. einfachen Text) anzeigen lassen, wenn in der Kategorie keine weitern Artikel, außer dem Startartikel sind?
Es soll für eine Termin-Seite sein. Wenn keine Termine vorhanden sind soll dann automatisch ein Hinweis angezeigt werden.

Gruß
Nebel
Zuletzt geändert von Nebel am Do 17. Nov 2005, 23:02, insgesamt 1-mal geändert.

Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin » Do 17. Nov 2005, 22:19

Nebel, dafuer gibt's eigentlich die Terminverwaltungsmodule. :wink: Wenn du die Artikelliste erweiterst, kannst du sicherlich auch einen Text anzeigen lassen ...

Nebel

Beitrag von Nebel » Do 17. Nov 2005, 22:33

Hi Halchteranerin,
Halchteranerin hat geschrieben:Nebel, dafuer gibt's eigentlich die Terminverwaltungsmodule. :wink:
Eigentlich richtig, aber passt für den speziellen fall nicht ganz.
Halchteranerin hat geschrieben: Wenn du die Artikelliste erweiterst, kannst du sicherlich auch einen Text anzeigen lassen ...
Aber wie? Bin leider nicht wirklich fitt in php. Müsste irgendeine funktion sein, die erkennt, dass nur noch eine bestimmte Anzahl von Artikeln in der Kategorie ist (z.B. 2). Bei weniger als 2 wird dann ... ausgegeben.

Gruß

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Fr 18. Nov 2005, 11:14

Uuuuh, das ist so Hölle schwer, da muss ich praktisch Geld verlangen für die Sek... öhm Stunden und Tage, die sowas braucht. Aber versuchen wir es gemeinsam. So als Einstieg für Dich in PHP...

Das ist der Code am Ende vom Output (von Seite 1):

Code: Alles auswählen

   if ($db->num_rows() > 0) { 
      // Table header 
      echo '<table width="165" border="0" cellspacing="0" cellpadding="0">'; 
      echo '<tr><td height="30" colspan="2" ></td></tr>'; 
      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>'; 
      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>'; 

      while ($db->next_record()) { 
         $headline = urldecode($db->f("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 '<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>'; 
      } // end while
      unset($headline); 
      echo '</table><br>'; 
   } // end if 
Durch scharfes Hinsehen erkennt man, dass nur etwas ausgegeben wird, wenn die Anzahl der zurückgegebenen Artikel größer 0 ist ("if ($db->num_rows() > 0) {"). Hättste auch ohne mich gesehen, bin ich mir sicher... :wink:

D.h. wenn Du nun die Konfiguration "ohne Startartikel" verwendest, sollte Dich bereits dieser Code zum Ziel führen:

Code: Alles auswählen

   if ($db->num_rows() > 0) { 
      // Table header 
      echo '<table width="165" border="0" cellspacing="0" cellpadding="0">'; 
      echo '<tr><td height="30" colspan="2" ></td></tr>'; 
      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>'; 
      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>'; 

      while ($db->next_record()) { 
         $headline = urldecode($db->f("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 '<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>'; 
      } // end while
      unset($headline); 
      echo '</table><br>'; 
   } else {
      echo 'Hier wird der HTML-Code ausgegeben, der erscheint, wenn nix zum ausgeben da ist';
   } // end if 
Man beachte das

Code: Alles auswählen

   } else {
      echo 'Hier wird der HTML-Code ausgegeben, der erscheint, wenn nix zum ausgeben da ist';
Wenn Du "mit Startartikel" nimmst oder die Kategorie sowieso immer zwei Artikel beinhaltet, dann musst Du die erste Bedingung von >0 auf >1 bzw. >2 ändern, das wars.

Wenn Du den Code von dieser Seite nimmst, gilt das Gezeigte entsprechend. Bitte beachten, dass nur der if-Teil angegeben ist, danach geht der Code in der Ausgabe noch drei Zeilen weiter, die bleiben unverändert.

Haben wir es geschafft. Glücklich? Glücklich. :wink:

Gruß
HerrB

P.S.: Ich konnte nicht wiederstehen...
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

Nebel

Beitrag von Nebel » Fr 18. Nov 2005, 11:50

Moin HerrB,
HerrB hat geschrieben:Uuuuh, das ist so Hölle schwer, da muss ich praktisch Geld verlangen für die Sek... öhm Stunden und Tage, die sowas braucht. Aber versuchen wir es gemeinsam.

...

Durch scharfes Hinsehen erkennt man, dass nur etwas ausgegeben wird, wenn die Anzahl der zurückgegebenen Artikel größer 0 ist ("if ($db->num_rows() > 0) {"). Hättste auch ohne mich gesehen, bin ich mir sicher... :wink:
Vielen Dank für die Nacht, die du dir für mich um die Ohren geschlagen hast!!! ;)
Das mit >0 hatte ich tatsächlich gesehen :)
HerrB hat geschrieben:

Code: Alles auswählen

   } else {
      echo 'Hier wird der HTML-Code ausgegeben, der erscheint, wenn nix zum ausgeben da ist';
Das ist es! Wusste nicht wie ich das hinbekomme :roll:
Haben wir es geschafft. Glücklich? Glücklich. :wink:
Überglücklich! Ehlich.
Vielen Dank! :D

Gesperrt