Mehrere Artikellisten in einer Kategorie

Gesperrt
DoroM
Beiträge: 116
Registriert: Mo 26. Jul 2004, 12:11
Wohnort: Saarland
Kontaktdaten:

Mehrere Artikellisten in einer Kategorie

Beitrag von DoroM » Di 21. Dez 2004, 14:21

Hi,
ich versuche, mehrere Artikellisten in einer Kategorie anzulegen. Hab also die Artikelliste, die bei 4.4 drin ist, kopiert, dann die VAR und VALUE-Werte verändert, Template angelegt, das geht alles prima. Beide A'listen werden angezeigt.
Nur, beide Artikellisten greifen natürlich auf alle ARtikel in der Kategorie zu. z.B.
Steckbriefe historisch
- Julius Cäsar
- Cleopatra
- MickyMouse
- Snoopy

Steckbriefe Neuzeit
- Julius Cäsar
- Cleopatra
- MickyMouse
- Snoopy

Nun hab ich schon probiert, die ARtikel aus der Neuzeit aus der Kategorie (und dem gesamten Navibaum) auszulagern und dann bei der Konfiguration wieder einzubinden, da sich die Seite mit den ARtikellisten aber im Hauptbaum in einer Unterkategorie befindet, klappt bei den ausgelagerten Artikeln der Navigationsbaum zu und man beginnt von vorne, sich zu den STeckbriefen durchzuklicken.
Sorry, wenn das schonmal jemand gepostet hat, sicher gibt es schon mehr Leute, die das Problem hatten, aber ich find nichts. Von der Logik her stimmt das ja auch, aber wie kann ich das ändern? :?:

Danke und Grüße
Doro

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Di 21. Dez 2004, 20:12

ich hab das jetzt sicher 5 mal gelesen...
sorry ich verstehs nicht... kannst du das einfacher beschreiben... ?
*** make your own tools (wishlist :: thx)

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

Beitrag von HerrB » Di 21. Dez 2004, 21:19

Ich glaube, ich ahne was.

Wiederhole die Konfiguration für das Template an allen relevanten Stellen, d.h. Vorkonfiguration im Template, ggf. Konfiguration, wenn das Template einer Kategorie zugewiesen wurde und Konfiguration, wenn das Template direkt einem Artikel zugewiesen wurde.

Manchmal bekommt Contenido nicht mit, wenn sich an den Variablen (CNS_VAR usw.) etwas ändert. Dies geschieht besonders gerne, wenn es einmal ohne Änderung getestet wurde, dann eine Änderung (im Modul) erfolgt und dann die Seite ohne erneute Bestätigung des Templates bzw. der Konfiguration aufgerufen wird.
Nur, beide Artikellisten greifen natürlich auf alle ARtikel in der Kategorie zu. z.B.
Natürlich ist das nur, wenn die Kategorie, aus der die Artikel angezeigt werden, nicht in der Konfiguration entsprechend unterschiedlich konfiguriert wurden oder besagtes Problem besteht und die Variablenwerte nicht sauber übergeben werden...

Gruß
HerrB

DoroM
Beiträge: 116
Registriert: Mo 26. Jul 2004, 12:11
Wohnort: Saarland
Kontaktdaten:

Beitrag von DoroM » Mi 22. Dez 2004, 13:57

ok, es klingt kompliziert, hier nochmal: Das Modul Artikelliste aus Contenido 4.4 hab ich kopiert, als Artikelliste2 in die Modulliste eingefügt. Dann hab ich also 2 A'-Module.
Den Code hab ich folgendermaßen verändert:
aus CMS_VALUE[0] wird CMS_VALUE[100] usw.
aus CMS_VAR[0] wird CMS_VAR[100] usw. , s. Artikelliste2:

Code: Alles auswählen

/**
* Artikelliste2 mit I1,H1,T1
* Erstellt eine Liste mit allen Artikel bis
* auf den Startartikel.
* INPUT
* Author Jan Lengowski
* Copyright four for business AG
*/
// selected category
$selected = "CMS_VALUE[100]";

echo "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\">
        <tr valign=\"top\">
          <td>Kategorie wählen:</td>
          <td>
            <select name=\"CMS_VAR[100]\">";
            if($selected!="0" && $selected!=""){
             echo"<option value=\"0\">--- kein ---</option>";

            }else{
            echo"<option selected=\"selected\" value=\"0\">--- kein ---</option>";
            }

            // fetch all categorys
            $query = "SELECT A.idcat, A.level, C.name FROM ".$cfg["tab"]["cat_tree"]." AS A, ".
                     $cfg["tab"]["cat"]." AS B,  ".$cfg["tab"]["cat_lang"]." AS C WHERE A.idcat=B.idcat ".
                     "AND B.idcat=C.idcat AND C.idlang='$lang' AND B.idclient='$client' ".
                     "AND C.visible=1 ORDER BY A.idtree";
            // 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
              
              $spaces .= ">";


              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>";

echo "    </td>
        </tr>
        <tr>
          <td>Überschrift</td>
          <td><input type=\"text\" name=\"CMS_VAR[102]\" value=\"CMS_VALUE[102]\"></td>
        </tr>
        <tr>
          <td>Angezeigte Länge in Zeichen</td>
          <td><input type=\"text\" name=\"CMS_VAR[103]\" value=\"CMS_VALUE[103]\"></td>
        </tr>

      </table>";




<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* REFERENZ MODUL / ARTIKELLISTE
*
* Artikelliste mit Img 1, Head 1, Head 2
*
* Erstellt eine Liste mit allen Artikel bis
* auf den Startartikel.
*
* Author      :     Jan Lengowski
* Copyright   :     four for business AG
* Created     :     15-08-2002
* Modified    :     16-08-2002
************************************************/

// second db class instance
$db2 = new DB_Contenido;

// selected category
$selcat = "CMS_VALUE[100]";

 if($selcat!="0" && $selcat!=""){

// select all articles in category widthout start article
$query = "SELECT ARTLANG.idart, ARTLANG.idartlang FROM ".$cfg["tab"]["cat_art"]." AS CATART, ".
          $cfg["tab"]["art_lang"]." AS ARTLANG ".
         "WHERE CATART.idcat = '$selcat' AND ARTLANG.idart = CATART.idart AND ARTLANG.idlang = '$lang' AND CATART.is_start = '0' AND ".
         "ARTLANG.online = '1' ORDER BY CATART.idart DESC";

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

unset($articleID);
unset($linkID);

// get id's of sub articles
while ($db->next_record()) {
  $articleID[] = $db->f("idartlang");
  $linkID[] = $db->f("idart");
} // end while

// loop through subarticles

echo '
<table width="365" border="0" cellspacing="2" cellpadding="0">

<tr>
<td height="22" width="143" style="border: 1px; border-left:1px; border-color: #000066; border-style: dashed; background-color: #BDD4EE; padding-left:10px" class="punkte">CMS_VALUE[102]</td></tr>
';

if (is_array($articleID)) {

    foreach ($articleID as $key => $value) {

          // select all CMS variables of the article
          $sql = "SELECT * FROM ".$cfg["tab"]["content"]." WHERE idartlang = '$value' AND idtype = '1' AND typeid = '1'";
          $db->query($sql);
          $db->next_record();
          $head = $db->f("value");

          if ( strlen($head) > "CMS_VALUE[103]") {
            $head = substr($head, 0, "CMS_VALUE[103]");
            $head .= '..';
          }

          // link
          $link = $sess->url("front_content.php?client=$client&lang=$lang&idcat=$selcat&idart=$linkID[$key]&m=$m&s=$s");

          echo '<tr><td 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.'">'.urldecode($db->f("value")).'</a></td></tr>';

    } // end while



          unset($headline);
        unset($text);
        
    } // end foreach
    
} // end if (is_array)

echo '</table><br>';


?>

Im Template hab ich dann die beiden Listen eingebunden, s. Screenshot:
Bild.


In der Artikelübersicht sieht das dann so aus, wenn ich noch einige Artikel dazu angelegt habe:
Bild.

In der Vorschau sieht das so aus:
Bild.

Es gibt ja auch keine Möglichkeit, die Artikel den unterschiedlichen Artikellisten zuzuordnen, denn in der Konfiguration der Startseite der ARtikelliste sieht es so aus:
Bild.

und bei den einzelnen Artikeln so:
Bild.


@HerrB: im QQuelltext müsste eigentlich alles stimmen, das Problem ist, daß man die einzelnen ARtikel nicht unterschiedlichen Artikellisten zuordnen kann. Evt. brauche ich ein anderes Modul?
@emergence, sorry, Betriebsblindheit

Gruß
Doro

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Mi 22. Dez 2004, 15:11

die erklärung deinerseits ist zum quadrat besser...

ähm wenn ich das jetzt richtig verstehe hast du alle artikel in einer kategorie...
und du hast zwei artikellisten die auf die selbe kategorie eingestellt sind...

du kannst artikel keiner artikelliste zuordnen

die artikelliste kann nur auf eine kategorie eingestellt werden, wobei dann alle artikel innerhalb der eingestellten kategorie angezeigt werden...

d.h.

zwei kategorien eine
gestern
die andere
heute
erstellen

die erste a'liste stellst du auf heute die andere auf gestern
und unter eigenschaften des jeweiligen artikels verschiebst du den jeweiligen artikel in die richtige kategorie
also die ersten beiden in heute und die zweiten in gestern...

vielleicht hilft dir diese info...
*** make your own tools (wishlist :: thx)

DoroM
Beiträge: 116
Registriert: Mo 26. Jul 2004, 12:11
Wohnort: Saarland
Kontaktdaten:

Beitrag von DoroM » Mi 22. Dez 2004, 16:10

...d.h. ich hätte dann zwei Seiten mit je einer Artikelliste und die Navigation klappt aus, wenn ich auf Steckbriefe klicke. Also je ein Navigationspunkt für gestern und heute, wenn ich Dich richtig verstanden habe.
Das wollte ich eigentlich vermeiden, gibt es keine andere Möglichkeit?

Danke und Gruß
Doro

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Mi 22. Dez 2004, 16:24

DoroM hat geschrieben:...d.h. ich hätte dann zwei Seiten mit je einer Artikelliste und die Navigation klappt aus, wenn ich auf Steckbriefe klicke.
du kannst die beiden artikellisten schon auf einer seite haben,
DoroM hat geschrieben:Also je ein Navigationspunkt für gestern und heute, wenn ich Dich richtig verstanden habe.
Das wollte ich eigentlich vermeiden, gibt es keine andere Möglichkeit?
aber die artikel müssen sich in unterschiedlichen kategorien befinden !

ne andere aufsplittung ist mittels den standard artikellisten nicht machbar...
*** make your own tools (wishlist :: thx)

DoroM
Beiträge: 116
Registriert: Mo 26. Jul 2004, 12:11
Wohnort: Saarland
Kontaktdaten:

Beitrag von DoroM » Mi 22. Dez 2004, 16:49

ja, das hatte ich schon probiert mit einer Kategorie, die nicht online ist, sondern nur die Artikel.
Nur leider klappt dann die Navigationsleiste zusammen (Kategorie liegt außerhalb des Navigationsbaumes) oder ein leerer Navigationspunkt klappt aus (bzw. mehrere, je nach Anzahl der Artikellisten).
Schade, daß das nicht geht...

Gruß
Doro

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Mi 22. Dez 2004, 17:35

es geht schon...
das problem ist nicht die artikelliste sondern die hauptnavigation...
die müsste man halt so modifizieren das exakt diese beiden kategorien nicht anzeigt... (sie können ja dann ruhig im steckbrief baum sein)
das wäre mein ansatzpunkt...
*** make your own tools (wishlist :: thx)

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Do 23. Dez 2004, 10:03

ich hab da noch nen ansatzpunkt...
bedien dich des feldes artsort
wenn die artikellisten darauf rücksicht nehmen können sogar die artikel in einer kategorie sein... dann müsste man aber das artikellisten modul aufbohren..
das dumme beim artsort ist dann eigentlich nur das nur ziffernwerte erlaubt sind...
*** make your own tools (wishlist :: thx)

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

Beitrag von HerrB » Do 23. Dez 2004, 10:09

Man könnte auch den Titel des Artikels nutzen (in den Eigenschaften, nicht aus dem Inhalt), e.g. "H: Heinrich Moog" und "G: Askarich" - natürlich müsste man dafür dann auch das Modul aufbohren.

Gruß
HerrB

mhl
Beiträge: 67
Registriert: Mi 18. Aug 2004, 21:59
Wohnort: Salzburg
Kontaktdaten:

zusätzliches Phänomen

Beitrag von mhl » Mi 2. Feb 2005, 21:01

Hallo.

Ich habe derzeit ein ähnliches Problem wie DoroM, jedoch wahrscheinlich (hoffentlich) einfacher lösbar.

Ich habe in einem Template zwei Artikellisten, jedoch unterschiedliche Modelle der weiterkonzipierten w3c.alist. Beide ernähren sich aus unterschiedlichen Kategorien, soweit kein Problem. Das einzige, was nicht klappt, ist die Beschränkung auf eine gewisse Anzahl von anzuzeigenden Artikeln. D.h. die eine Liste soll 5 Artikel, die anderen nur 1 Artikel anzeigen. Jedoch erscheinen dann die "weiter" und "zurück" Buttons. Ich nehme mal an, dass lässt sich mit den CMS_VALUES ändern, oder?
Falls es mir zwischenzeitlich klappt, melde ich mich wieder. Dereinst vielen Dank für Hinweise.

Gruß

MHL

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

Re: zusätzliches Phänomen

Beitrag von Halchteranerin » Mi 2. Feb 2005, 21:24

mhl hat geschrieben:Ich nehme mal an, dass lässt sich mit den CMS_VALUES ändern, oder?
Ich weiss nicht genau, ob ich dich richtig verstanden habe, aber wenn ja, wuerde ich das eher mit einem "LIMIT 0,5" bzw. "LIMIT 0,1" in der SQL-Anweisung loesen.

Robatzen
Beiträge: 84
Registriert: Di 27. Jan 2004, 17:03
Kontaktdaten:

Beitrag von Robatzen » Do 3. Feb 2005, 09:07

Wenn es darum geht mehrere Artikellisten aus einer Kategorie zu speisen, dann hat es sich meiner Meinung nach bewährt über die Artikelsortierung zu gehen.

Das kann man auch nem Redaktuer recht leicht erklären und die Redakteure können die Listen entsprechend "konfigurieren".

Als Lösungsansatz könnte z.B. die erste Artikelliste 2 Topartikel auslesen. Eine weitere Liste liest 5 kleine Anrisse als News aus der selben Kategorie, wer mag kann das undendlich erweitern.

Um dann unterschiedliche Artikel in die Listen zu bekommen, bin ich etwas wie folgt vorgegangen:

Artikelliste1: WHERE artlang.artsort=1 AND artlang.artsort=2 Limit=2
Artikelliste2: WHERE artlang.artsort!=1 AND artlang.artsort!=2 Limit=5

So werden die beiden Artikel mit der Sortierreihenfolge 1+2 in die Liste für "Topartikel" eingelesen, alle weiteren vorhandenen Artikel werden in die zweite Artikelliste eingelesen und auf 5 limitiert. Natürlich dürfen diese Artikel dann weder 1 noch 2 haben als Sortierreihenfolge.

Vielleicht kann der Ansatz ja dem ein oder anderen schon auf die Sprünge helfen. :wink:

Gruß, Rob

Gesperrt