PDA

Zobacz pełną wersję : Błąd menu w IE - separator i funkcja echo



schizoos
05-05-2008, 17:19
Witam!

Zaczalem korzystac z modulu shHMenu. Slecze od dwoch dni nad separatorem, ktory chcialbym dodac (menu jest poziome). Moze ktos z was bedzie w stanie mi pomoc. Sprawa wyglada nastepujaco

w pliku modulu po instalacji dodalem do styli ten:

."<style type=\"text/css\">\n"
.'
#{shMenuId} separatorek {
color: #000000;
font-weight: normal;
font-family: arial;
}
'
."</style>\n"dalej mamy kod, ktory 'drukuje' nam menu na ekranie:

function shRecurseHSMenu( $id, $level, $shMenuCount, &$children, &$open, &$indents, &$params ) {
global $shAccessKeys, $shAccessKeysList;
if (@$children[$id]) {
$shSubMenuCount = 1;
if (!$shMenuCount) $shMenuCount = $level+1;
foreach ($children[$id] as $row) {
if ($level == 0) {
if (@$children[$row->id]) $shSubName = $params->get('class_sfx').'-sub-'.$shSubMenuCount;
else $shSubName = '';
echo '<dt id="'.$params->get('class_sfx').'-'.$shMenuCount.'-'.$shSubMenuCount.'"'
.' onmouseover="javascript:shHMenuDtIn(\''.$shSubName.'\')"'
.' onmouseout="javascript:shHMenuDtOut()"'
.'>';
echo '<separatorek>'."\n";
echo "|";
echo "</separatorek>";
echo shGetMenuLink( $row, $level, $params, $open,
($shAccessKeys? $shAccessKeysList[$shSubMenuCount-1]:'') );

echo "</dt>\n";
if (@$children[$row->id]) {

echo '<dd id="'.$params->get('class_sfx').'-sub-'.$shSubMenuCount.'"'
.' onmouseover="javascript:shHMenuDdIn(\''.$shSubName.'\')"'
.' onmouseout="javascript:shHMenuDdOut()"'
.' >'."\n";
shRecurseHSMenu( $row->id, $level+1, $shSubMenuCount, $children, $open, $indents, $params );
}
} else {
echo shGetMenuLink( $row, $level, $params, $open );
}
$shSubMenuCount++;
}
}
}jak widac dodalem trzy linijki do standardowego kodu, ktory ma rozdzielac pozycje w menu pierwszego poziomu (dt) pozioma kreska. dd nas nie interesuje, bo to menu drugiego poziomu.
echo '<separatorek>'."\n";
echo "|";
echo "</separatorek>";

Otoz problem polega na tym - Firefox, Opera wyswietlaja wszystko poprawnie, zgodnie z moim zalozeniem.
Problem pojawia sie w IE, gdzie faktycznie separator jest wyswietlany, ale w ogole nie widzi nadanego mu stylu. Probowalem z komentarzami warunkowymi itp, ale kompletnie nic z tego nie wyszlo. Prawodpodobnie funkcja echo'<separatorek>'; jest niepoprawna.

Prosze o ratunek!

schizoos
12-05-2008, 11:28
Czy ktoś jest w stanie pomóc mi w rozwiązaniu tego problemu? Ponawiam wątek...