Seite 1 von 1

Glossar, Verlinkung per Anker funktioniert nicht mehr

Verfasst: Do 5. Jul 2007, 17:31
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); 

?> 

Verfasst: Do 5. Jul 2007, 17:40
von Dodger77

Verfasst: Do 5. Jul 2007, 17:56
von sabsab
Wow, vielen Dank Dodger77!
Das war`s. Problem damit gelöst.