Artikel wie ein Lexikon darstellen und darin Navigieren...

Aixtraweb
Beiträge: 100
Registriert: Do 23. Sep 2004, 10:55
Wohnort: Herzogenrath
Kontaktdaten:

Artikel wie ein Lexikon darstellen und darin Navigieren...

Beitrag von Aixtraweb » Do 14. Apr 2005, 09:58

Hallo,

ich habe noch kein entsprechendes Modul finden können, welches meine Ausfgabenstellung lösen könnte.

Ich habe ein Nachschlagewerk von A-Z. In der Navigation (Menü) soll allerdings nur ein Menüpunkt erscheinen. Z.B. Lexikon, wenn man den Menüpunkt aktiviert, soll eine Seite angezeigt werden, die ein Inhaltsverzeichnis von A bis Z aufzeigt. Wenn man den entsprechenden Buchstaben anklickt soll eine Artikelliste mit allen Artikeln zu diesem Buchstaben erscheinen, hier soll ein Link erscheinen, der zurück zum Inhaltsverzeichnis führt. Wenn man dann einen speziellen Artikel angewählt hat soll es die Möglichkeit geben wieder auf die Übersichtsseite des jeweiligen Buchstabens zu kommen. (Ein Traum wäre natürlich Querverweise zum vertiefen oder weiterlesen in anderen Artikeln, den vorherigen und nächsten Artikel anwählen zu können)

Ich habe mal versucht einfach für jeden Buchstaben eine eigene Kategorie anzulegen, aber dann klappt die Navigation nicht so wie gewünscht. Im Menü zum einen ist kein oder ein leerer Menüeintrag aktiviert und ein zurückblättern ist nicht möglich.

Gibts es hier Lösungsansätze, die mir meine Gehrinwendungen verweigern oder gar Module, mit denen das zu bereits jetzt zu lösen ist?

Ich habe leider keine PHP oder Programmiererfahrungen um sowas selbst basteln zu können.

Die Idee ist ja eigentlich eine Artikelliste die wiederum eine Artikelliste aufruft, nur geht das mit den Artikellisten und der Struktur irgendwie nicht oder doch?

Contenido 4.4.5 ist installiert...

Herzlichen Dank für Hilfe...
Mit freundlichen Grüßen
Jörg Knörchen

Meine Hobby-Webseite:
www.mein-foto-abc.de : contenido 4.6.15 - I love it! : www.yogie.de : www.bastelstun.de

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

Beitrag von HerrB » Do 14. Apr 2005, 19:13

Suche mal nach Glossar...

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

Aixtraweb
Beiträge: 100
Registriert: Do 23. Sep 2004, 10:55
Wohnort: Herzogenrath
Kontaktdaten:

Beitrag von Aixtraweb » Fr 15. Apr 2005, 11:48

HerrB hat geschrieben:Suche mal nach Glossar...
Ok, es kommen nur ganz wenig Artikel raus und die haben mir auch nicht weiter geholfen! :cry:
Mit freundlichen Grüßen
Jörg Knörchen

Meine Hobby-Webseite:
www.mein-foto-abc.de : contenido 4.6.15 - I love it! : www.yogie.de : www.bastelstun.de

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

Beitrag von HerrB » So 17. Apr 2005, 15:19

Tut mir leid - mir war so, als hätte da schon mal jemand dran gearbeitet...

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

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

Beitrag von HerrB » So 17. Apr 2005, 15:25

Ich habe zwar leider gerade nicht so viel Zeit, aber vielleicht findet sich eine Lösung mit Deinem Ansatz der Buchstaben-Kategorien:
Ich habe mal versucht einfach für jeden Buchstaben eine eigene Kategorie anzulegen, aber dann klappt die Navigation nicht so wie gewünscht. Im Menü zum einen ist kein oder ein leerer Menüeintrag aktiviert und ein zurückblättern ist nicht möglich.
Das mit dem Menü ist seltsam - was für ein Navigationsmodul nutzt Du denn? Kannst Du einen Screenshot zur Verfügung stellen?

Was bedeutet, "vor und zurück" gehen nicht - wie hätten sie gehen sollen (d.h. meinst Du über den Browser oder hast Du ein entsprechendes Modul)?

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

Aixtraweb
Beiträge: 100
Registriert: Do 23. Sep 2004, 10:55
Wohnort: Herzogenrath
Kontaktdaten:

Beitrag von Aixtraweb » Mo 18. Apr 2005, 07:11

HerrB hat geschrieben:Ich habe zwar leider gerade nicht so viel Zeit, aber vielleicht findet sich eine Lösung mit Deinem Ansatz der Buchstaben-Kategorien:
Also es gibt anscheinend doch ein Modul-Output welches Artikel so ausgiebt wie ich mir das so vorgestellt habe:

http://contenido.org/forum/viewtopic.php?t=7707

Wie das dann aussieht ist in einem Screenshot hier zu sehen:

http://schmitz-ruhrort.dyndns.org/glossar.jpg (ca. 145 KB)

Doch leider funktioniert das Modul nicht bei mir 4.4.5 :-(
Mit freundlichen Grüßen
Jörg Knörchen

Meine Hobby-Webseite:
www.mein-foto-abc.de : contenido 4.6.15 - I love it! : www.yogie.de : www.bastelstun.de

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

Beitrag von HerrB » Di 19. Apr 2005, 20:06

Doch leider funktioniert das Modul nicht bei mir 4.4.5
Gimme mehr... was bedeutet "geht nicht"? Fehlermeldung? Aussehen (z.B. Screenshot)?

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

Aixtraweb
Beiträge: 100
Registriert: Do 23. Sep 2004, 10:55
Wohnort: Herzogenrath
Kontaktdaten:

Beitrag von Aixtraweb » Mi 20. Apr 2005, 07:29

HerrB hat geschrieben:
Doch leider funktioniert das Modul nicht bei mir 4.4.5
Gimme mehr... was bedeutet "geht nicht"? Fehlermeldung? Aussehen (z.B. Screenshot)?
Es fängt schon damit an, dass contenido keinen grünen sondern einen roten punkt anzeigt, wenn ich das modul einrichte und den Quellcode ins Output kopiere und dann speichern möchte...
Mit freundlichen Grüßen
Jörg Knörchen

Meine Hobby-Webseite:
www.mein-foto-abc.de : contenido 4.6.15 - I love it! : www.yogie.de : www.bastelstun.de

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

Beitrag von HerrB » Do 21. Apr 2005, 19:55

Contenido 4.4.5 hat wohl Probleme mit verschachtelten array-Klammern.

Geht nicht:

Code: Alles auswählen

is_array($gesamt[$liste[$i]])
Geht:

Code: Alles auswählen

is_array($gesamt[ $liste[$i] ])
Ich habe den Code auch noch ein bisschen überarbeitet; man kan nun die notwendigen Parameter am Anfang des Outputs angeben (wobei eine Konfiguration natürlich schöner wäre, aber aud schnelle...).

Für das Glossar muss eine Oberkategorie erzeugt werden. Darunter muss man weitere Kategorien anlegen, die dann die Artikel enthalten. Bei diesen Kategorien kann es sich z.B. um eine Kategorie für jeden Anfangsbuchstaben handeln oder um Gruppieren, z.B. Essen, Getränke, ....

Beispiel:
- News <- Oberkategorie
-- Kategorie A <- Kategorie pro Anfangsbuchstabe
---- Artikel Alle meine Entchen
---- Artikel Am Ende ist am Anfang
---- Artikel Allmählich gehen mir die Beispiele aus
- Glossar

Glossar enthält den Artikel mit diesem Modul... (Vorgabe Darthbach).

$parentcatid ist die idcat der Oberkategorie. $cmstypeid ist die interne ID des Content-Typs, 2 ist z.B. CMS_HTML. $numberofcmstype ist die Nummer, die im Textmodul hinter dem Contenttyp steht, z.B. 1 bei CMS_HTML[1].

Code: Alles auswählen

<?php 

$parentcatid = 21; 
$cmstypeid = 2; 
$numberofcmstype = 1; 

echo "<!-- Modul: Glossarliste -->\n"; 

function klein($text) { 
   $text = urldecode($text); 

   $text = strip_tags($text, ""); 

//   $text = str_replace(" ", "_", $text); 
   $text = str_replace(":", "_", $text); 
   $text = str_replace("(", "_", $text); 
   $text = str_replace(")", "_", $text); 
   $text = str_replace("[", "_", $text); 
   $text = str_replace("]", "_", $text); 
   $text = str_replace("'", "_", $text); 
   $text = str_replace('"', '_', $text); 

   $text = strtolower($text); 

   $text = str_replace("ä", "ae", $text); 
   $text = str_replace("ö", "oe", $text); 
   $text = str_replace("ü", "ue", $text); 
   $text = str_replace("ß", "ss", $text); 

   return $text; 
} 

function unterkategorien($kategorie) { 
   global $cfg, $unterkat; 
   $unterkat[] = $kategorie; 

   $db = new DB_Contenido; 
   $sql = "SELECT idcat FROM {$cfg['tab']['cat']} WHERE parentid = '".$kategorie."' ORDER BY idcat ASC;"; 
   $db->query($sql); 

   while ($db->next_record()) { 
      unterkategorien($db->f("idcat")); 
   } 
} 

$db = new DB_Contenido; 
$db2 = new DB_Contenido; 

$breiterand = 5; 
$breitekomplett = 200 - 2 * $breiterand; 

$liste = array("0-9", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "@"); 

foreach ($liste as $buchstabe) { 
   $gesamt[$buchstabe] = ""; 
} 

$unterkat = array(); 
unterkategorien($parentcatid); 

// liest die anzahl betroffener artikel aus der datenbank 
$sql = "SELECT count(*) AS anzahl FROM ".$cfg['tab']['cat']." AS a LEFT JOIN ".$cfg['tab']['cat_art']." AS b ON a.idcat = b.idcat LEFT JOIN ".$cfg['tab']['art_lang']." AS c ON b.idart = c.idart LEFT JOIN ".$cfg['tab']['content']." AS d ON c.idartlang = d.idartlang LEFT JOIN ".$cfg['tab']['cat_lang']." AS e ON a.idcat = e.idcat WHERE a.parentid IN (".implode(", ", $unterkat).") AND d.idtype = '".$cmstypeid."' AND d.typeid = '".$numberofcmstype."' AND d.value != '';"; 
$db->query($sql); 
$db->next_record(); 
$anzahl_artikel = $db->f("anzahl"); 

if ($anzahl_artikel > 0) { 
   $sql = "SELECT d.value, b.idart, b.idcat, e.name FROM ".$cfg['tab']['cat']." AS a LEFT JOIN ".$cfg['tab']['cat_art']." AS b ON a.idcat = b.idcat LEFT JOIN ".$cfg['tab']['art_lang']." AS c ON b.idart = c.idart LEFT JOIN ".$cfg['tab']['content']." AS d ON c.idartlang = d.idartlang LEFT JOIN ".$cfg['tab']['cat_lang']." AS e ON a.idcat = e.idcat WHERE a.parentid IN (".implode(", ", $unterkat).") AND d.idtype = '".$cmstypeid."' AND d.typeid = '".$numberofcmstype."' AND d.value != '';"; 
   $db->query($sql); 

   while ($db->next_record()) { 
      $suche = klein($db->f("value")); 
      $suchindex = substr($suche, 0, 1); 
      $titel = urldecode($db->f("value")); 
      $artikel = $db->f("idart"); 
      $kategorie = $db->f("idcat"); 
      $abteilung = $db->f("name"); 

      $gefunden = false; 

      foreach ($liste as $value) { 
         $wert = ord($suchindex); 
         if (($wert > 47) && ($wert < 57)) 
            $suchindex = "0-9"; 

         if ($value == $suchindex) { 
            $gefunden = true; 
            break; 
         } 
      } 

      if ($gefunden) { 
         $gesamt[$suchindex][] = array('suche' => $suche, 'titel' => $titel, 'kategorie' => $kategorie, 'artikel' => $artikel, 'abteilung' => $abteilung); 
      } else { 
         $gesamt['@'][] = array('suche' => $suche, 'titel' => $titel, 'kategorie' => $kategorie, 'artikel' => $artikel, 'abteilung' => $abteilung); 
      } 
   } 

   echo '            <tr><td align="right" colspan="3" class="liste">'; 
   for ($i = 0; $i < 14; $i++) { 
      $text = strtoupper($liste[$i]); 

      if (is_array($gesamt[ $liste[$i] ])) { 
         $text = '<a href="#'.$text.'" class="liste">'.$text.'</a>'; 
      } 

      echo $text.'&nbsp;'; 
   } 
   echo '</td></tr> 
            <tr><td align="right" colspan="3" class="liste">'; 
   for ($i = 14; $i < 28; $i++) { 
      $text = strtoupper($liste[$i]); 

      if (is_array($gesamt[ $liste[$i] ])) { 
         $text = '<a href="#'.$text.'" class="liste">'.$text.'</a>'; 
      } 

      echo $text.'&nbsp;'; 
   } 
   echo '</td></tr> 
            <tr><td colspan="3" class="text">Dieses Glossar enth&auml;lt '.$anzahl_artikel.' Artikel.</td></tr> 
'; 

   foreach ($liste as $buchstabe) { 
      if (is_array($gesamt[$buchstabe])) { 
         sort($gesamt[$buchstabe]); 

         $text = strtoupper($buchstabe); 

         echo '            <tr><td colspan="3" width="'.$textspalteplus.'"><img src="images/dotclear.gif" width="'.$textspalteplus.'" height="20" alt=""></td></tr> 
            <tr> 
               <td valign="top" width="'.$breiterand.'">&nbsp;</td> 
               <td valign="top" width="'.$breitekomplett.'" valign="top"><a name="'.$text.'"></a>'.$text.'</td> 
               <td valign="top" width="'.$breiterand.'">&nbsp;</td> 
            </tr> 
'; 

         foreach ($gesamt[$buchstabe] as $eintrag) { 
            $link = $sess->url("front_content.php?idcat=".$eintrag['kategorie']."&idart=".$eintrag['artikel'].$sessionid); 

            echo '            <tr> 
               <td valign="top" width="'.$breiterand.'">&nbsp;</td> 
               <td valign="top" width="'.$breitekomplett.'" valign="top"><a href="'.$link.'" class="liste_headlinelink">'.$eintrag['titel'].'</a> ('.$eintrag['abteilung'].')</td> 
               <td valign="top" width="'.$breiterand.'">&nbsp;</td> 
            </tr> 
'; 
         } 
      echo '            <tr> 
               <td valign="top" width="'.$breiterand.'">&nbsp;</td> 
               <td valign="top" width="'.$breitekomplett.'">&nbsp;</td> 
               <td valign="top" width="'.$breiterand.'">&nbsp;</td> 
            </tr> 
'; 
      } 
   } 

} else { 
   echo '            <tr> 
               <td valign="top" width="'.$breiterand.'">&nbsp;</td> 
               <td valign="top" align="center" width="'.$breitekomplett.'">Dieses Glossar enth&auml;lt leider noch keine Artikel.</td> 
               <td valign="top" width="'.$breiterand.'">&nbsp;</td> 
            </tr> 
            <tr> 
               <td valign="top" width="'.$breiterand.'">&nbsp;</td> 
               <td valign="top" width="'.$breitekomplett.'">&nbsp;</td> 
               <td valign="top" width="'.$breiterand.'">&nbsp;</td> 
            </tr> 
'; 
} 

unset ($breiterand); 
unset ($breitekomplett); 

?> 
Viel Spass beim Anpassen.

Gruß
HerrB
Zuletzt geändert von HerrB am So 9. Okt 2005, 13:53, insgesamt 4-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

Aixtraweb
Beiträge: 100
Registriert: Do 23. Sep 2004, 10:55
Wohnort: Herzogenrath
Kontaktdaten:

Beitrag von Aixtraweb » Fr 22. Apr 2005, 12:42

HerrB hat geschrieben:Contenido 4.4.5 hat wohl Probleme mit verschachtelten array-Klammern.

Geht nicht:

Code: Alles auswählen

is_array($gesamt[$liste[$i]])
Geht:

Code: Alles auswählen

is_array($gesamt[ $liste[$i] ])
Ich habe den Code auch noch ein bisschen überarbeitet; man kan nun die notwendigen Parameter am Anfang des Outputs angeben (wobei eine Konfiguration natürlich schöner wäre, aber aud schnelle...).

Für das Glossar muss eine Oberkategorie erzeugt werden. Darunter legt man für jeden Anfangsbuchstaben eine Kategorie an.

$parentcatid ist die idcat der Oberkategorie. $cmstypeid ist die interne ID des Content-Typs, 2 ist z.B. CMS_HTML. $numberofcmstype ist die Nummer, die im Textmodul hinter dem Contenttyp steht, z.B. 1 bei CMS_HTML[1].

Viel Spass beim Anpassen.

Gruß
HerrB
Hallo HerrB!

Erstmal ganz herzlichen Dank für Deine Mühe mit mir und dem Modul! Die ersten Fortschritte habe ich nun erzielen können :-)
Was mir nicht gefällt und was vermieden werden sollte ist, dass nun das Menü in Contenido wie folgt aussieht:

ABC...
A
B
C

Mein Wunsch wäre allerdings, dass nur ABC... aktiv ist, also die Unterkategorien nicht angezeigt werden.
Mit freundlichen Grüßen
Jörg Knörchen

Meine Hobby-Webseite:
www.mein-foto-abc.de : contenido 4.6.15 - I love it! : www.yogie.de : www.bastelstun.de

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

Beitrag von HerrB » Fr 22. Apr 2005, 15:12

Ich bin mir nicht sicher, aber ich glaube, Du kannst die Unterkategorien deaktivieren - die werden von den Abfragen meines Erachtens ignoriert.

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

Aixtraweb
Beiträge: 100
Registriert: Do 23. Sep 2004, 10:55
Wohnort: Herzogenrath
Kontaktdaten:

Beitrag von Aixtraweb » Fr 22. Apr 2005, 15:17

HerrB hat geschrieben:Ich bin mir nicht sicher, aber ich glaube, Du kannst die Unterkategorien deaktivieren - die werden von den Abfragen meines Erachtens ignoriert.

Gruß
HerrB
Super! Ja! Genauso klappts! :lol:
Herzlichen Dank nochmal!
Schönes Wochenende!
Mit freundlichen Grüßen
Jörg Knörchen

Meine Hobby-Webseite:
www.mein-foto-abc.de : contenido 4.6.15 - I love it! : www.yogie.de : www.bastelstun.de

general2000plus
Beiträge: 53
Registriert: Mi 5. Jan 2005, 13:58
Wohnort: Coellefornia
Kontaktdaten:

Beitrag von general2000plus » Mi 27. Apr 2005, 00:51

hallo
bei mir kriege ich das ding nicht zum laufen.
kurze beschreibung was ich gemacht habe:

- modul mit entsprechendem glossarcode erzeugt
- parameter idcat ist bei mir 11 und die beiden anderen 1 für headline und 1 für den index
- in der gleichen kategorie habe ich jetzt drei artikel angelegt mit den entsprechenden headline modul und brav ausgefüllt
-im startartikel ist das glossar modul
ich erhalte immer die meldung:
dieses glossar enthält leider noch keine artikel.
kann mir einer sagen was ich falsch mache?

danke
gruss
kai[/list]

Aixtraweb
Beiträge: 100
Registriert: Do 23. Sep 2004, 10:55
Wohnort: Herzogenrath
Kontaktdaten:

Beitrag von Aixtraweb » Mi 27. Apr 2005, 07:09

general2000plus hat geschrieben:hallo
bei mir kriege ich das ding nicht zum laufen.
kurze beschreibung was ich gemacht habe:

- in der gleichen kategorie habe ich jetzt drei artikel angelegt mit den entsprechenden headline modul und brav ausgefüllt

danke
gruss
kai[/list]
Lege mal eine Unterkategorie an und schiebe dorthin die Artikel!

Es ist keine Artikelliste! Sondern ein Glossar, d.h. er sammelt alle Artikel in allen Unterkategorien der Oberkategorie und Erstellt einen Index hierfür!
Mit freundlichen Grüßen
Jörg Knörchen

Meine Hobby-Webseite:
www.mein-foto-abc.de : contenido 4.6.15 - I love it! : www.yogie.de : www.bastelstun.de

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

Beitrag von HerrB » Mi 27. Apr 2005, 17:24

Ich habe ein Beispiel ergänzt.

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

Gesperrt