在phtml中使用observer显示类别和子类别

时间:2017-05-24 14:07:06

标签: php json magento

我已经设置了magento项目。我想使用json格式的observer获取类别和子类别。这个信息我想用phtml调用并在前端显示。

此外,当我创建一个类别和子类别时,观察者会自动使用json数据进行更新。这个json数据应该传递给pthml文件。

我们如何实现这一点。

1 个答案:

答案 0 :(得分:0)

您可以尝试使用此代码,您将获得JSON格式的所有类别和子类别的列表。

     function getCategoryTree($recursionLevel, $storeId = 1)
     {
        $parent = Mage::app()->getStore()->getRootCategoryId();    
        $tree = Mage::getResourceModel('catalog/category_tree');

        $nodes = $tree->loadNode($parent)
                      ->loadChildren($recursionLevel)
                      ->getChildren();
        $tree->addCollectionData(null, false, $parent);

        $categoryTreeData = array();

        foreach ($nodes as $node)
        {
          $categoryTreeData[$node->getData('entity_id')] = getNodeChildrenData($node);
        }

        return $categoryTreeData;
      }

     function getNodeChildrenData(Varien_Data_Tree_Node $node)
     {
        $data = array(
        'title' => $node->getData('name'),
        'url'   => $node->getData('url_key'),
        );

        foreach ($node->getChildren() as $childNode)
        {
            if (!array_key_exists('children', $data))
            {
                $data['children'] = array();
            }

            $data['children'][$childNode->getData('entity_id')] = getNodeChildrenData($childNode);
        }

        return $data;
    }

    print_r(json_encode(getCategoryTree(3)));