Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 12. Januar 2015 17:16

bd0
Server-Pate
Ort: Köln
Registriert: 22. Juni 2011
Beiträge: 208

menumanager -> "ein Level höher" button

Hallo,

ich verwende
CMS-Version 1.11.10
MenuManager 1.8.6

Ich habe eine Seite mit einer stellenweise relativ tiefen Seitenstruktur.
Ich möchte über die Navigation aber nicht die komplette Seitenstruktur darstellen müssen.
In den Layouts werden maximal zwei Level gleichzeitig angezeigt, also z.b. hauptmenüpunkt 1.1, 1.2 die daruntergelegenen Seiten 1.2.1, 1.2.2, und 1.3

die angenommen Seitenstruktur sieht zum beispiel so aus (level1 ist nur ein abschnittstrenner) :
1 deutsch
1.1 hauptseite 1
1.2 hauptseite 2
  1.2.1 sub 1
  1.2.2 sub 2
     1.2.2.1 sub2 sub1
     1.2.2.2 sub2 sub2
     1.2.2.3 sub2 sub3
   1.2.3 sub 3
1.3 hauptseite 3

auf Level 2 wird erstmal nur:

1.1 hauptseite 1
1.2 hauptseite 2
  1.2.1 sub 1
  1.2.2 sub 2
  1.2.3 sub 3
1.3 hauptseite 3

in der Navigation angezeigt, die Subs in einem dropdown.

geht man auf Level 3, z.b. 1.2.2 wandern alle subs in die hauptnavigation:

1.2.1 sub 1
1.2.2 sub 2
     1.2.2.1 sub2 sub1
     1.2.2.2 sub2 sub2
     1.2.2.3 sub2 sub3
1.2.3 sub 3


Um nun wieder auf Level 2 gelangen zu können wäre ein Link "eine Ebene höher", wie man es vom Windows Explorer kennt, toll. Ich weiss allerdings nicht wie und wo ich es im "simple_navigation" template integrieren muss.

der Menuaufruf im Template sieht bei mir so aus

{menu number_of_levels="2" start_level=$level}
$level gibt den aktellen Level an, der über ein udt ermittelt wird.
Es wird also immer ausgehend vom gerade verwendeten Level nur noch die darunterliegenden Ebenen angezeigt.
Gibts dafür prinzipiell auch ne einfachere Lösung also mit dem Level-UDT, oder ist es soweit schon mal richtig gedacht?


meine Wunschausgabe für Level 3 (und tiefer) wäre dann sowas in der Art:

<< 1.2 hauptseite 2  (wobei << der link auf die Ebene höher wäre)
1.2.1 sub 1
1.2.2 sub 2
     1.2.2.1 sub2 sub1
     1.2.2.2 sub2 sub2
     1.2.2.3 sub2 sub3
1.2.3 sub 3


Bestimmt ist das kein grosses Problem wenn man weiss wie big_smile
Über Hilfe würde ich mich riesig freuen!


hier noch das verwendete (unveränderte) Menütemplate

[== smarty ==]
{assign var='number_of_levels' value=10000}
{if isset($menuparams.number_of_levels)}
  {assign var='number_of_levels' value=$menuparams.number_of_levels}
{/if}

{if $count > 0}
<ul>
    {foreach from=$nodelist item=node}
        {if $node->depth > $node->prevdepth}
            {repeat string="<ul>" times=$node->depth-$node->prevdepth}
        {elseif $node->depth < $node->prevdepth}
            {repeat string="</li></ul>" times=$node->prevdepth-$node->depth}
            </li>
        {elseif $node->index > 0}
           </li>
        {/if}

        {if $node->parent == true or $node->current == true}
            {assign var='classes' value='menuactive'}
                {if $node->parent == true}
                    {assign var='classes' value='menuactive menuparent'}
                {/if}
                {if $node->children_exist == true and $node->depth < $number_of_levels}
                    {assign var='classes' value=$classes|cat:' parent'}
                {/if}
            <li class="{$classes}">
                <a class="{$classes}" href="{$node->url}">
                    <span>{$node->menutext}</span>
                </a>

        {elseif $node->children_exist == true and $node->depth < $number_of_levels and $node->type != 'sectionheader' and $node->type != 'separator'}
            <li class="parent">
                <a class="parent" href="{$node->url}">
                    <span>{$node->menutext}</span>
                </a>
        
        {elseif $node->current == true}
            <li class="currentpage">
                <h3><span>{$node->menutext}</span></h3>
        
        {elseif $node->type == 'sectionheader'}
            <li class="sectionheader">
                <span>{$node->menutext}</span>
        
        {elseif $node->type == 'separator'}
            <li class="separator" style="list-style-type: none;">
                <hr />
        
        {else}
            <li>
                <a href="{$node->url}">
                    <span>{$node->menutext}</span>
                </a>
        
        {/if}
        
    {/foreach}
    
{repeat string="</li></ul>" times=$node->depth-1}</li>
</ul>
{/if}

Offline

#2 13. Januar 2015 07:56

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.018
Webseite

Re: menumanager -> "ein Level höher" button

Schau dir mal Toolbox oder CGSimpleSmarty an - die haben eine Funktion, mit der man den Alias des aktuellen Parents ermitteln kann. cms_selflink macht dir daraus einen vollständigen Link, und das Aussehen als Button ist nur eine Frage der CSS wink.

Offline

#3 13. Januar 2015 08:43

bd0
Server-Pate
Ort: Köln
Registriert: 22. Juni 2011
Beiträge: 208

Re: menumanager -> "ein Level höher" button

Alles klar, danke für den Tipp! Das schau ich mir mal an.

Offline