Posting in the Magento forums has been disabled pending the implementation of a new and improved forum solution which should better serve the community.

For new questions please post at magento.stackexchange.com, the community-run support site for the Magento community. We will be providing updates on the new forum solution soon. For questions or concerns please email community@magento.com.

Magento Forum

[gelöst] CMS-Hierarchie abbilden
 
HenningP
Sr. Member
 
Total Posts:  78
Joined:  2010-07-14
 

Hallo,

ich nutze Magento Enterprise (1.9.0.0); darin kann man CMS-Seiten in einer Hierarchie abbilden, zB. so:

- Infos
- - Anfahrt
- - AGB
- - Impressum

Genau diese Hierarchie möchte ich nun im linken Block abbilden.

Hinweise?

Danke

Henning

 
Magento Community Magento Community
Magento Community
Magento Community
 
HenningP
Sr. Member
 
Total Posts:  78
Joined:  2010-07-14
 

Lösung gefunden, eigentlich ganz einfach:

in der Hierarchie-Verwaltung kann man das Menu aktivieren:

Navigation Menu Options -> Enable Navigation Menu [Yes]

Da die Ausgabe als <ul> oder <ol> den Nachteil hat, daß man ein schnödes “-” nicht als Listenzeichen nehmen kann und ich keine Lust hatte, das als Grafik per CSS zu machen, habe ich mir die drawMenu() Funktion aus class Enterprise_Cms_Block_Hierarchy_Menu kopiert und angepaßt:

function drawMenu($thisNodeId, array $tree$parentNodeId 0{
    
if (!isset($tree[$parentNodeId])) {
        
return '';
    
}

    $html 
'<ul'.($parentNodeId == ?' class="cms-menu"' '').'>';

    foreach (
$tree[$parentNodeId] as $nodeId => $node{
        
/* @var $node Enterprise_Cms_Model_Hierarchy_Node */
        
$nested drawMenu($thisNodeId$tree$nodeId);
        
$hasChilds = ($nested != '');
        
$class='';
        if (
$thisNodeId == $nodeId$class='active'; else $class='';
        
$html .= '<li'.($class ' class="'.$class.'"' '').'>';
        if (
$hasChilds$html.='<span>';
        
$html.='- ';    // der "- " soll nicht Bestandteil des Links sein
        
if ($thisNodeId != $nodeId$html.='<a href="'.$node->getUrl().'">';
        
$html .= $node->getLabel();
        if (
$thisNodeId != $nodeId$html.='</a>';
        if (
$hasChilds$html .= '</span>'.$nested;
        
$html .= '</li>';
    
}

    
return $html.'</ul>';
}

$thisNodeId
=$this->_node->getId();
$_tree $this->getTree();
echo 
drawMenu($thisNodeId,$_tree);

Damit sollte man auch andere Strukturen bauen können.

Henning

 
Magento Community Magento Community
Magento Community
Magento Community
Magento Community
Magento Community
Back to top