Magento 2: दृश्यपटल पर व्यवस्थापक श्रेणी का पेड़ दिखाएं


10

मैं व्यवस्थापक डिफ़ॉल्ट श्रेणियों के पेड़ की तरह दृश्यपटल पर श्रेणियां ट्री प्रदर्शित करना चाहता हूं।

फ्रंट साइड के लिए मेरे कस्टम मॉड्यूल और सामग्री क्षेत्र में श्रेणी वृक्ष संरचना प्रदर्शित करने की आवश्यकता है।

किसी भी सहायता की सराहना की जाएगी।

धन्यवाद।



न केवल श्रेणी का नाम, बल्कि प्रशासन जैसे पेड़ के साथ श्रेणी की जरूरत है।
सुरेश चिकानी

कृपया देखें: mage2.pro/t/topic/912 यह आपकी मदद करेगा
निकुंज वदरिया

1
@nikunjVadariya आपके सुझाव के लिए धन्यवाद। मुझे जाँचने दो।
सुरेश चिकानी

जवाबों:


4

1) Magento 2 के रूट डायरेक्टरी से "ऐप" पर जाएं और नया डायरेक्टरी कोड बनाएं। फिर ऐप / कोड , नेमस्पेस और मॉड्यूल नाम में दो और निर्देशिकाएं बनाएं । अंतिम निर्देशिका इस तरह दिखाई देगी: ऐप / कोड / डेमो / कैटेगरी

मॉड्यूल नाम के रूप में नेमस्पेस और कैटेगरी के रूप में डेमो

2) एप्लिकेशन / कोड / डेमो / कैटेगिरी / आदि में "मॉड्यूल.एक्सएमएल" फाइल बनाएं और फाइल में कोड के नीचे पेस्ट करें:

<?xml version="1.0"?>
<!--
/**
 * Copyright © 2013-2017 Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
-->
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
    <module name="Demo_CategoryTree" setup_version="1.0.0">
        <sequence>
            <module name="Magento_Catalog"/>
        </sequence>
    </module>
</config>

3) एप्लिकेशन / कोड / डेमो / कैटेगिरी / आदि / फ्रंटएंड में "path.xml" फाइल बनाएं और फाइल में कोड के नीचे पेस्ट करें:

<?xml version="1.0"?>
<!--
/**
 * Copyright © 2013-2017 Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
-->
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/routes.xsd">
    <router id="standard">
        <route id="categorytree" frontName="categorytree">
            <module name="Demo_CategoryTree" />
        </route>
    </router>
</config>

4) एप्लिकेशन / कोड / डेमो / कैटेगिरी में "Registration.php" फाइल बनाएं और फाइल में कोड के नीचे पेस्ट करें:

<?php
/**
 * Copyright © 2013-2017 Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */

\Magento\Framework\Component\ComponentRegistrar::register(
    \Magento\Framework\Component\ComponentRegistrar::MODULE,
    'Demo_CategoryTree',
    __DIR__
);

5) एप्लिकेशन / कोड / डेमो / कैटेगिरी / कंट्रोलर / इंडेक्स में "Index.php" फाइल बनाएं और फाइल में कोड के नीचे पेस्ट करें:

<?php
/**
 *
 * Copyright © 2013-2017 Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
namespace Demo\CategoryTree\Controller\Index;

class Index extends \Magento\Framework\App\Action\Action
{
    /**
     * @var \Magento\Framework\View\Result\PageFactory $resultPageFactory
     */
    protected $resultPageFactory;

    /**
     * @param \Magento\Framework\App\Action\Context $context
     * @param \Magento\Framework\View\Result\PageFactory $resultPageFactory
     */
    public function __construct(
        \Magento\Framework\App\Action\Context $context,
        \Magento\Framework\View\Result\PageFactory $resultPageFactory
    ) {
        $this->resultPageFactory = $resultPageFactory;
        parent::__construct($context);
    }

    /**
     * Renders CATEGORYTREE Index page
     *
     * @param string|null $coreRoute
     * @return \Magento\Framework\Controller\Result\Forward
     * @SuppressWarnings(PHPMD.UnusedFormalParameter)
     */
    public function execute($coreRoute = null)
    {
        $resultPage =  $this->resultPageFactory->create();
        $resultPage->getConfig()->getTitle()->set(__('CategoryTree'));
        return $resultPage;
    }
}

6) ऐप / कोड / डेमो / कैटेगिरी / व्यू / फ्रंटएंड / लेआउट में "कैटेगिरी_इंडैक्स_इंडेक्स.एक्सएमएल" फाइल बनाएं और फाइल में कोड के नीचे पेस्ट करें:

<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="2columns-left" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <update handle="styles"/>
    <head>
        <css src="extjs/resources/css/ext-all.css"/>
        <css src="extjs/resources/css/ytheme-magento.css"/>
    </head>
    <body>
        <referenceContainer name="sidebar.additional">
            <block class="Magento\Catalog\Block\Adminhtml\Category\Tree" name="category.tree" template="Demo_CategoryTree::catalog/category/tree.phtml"/>
        </referenceContainer>
    </body>
</page>

7) विक्रेता / मैगनेटो / मॉड्यूल-कैटलॉग / दृश्य / adminhtml / कैटलॉग / श्रेणी / श्रेणी / ट्री.phtml से एप्लिकेशन / कोड / डेमो / श्रेणी / दृश्य / दृश्य / टेम्पलेट / सूची / श्रेणी

8) ऐप / कोड / डेमो / कैटेगिरी / व्यू / फ्रंटएंड में "रिक्जेस्ट-कॉन्फिग.जेएस" फाइल बनाएं और फाइल में कोड के नीचे पेस्ट करें:

var config = {
    "shim": {
        "extjs/ext-tree": [
            "prototype"
        ],
        "extjs/ext-tree-checkbox": [
            "extjs/ext-tree",
            "extjs/defaults"
        ]
    }
};

9) रूट डाइरेक्टरी में नीचे कमांड चलाएं:

php bin/magento setup:upgrade
php bin/magento cache:clean
php bin/magento cache:flush
php bin/magento setup:static-content:deploy

10) इस तरह से url चलाएं " http://local-magento.com/categorytree/index/index " तो आपको नीचे जैसा आउटपुट मिलेगा।

यहाँ छवि विवरण दर्ज करें


hi @nilesh gosai आप कृपया मुझे इस magento.stackexchange.com/questions/249360/…
के

1

ठीक है यह वही है जो मैं अपनी श्रेणी के पेड़ के आधार पर एक मेनू बनाने के लिए उपयोग करता हूं। यह ध्यान दिया जाना चाहिए कि आसानी से मेरी सभी श्रेणियां ID2 के साथ डिफ़ॉल्ट श्रेणी के अंतर्गत संग्रहीत की जाती हैं, जो Magento2 की एक ताजा स्थापना के साथ आती है। यदि आपके पास यह संरचना नहीं है, तो आप वैकल्पिक $soncatsरूप से उन श्रेणियों की आईडी की एक सरणी के रूप में परिभाषित कर सकते हैं जिन्हें आप इसके बजाय लूप करना चाहते हैं।

<ul id="nav" class="accordion vertnav vertnav-top grid-full wide">
    <?php
$fathercat = $objectManager->create('Magento\Catalog\Model\Category')->load(2); //this is my master root category, holds all other categories so I can loop through.
$soncats = $fathercat->getChildrenCategories(); 
$catids = array(2); 
foreach ($soncats as $soncat) {
    $categoryid = $soncat->getId();
    array_push($catids,$categoryid);
}
for($i = 1; $i < count($catids); ++$i) { 
    $basic = 1;
    $catId = $catids[$i];
    $subcategory = $objectManager->create('Magento\Catalog\Model\Category')->load($catId);
    $subcats = $subcategory->getChildrenCategories();
    $categoryname = $subcategory->getName(); 
    $categoryurl = $subcategory->getUrl(); ?>
    <li class="level0 nav-<?php echo $i;?> level-top parent"><a href="<?php echo $categoryurl ?>" class="level-top"><?php echo $categoryname; ?><span class="caret"> </span> </a><span class="opener"> </span>
        <div class="level0-wrapper dropdown-6col" style="left: 0;">
            <div class="level0-wrapper2">
                <ul class="level0 part">
                    <?php
                    foreach ($subcats as $subcat) { 
                        if ($subcat->getIsActive()) {
                            $subcat_url = $subcat->getUrl(); 
                            $subcat_name = $subcat->getName(); ?>
                            <li class="level1 nav-1-<?php echo $basic;?> item"><a href="<?php echo $subcat_url ?>"><?php echo $subcat_name; ?></a></li>
                            <?php
                        } $basic++; } ?>
                    </ul>
                </div>
            </div>
        </div>
    </li>
    <?php } ?>
</ul>

हैलो जॉन, ऐसा लगता है जैसे आपके पास अपरिभाषित चर $ जोड़ा है।
पुरुषोत्तम सांगरौला

हाय मोबाइल फोनों, आपको यह बताने के लिए धन्यवाद कि, जोड़ाक पहले से परिभाषित एक अन्य चर था और मेरी परियोजना के सापेक्ष, यह काम करने के लिए कोड के लिए आवश्यक नहीं है
जॉन

यह कोड बच्चों की उप श्रेणियों को प्रदर्शित नहीं करता है
Haiziz Umer

@HaizizUmer अजीब है क्योंकि यह होना चाहिए, लेकिन मुझे भी आश्चर्य नहीं होगा क्योंकि यह Magento 2.0 के लिए है ~। इसे Magento 2.1+ के लिए कुछ भी संशोधित करने की आवश्यकता हो सकती है
जॉन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.