Hallo!
Zuerst danke für das Modul - schöne Arbeit!
Verwende das Modul für eine gesplittete Navigation, doch leider bekomme ich seltsame Fehler und kann mir nicht ganz erklären wo der Hund begraben ist.
Navigation_Hauptebene:
Code: Alles auswählen
<?php
cInclude('classes', 'class.aQnavigation.php');
$cApiClient = new cApiClient($client);
$aQnavigation = new aQnavigation($cApiClient->getProperty('navigation', 'idcat_hauptnavi'));
$aQnavigation->before(0,'<ul id="navigationmain">');
$aQnavigation->between(0, '');
$aQnavigation->after(0,'</ul>');
$aQnavigation->maskNormal(0, '<li><a href="{link}">{name1}</a></li>');
$aQnavigation->maskNormalSub(0, '<li><a href="{link}" class="sub">{name1}</a></li>');
$aQnavigation->maskSelected(0, '<li><a href="{link}" class="activ">{name1}</a></li>');
$aQnavigation->maskSelectedSub(0, '<li><a href="{link}" class="activ">{name1}</a></li>');
echo $aQnavigation->showNavigation(0);
?>
Navigation_Subebene:
Code: Alles auswählen
<?php
cInclude('classes', 'class.aQnavigation.php');
$cApiClient = new cApiClient($client);
$treeID = intval($cApiClient->getProperty('navigation', 'idcat_hauptnavi'));
$aQnavigation = new aQnavigation($treeID);
// Ausgabe 2. Stufe
$aQnavigation->before( 2, "\n\t<ul class='opensub'>");
$aQnavigation->after( 2, "\n\t</ul>\n");
$aQnavigation->between( 2, "\n\t\t");
$aQnavigation->maskNormal( 2, "<li class='indented'><a href='{link}'>{name1}</a></li>" );
$aQnavigation->maskSelected( 2, "<li class='indented active'><a href='{link}' class='active'>{name1}</a></li>" );
// Ausgabe 1. Stufe
$aQnavigation->before( 1, "\n<ul id='subnavigation'>\n");
$aQnavigation->after( 1, "\n</ul>\n");
$aQnavigation->between( 1, "\t");
$aQnavigation->maskNormal( 1, "\n<li><a href='{link}'>{name1}</a></li>" );
$aQnavigation->maskSelectedSub(1, "\n<li class='more open'><a href='{link}' class='active'>{name1}</a>{sub}</li>" );
$aQnavigation->setSub(1, $aQnavigation->showNavigation(2));
echo $aQnavigation->showNavigation(1);
?>
Die Kategorien sind zumeist entweder:
- Haupt
-- Sub
-- Sub
-- Sub
-- Sub
oder
- Haupt
-- Sub
--- SubSub
--- SubSub
-- Sub
Bei allen Menüs mit SubSub Ebene funktioniert alles Prima, nur wenn ich eine Sub Ebene !ohne! SubSub auswähle funktioniert das Menü leider nicht mehr.
Mal ein fehlerfreier Beispielcode für eine aktive SubSub Kategorie:
Code: Alles auswählen
<ul id='subnavigation'>
<li><a href='/neukunden/produkte/leadsgenerator/'>Leadsgenerator®</a></li>
<li class='more open'><a href='/neukunden/produkte/socratesdatabase/' class='active'>Socratesdatabase®</a>
<ul class='opensub'><li class='indented'><a href='/neukunden/produkte/socratesdatabase/vorteile/'>Vorteile</a></li>
<li class='indented'><a href='/neukunden/produkte/socratesdatabase/beispiele/'>Beispiele</a></li>
<li class='indented active'><a href='/neukunden/produkte/socratesdatabase/seminare/' class='active'>Seminare</a></li>
<li class='indented'><a href='/neukunden/produkte/socratesdatabase/einsatzgebiete/'>Einsatzgebiete</a></li>
</ul>
</li>
<li><a href='/neukunden/produkte/voicegenerator/'>Voicegenerator®</a></li>
<li><a href='/neukunden/produkte/salesturbo/'>Salesturbo®</a></li>
</ul>
Beispielcode
aktive Level 0 Ebene (z.b: Kontakt) mit nur Subs (ohne SubSubs):
Code: Alles auswählen
<ul id='subnavigation'>
<li><a href='/neukunden/kontakt/anschrift/'>Anschrift</a></li>
<li><a href='/neukunden/kontakt/callback/'>Callback</a></li>
<li><a href='/neukunden/kontakt/kontaktformular/'>Kontaktformular</a></li>
</ul>
Und jetzt die fehlerhafte Ausgabe, wenn ich eine dieser Subs (callback) auswähle
Code: Alles auswählen
<ul id='subnavigation'>
<li><a href='/neukunden/kontakt/anschrift/'>Anschrift</a></li>
<li class='more open'><a href='/neukunden/kontakt/callback/' class='active'>Callback</a>
<ul class='opensub'></li>
<li><a href='/neukunden/kontakt/kontaktformular/'>Kontaktformular</a></li>
</ul>
<!-- content schon vom nächten modul..... -->
<div class="content left bxl">
<h1>Callback Formular<br/>
</h1>
..
..
..
..
Was läuft denn da schief
Es wird $aQnavigation->before( 2, "\n\t<ul class='opensub'>"); fälschlicher Weise gerufen aber $aQnavigation->after( 2, "\n\t</ul>"); nicht?? Und warum überhaupt der Sprung in die 2. Subebene?
HILFE
Wenn ich allerdings das Outputmodul der Subnavi wiefolgt ändere:
Code: Alles auswählen
<?php
cInclude('classes', 'class.aQnavigation.php');
$cApiClient = new cApiClient($client);
$treeID = intval($cApiClient->getProperty('navigation', 'idcat_hauptnavi'));
$aQnavigation = new aQnavigation($treeID);
// Ausgabe 2. Stufe
$aQnavigation->before( 2, "");
$aQnavigation->after( 2, "");
$aQnavigation->between( 2, "\n\t\t");
$aQnavigation->maskNormal( 2, "<li class='indented'><a href='{link}'>{name1}</a></li>" );
$aQnavigation->maskSelected( 2, "<li class='indented active'><a href='{link}' class='active'>{name1}</a></li>" );
// Ausgabe 1. Stufe
$aQnavigation->before( 1, "\n<ul id='subnavigation'>\n");
$aQnavigation->after( 1, "\n</ul><!-- after sub1 -->\n");
$aQnavigation->between( 1, "\t");
$aQnavigation->maskNormal( 1, "\n<li><a href='{link}'>{name1}</a></li>" );
$aQnavigation->maskSelected( 1, "\n<li><a href='{link}' class='active'>{name1}</a></li>" );
$aQnavigation->maskSelectedSub(1, "\n<li class='more open'><a href='{link}' class='active'>{name1}</a>\n\t<ul class='opensub'>{sub}\n</ul>\n</li>" );
$aQnavigation->setSub(1, $aQnavigation->showNavigation(2));
echo $aQnavigation->showNavigation(1);
?>
Läuft alles wieder normal...... steh ich am Schlauch was die Methoden before/after machen sollten?
Ciao
wewo