šiek tiek pagalbos su meniu templeitu.
Posted: Fri Oct 10, 2008 7:25 am
Turiu tree menu, kitame puslapyje jis veikia. Dabar noriu perkelti ant mūsų mylimo cmsms taigi reikia ir tą meniu kažkaip.
Pabandysiu kuo suprantamiau paaiškinti, bet jeigu kokios info truks pasakykite.
Jo veikimo principas toks:
Realus modelis:
Čia gali būti perteklinio kodo. Strigau toje vietoje, kad neuždaro tėvo, tėvas yra section header paprastai. Tikiuosi galėsite kažkuo pagelbėti 
Pabandysiu kuo suprantamiau paaiškinti, bet jeigu kokios info truks pasakykite.
Jo veikimo principas toks:
Code: Select all
<ul id="treemenu10" class="treeview">
<li>{1.1tėvas}
<ul>
<li>{1.2 tėvas}
<ul>
<li><a href="?url">{1.2.3 vaikas}</a></li>
<li><a href="?url">{1.2.3 vaikas}</a></li>
<li><a href="?url">{1.2.3 vaikas}</a></li>
<li><a href="?url">{1.2.3 vaikas}</a></li>
</ul>
</li>
<li>{1.2 tėvas}
<ul>
<li><a href="?url">{vaikas}</a></li>
<li><a href="?url">{vaikas}</a></li>
</ul>
</li>
<li>{1.2 tėvas}
<ul>
<li><a href="?url">{vaikas}</a></li>
<li><a href="?url">{vaikas}</a></li>
</ul>
</li>
</ul></li>
</ul>
Žinoma mandžiau ir pats daryti templeitą, štai kas gavosi:
Įrankiai
pjūklai
dozuki
ryoba
kataha
vieliniai
galąstuvai
dirbtiniai
stovai
drožėjo įrankiai
drožtuvas Automach
rinkiniai
Code: Select all
<ul id="treemenu" class="treeview">
{assign var="prevdepth" value="1"}
{foreach from=$nodelist item=node}
{assign var="prevdepth" value=$prevnode->depth}
{if ($node->depth <= $prevdepth)}
{if ($prevnode->haschildren == "1")}<li></li></ul></li> {* bugfix if subitems were not shown in menu *}
{else}
{if $node->depth < $prevdepth}
{assign var="act_depth" value=$prevdepth-$node->depth}</li>
{while (($act_depth > 0) and ($collapseopened > 0))}
</ul></li>
{assign var="act_depth" value=$act_depth-1}
{assign var="collapseopened" value=$collapseopened-1}
{/while}
{else}
</li>
{/if}
{/if}
{/if}
{if $node->type == 'separator'}
<li></li>
{else}
{if $node->current == true}
{else}
{/if}
{if $node->type != 'sectionheader'}
<li><a href="{$node->url}" style="cursor:hand;">{$node->menutext}</a>
{/if}
{if $node->type == 'sectionheader'}
<li>{$node->menutext}
{/if}
{if $node->haschildren == '1'}<ul>{/if}
{/if}
{assign var="prevnode" value=$node}
{/foreach}
{if ($prevnode->haschildren == "1")}<li></li></ul></li> {* bugfix if subitems were not shown in menu *}
{else}
{if $prevnode->depth > 1}
{assign var="act_depth" value=$prevnode->depth-1}</li>
{while (($act_depth > 0) and ($collapseopened > 0))}
</ul></li>
{assign var="act_depth" value=$act_depth-1}
{assign var="collapseopened" value=$collapseopened-1}
{/while}
{else}
</li>
{/if}
{/if}
</ul>
{/if}
