Magento 2 – Kategorieliste für den Abschnitt zur benutzerdefinierten Magento-Systemkonfiguration
-
29-09-2020 - |
Frage
Mein Problem besteht darin, alle verfügbaren Kategorien abzurufen und sie in einer Systemkonfigurationsliste mit Mehrfachauswahlfeldern anzuzeigen.
Hier ist ein Verknüpfung für Magento 1.x.Wie kann es erreicht werden? Magento 2.x?
Lösung 2
In system.xml
Das Dateifeld für die Mehrfachauswahl einer Kategorie sieht wie folgt aus:
<group id="bannerblock_setting" translate="label" type="text" default="1" sortOrder="3" showInDefault="1" showInWebsite="1" showInStore="1">
<label>Setting</label>
<field id="bannerlist" translate="label" type="multiselect" sortOrder="10" showInDefault="1" showInWebsite="1" showInStore="1">
<label>Select Category</label>
<!-- <source_model>Magento\Config\Model\Config\Source\Yesno</source_model>-->
<source_model>Ipragmatech\Bannerblock\Model\Config\Source\Categorylist</source_model>
</field>
</group>
Erstellen Sie eine Datei
Categorylist.php
InCompanyname\Modulename\Model\Config\Source
namespace Companyname\Modulename\Model\Config\Source;
use Magento\Framework\Option\ArrayInterface;
class Categorylist implements ArrayInterface
{
protected $_categoryHelper;
public function __construct(\Magento\Catalog\Helper\Category $catalogCategory)
{
$this->_categoryHelper = $catalogCategory;
}
/*
* Return categories helper
*/
public function getStoreCategories($sorted = false, $asCollection = false, $toLoad = true)
{
return $this->_categoryHelper->getStoreCategories($sorted , $asCollection, $toLoad);
}
/*
* Option getter
* @return array
*/
public function toOptionArray()
{
$arr = $this->toArray();
$ret = [];
foreach ($arr as $key => $value)
{
$ret[] = [
'value' => $key,
'label' => $value
];
}
return $ret;
}
/*
* Get options in "key-value" format
* @return array
*/
public function toArray()
{
$categories = $this->getStoreCategories(true,false,true);
$catagoryList = array();
foreach ($categories as $category){
$catagoryList[$category->getEntityId()] = __($category->getName());
}
return $catagoryList;
}
}
Hier ist ein Screenshot:
Andere Tipps
Wenn jemand einen klaren Code benötigt, sind Sie willkommen :)
generasacodicetagpre.Wenn jemand Code mit übergeordneten und untergeordneten Kategorien wünscht, folgen Sie den folgenden Code:
generasacodicetagpre.Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange