Glossar, Verlinkung per Anker funktioniert nicht mehr

Gesperrt
sabsab
Beiträge: 35
Registriert: Mo 21. Feb 2005, 16:10
Wohnort: München
Kontaktdaten:

Glossar, Verlinkung per Anker funktioniert nicht mehr

Beitrag von sabsab »

Hallo zusammen,

ein bisschen spät dran: Habe von v4.4.x auf 4.6.15 umgestellt, soweit alles Ok, aber einige Module funktionieren nicht mehr u.a. mein Glossar.

Anzeige bei Aufruf noch korrekt, wenn ich dann aber einen Buchstaben anklicke springt die Seite wieder auf Hauptseite und nicht an die Stelle des Glossars.
http://reg-dich.de/stm/cms/front_conten ... =267&m=&s=
Aber wie gesagt war ja auch für v4.4 Besteht trotzdem Hoffnung oder zu aufwändig?

Danke und Gruß
sabsab

Code: Alles auswählen

<?php 

$parentcatid = 132; 
$cmstypeid = 1; 
$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 = 500 - 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 bgcolor="#deeaf6"><td style="border: 0px; border-top:1px; border-left:0px; border-right:0px; border-color: #5E91AE; border-style: solid; padding-right:5px; padding-bottom:3px; padding-top:3px"align="right" colspan="3" class="punkte">'; 
   for ($i = 0; $i < 14; $i++) { 
      $text = strtoupper($liste[$i]); 

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

      echo $text.'&nbsp;'; 
   } 
   echo '</td></tr> 
            <tr bgcolor="#deeaf6"><td style="padding-bottom:3px; padding-top:3px"align="right" colspan="3" class="punkte">'; 
   for ($i = 14; $i < 28; $i++) { 
      $text = strtoupper($liste[$i]); 

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

      echo $text.'&nbsp;'; 
   } 
   echo '</td></tr> 
            <tr><td style="border: 0px; border-bottom:1px; border-left:0px; border-right:0px; border-color: #5E91AE; border-style: solid; padding-right:5px; padding-bottom:3px; padding-top:3px" align="right" colspan="3" class="subheadline">Das Glossar enthä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.'"> </td></tr> 
            <tr> 
               <td valign="top" width="'.$breiterand.'">&nbsp;</td> 
               <td class="subheadline" valign="top" width="'.$breitekomplett.'" valign="top"><img src="images/nav10.gif"><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  style="border: 0px; border-bottom:1px; border-left:0px; border-right:0px; border-color: #DEEAF6; border-style: solid" class="punkte" valign="top" width="'.$breitekomplett.'" valign="top"><a href="'.$link.'" class="subheadline">'.$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ät 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); 

?> 
Contenidoversion 4.6.15
Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Beitrag von Dodger77 »

sabsab
Beiträge: 35
Registriert: Mo 21. Feb 2005, 16:10
Wohnort: München
Kontaktdaten:

Beitrag von sabsab »

Wow, vielen Dank Dodger77!
Das war`s. Problem damit gelöst.
Contenidoversion 4.6.15
Gesperrt