浏览代码

form is showing in admin area, and properly setting and getting selections :D

dbm 5 年之前
父节点
当前提交
1a1a6d8dec

+ 13 - 0
ShippingNotifications/Block/ShippingCategory.php

@@ -49,4 +49,17 @@ class ShippingCategory extends Template
         return $this->delayedCollection->load();
 
     }
+
+    public function toOptionArray(){
+        $options =  $this->attribute->get($attribute_code)->getOptions;
+
+        $options_array = [];
+
+        foreach($options as $option){
+            $options_array[] = [
+                'label' => $options->getTitle(),
+                'value' => $options->getId()
+            ];
+        }
+    }
 }

+ 31 - 0
ShippingNotifications/Model/Config/Source/ShippingCategories.php

@@ -0,0 +1,31 @@
+<?php
+
+namespace Cpcommerce\ShippingNotifications\Model\Config\Source;
+
+use Magento\Framework\Data\OptionSourceInterface;
+use Magento\Catalog\Model\Product\Attribute\Repository;
+
+class ShippingCategories implements OptionSourceInterface
+{
+
+    public function __construct(
+        Repository $attribute
+    ){
+        $this->attribute = $attribute;
+    }
+
+    public function toOptionArray()
+    {
+        $options = [];
+        $shippingCategories = $this->attribute->get('shipping_category')->getOptions();
+
+        foreach($shippingCategories AS $shippingCategory){
+            $options[] = [
+                'value' => $shippingCategory->getValue(),
+                'label' => $shippingCategory->getLabel()
+            ];
+        }
+        
+        return $options;
+    }
+}

+ 2 - 0
ShippingNotifications/etc/adminhtml/system.xml

@@ -9,6 +9,8 @@
             <group id="general" translate="label" sortOrder="10" showInDefault="1" showInWebsite="1" showInStore="1">
                 <field id="shipping_categories" translate="label" type="multiselect" sortOrder="10" showInDefault="1" showInWebsite="1" showInStore="1" canRestore="1">
                     <label>Shipping Categories</label>
+                    <source_model>Cpcommerce\ShippingNotifications\Model\Config\Source\ShippingCategories</source_model>
+                    <can_be_empty>1</can_be_empty>
                 </field>
             </group>
         </section>

+ 0 - 1
ShippingNotifications/etc/db_schema.xml

@@ -5,7 +5,6 @@
         <column xsi:type="int" name="ship_categ_id" nullable="false" identity="true"/>
         <column xsi:type="int" padding="10" name="option_id" nullabe="false" default="0" unsigned="true"/>
         <column xsi:type="boolean" name="is_delayed" nullable="false"/>
-        <constraint xsi:type="foreign" referenceId="SHIP_NOTIF_CATEG_ATTRIB_OPTION_VALUE" table="cpcommerce_shipping_notification_categories" column="option_id" referenceTable="eav_attribute_option_value" referenceColumn="option_id" OnDelete="CASCADE" />
         <constraint xsi:type="primary" refrenceId="ship_categ_id">
             <column name="ship_categ_id"/>
         </constraint>

+ 1 - 1
ShippingNotifications/etc/module.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
-	<module name="Cpcommerce_ShippingNotifications" setup_version="0.0.9">
+	<module name="Cpcommerce_ShippingNotifications" setup_version="0.0.10">
 		<sequence>
 			<module name="Magento_Catalog" />
 		</sequence>