Seite 1 von 1

Navigationspfad Modul, maxLength Problem

Verfasst: Mo 20. Nov 2006, 04:55
von cschwan2006
Hallo habe folgendes Problem, wenn ich bei dem code unten bei max_Length statt der 65, 10 eingebe bleibt alles unverändert, irrendwie scheint das modul nicht richtig zu arbeiten, habe die neue version 4.6.15, hat vielleicht einer ne idee?

Code: Alles auswählen

<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname  :      Navigationpath
* Author(s)   :     Andreas Lindner
* Copyright   :     Contenido - four for business, Andreas Lindner
* Created     :     05-08-2005
************************************************/

#Settings
$separator = '>';
$max_length = 65;

#Get path to root
$dummy = conCreateLocationString($idcat, ' '.$separator.' ', $retval, true, "navipath", 0);

if ($retval=='') {
   $retval='&nbsp;';   
} else {
   $pattern = "'>.*?<'";
   
   preg_match_all($pattern, $retval, $matches);
   $matches = $matches[0];
   
   #Get effective text length
   $length = 0;
   foreach ($matches as $value) {
      $length += strlen($value) - 2;
   }
   
   #Get shorten factor
   if ($length > $max_length * 4) {
      $shorten = 5;
   }
   elseif ($length > $max_length * 3) {
      $shorten = 4;
   }
   elseif ($length > $max_length * 2) {
      $shorten = 3;
   }
   elseif ($length > $max_length) {
      $shorten = 2;
   } else {
      $shorten = 1;
   }
   
   #Shorten items
   if ($length > $max_length) {
      foreach ($matches as $value) {
         if (strpos($value, $separator) === FALSE) {
            $text = substr($value, 1, strlen($value) - 2);
            $len = strlen($text);
            if (strpos($text, ' ') === FALSE) {
               $text_new = $text;
            } else {
               $text_new = capiStrTrimAfterWord($text, intval($len / $shorten));
            }
   
            if (strlen($text) != strlen($text_new)) {
               $text_new .= '...';
            }
   
            $text_new = '>'.$text_new.'<';
            $retval = str_replace('>'.$text.'<', $text_new, $retval);
         }
      }
   }
   
   $retval = str_replace('"/index.html"', '"Home/index.html"', $retval);

}

echo $retval;
?>
vielen dank im vorraus

gruss christian

Verfasst: Mi 22. Nov 2006, 10:38
von emergence
soweit ich das sehe werden nur menüpunkte verkürzt die aus mehreren wörtern bestehen...

Verfasst: Sa 25. Nov 2006, 04:05
von cschwan2006
emergence hat geschrieben:soweit ich das sehe werden nur menüpunkte verkürzt die aus mehreren wörtern bestehen...
Also habe mal das ganze auf 1 gesetzt alles unverändert? Also menüpunkt scheint das ja nicht so sein! :roll:

Komisch? wofür ist dann da die funktion da?

Verfasst: Sa 25. Nov 2006, 12:18
von emergence
cschwan2006 hat geschrieben:Komisch? wofür ist dann da die funktion da?
ich hab ja nur gesagt für mich sieht das so aus...
keine ahnung ob das wirklich funktioniert... ich verwende es nicht...

Verfasst: Sa 25. Nov 2006, 19:20
von cschwan2006
emergence hat geschrieben:
cschwan2006 hat geschrieben:Komisch? wofür ist dann da die funktion da?
ich hab ja nur gesagt für mich sieht das so aus...
keine ahnung ob das wirklich funktioniert... ich verwende es nicht...
Hast du vielleicht eine die funktioniert?

Verfasst: Di 28. Nov 2006, 11:10
von emergence
cschwan2006 hat geschrieben:Hast du vielleicht eine die funktioniert?
du meinst eine die ein ähnliches feature hat ? nein...