আমি অ্যাডমিন ডিফল্ট বিভাগের গাছের মতো অগ্রভাগে বিভাগগুলি গাছ প্রদর্শন করতে চাই।
আমার কাস্টম মডিউল এবং সম্মুখভাগের জন্য সামগ্রীর ক্ষেত্রে বিভাগের গাছের কাঠামো প্রদর্শন করা দরকার।
কোন সাহায্য প্রশংসা করা হবে।
ধন্যবাদ।
আমি অ্যাডমিন ডিফল্ট বিভাগের গাছের মতো অগ্রভাগে বিভাগগুলি গাছ প্রদর্শন করতে চাই।
আমার কাস্টম মডিউল এবং সম্মুখভাগের জন্য সামগ্রীর ক্ষেত্রে বিভাগের গাছের কাঠামো প্রদর্শন করা দরকার।
কোন সাহায্য প্রশংসা করা হবে।
ধন্যবাদ।
উত্তর:
1) Magento 2 এর মূল ডিরেক্টরি থেকে "অ্যাপ" এ যান এবং নতুন ডিরেক্টরি কোড তৈরি করুন। তারপরে অ্যাপ / কোড , নেমস্পেস এবং মডিউল নামে আরও দুটি ডিরেক্টরি তৈরি করুন । চূড়ান্ত ডিরেক্টরিটি এর মতো দেখাবে: অ্যাপ্লিকেশন / কোড / ডেমো / বিভাগশ্রেণী ।
ডেমো যেমন নামস্থান এবং CategoryTree মডিউল নামের।
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) অ্যাপ্লিকেশন / কোড / ডেমো / বিভাগশ্রেণী / ইত্যাদিতে "রুট.এক্সএমএল" ফাইল তৈরি করুন এবং সামনের কোডটি ফাইলের মধ্যে পেস্ট করুন:
<?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>
৪) অ্যাপ / কোড / ডেমো / বিভাগে "রেজিস্ট্রেশন.এফপি" ফাইল তৈরি করুন এবং ফাইলের কোডের নীচে পেস্ট করুন:
<?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) অ্যাপ্লিকেশন / কোড / ডেমো / বিভাগশ্রেণীর / নিয়ন্ত্রক / সূচকগুলিতে "ইনডেক্স.এফপি" ফাইল তৈরি করুন এবং ফাইলের নীচে কোডটি পেস্ট করুন:
<?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;
}
}
)) অ্যাপ্লিকেশন / কোড / ডেমো / বিভাগশ্রেণীতে / ভিউ / ফ্রন্টএন্ড / লেআউটে "ক্যাটাগ্রেট্রি_ইন্ডেক্স_ইন্ডেক্স.এক্সএমএল" ফাইল তৈরি করুন এবং ফাইলের নীচে কোডটি পেস্ট করুন:
<?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>
)) বিক্রেতার / ম্যাজেন্টো / মডিউল-ক্যাটালগ / ভিউ / অ্যাডমিনটিচটিএমএল / টেম্পলেট / ক্যাটাগরি / বিভাগ / ট্রি.এফটিএমটিএল থেকে অ্যাপ / কোড / ডেমো / বিভাগশ্রেণী / দৃশ্য / সীমান্ত / টেমপ্লেট / ক্যাটালগ / বিভাগে অনুলিপি করুন
৮) অ্যাপ্লিকেশন / কোড / ডেমো / ক্যাটাগরিট্রি / ভিউ / ফ্রন্টএন্ডে ফাইলের মধ্যে "প্রয়োজনীয়js-config.js" ফাইল তৈরি করুন এবং কোডের নীচে ফাইলটিতে পেস্ট করুন:
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) এই " http://local-magento.com/categorytree/index/index " এর মতো ইউআরএল চালান যাতে আপনি নীচের মত আউটপুট পাবেন।
ঠিক আছে আমি আমার বিভাগের গাছের ভিত্তিতে একটি মেনু উত্পন্ন করতে এটি ব্যবহার করি। এটি লক্ষ করা উচিত যে স্বাচ্ছন্দ্যের জন্য আমার সমস্ত বিভাগগুলি আইডি 2 এর সাথে ডিফল্ট বিভাগের অধীনে সঞ্চিত রয়েছে, এটি ম্যাজেন্টো 2-র একটি নতুন ইনস্টল সহ আসে। আপনার যদি এই কাঠামোটি না থাকে, আপনি বিকল্পগুলির $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>