Hello Everyone,
In this blog, we will learn about how to Add Color Picker in system.xml in Magento 2.
Without wasting your time, let us guide you straight away. Follow the easy step given below to Add Color Picker in the Configuration file in Magento 2.
STEPS FOR ADD COLOR PICKER IN MAGENTO 2
Step 1: Create system.xml file
app/code/Vendor/Extension/etc/adminhtml/system.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Config:etc/system_file.xsd">
<system>
<tab id="magecurious" class="magecurious" translate="label" sortOrder="10">
<label>Magecurious</label>
</tab>
<section id="extension" translate="label" sortOrder="10" showInDefault="1" showInWebsite="1" showInStore="1">
<class>separator-top</class>
<label>Magecurious</label>
<tab>magecurious</tab>
<resource>Vendor_Extension::config_extension</resource>
<group id="general" translate="label" type="text" sortOrder="1" showInDefault="1" showInWebsite="1" showInStore="1">
<label>General Configuration</label>
<field id="enable" translate="label" type="select" sortOrder="1" showInDefault="1" showInWebsite="1" showInStore="1">
<label>Enable Extension</label>
<source_model>Magento\Config\Model\Config\Source\Enabledisable</source_model>
</field>
<field id="vendor_select_color" translate="label" type="text" showInDefault="1" showInWebsite="1" showInStore="1" sortOrder="1">
<label>Select Color</label>
<frontend_model>Vendor\Extension\Block\Adminhtml\ColorPicker</frontend_model>
</field>
</group>
</section>
</system>
</config>
Step 2: Create adminhtml_system_config_edit.xml file
app/code/Vendor/Extension/view/adminhtml/layout/adminhtml_system_config_edit.xml
<?xml version="1.0" encoding="UTF-8"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="admin-2columns-left" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_configuration.xsd">
<head>
<css src="jquery/colorpicker/css/colorpicker.css"/>
<link src="jquery/colorpicker/js/colorpicker.js"/>
</head>
</page>
Step 3: Create ColorPicker.php file
app/code/Vendor/Extension/Block/Adminhtml/ColorPicker.php
<?php
namespace Vendor\Extension\Block\Adminhtml;
class ColorPicker extends \Magento\Config\Block\System\Config\Form\Field
{
public function __construct(
\Magento\Backend\Block\Template\Context $context, array $data = []
) {
parent::__construct($context, $data);
}
protected function _getElementHtml(\Magento\Framework\Data\Form\Element\AbstractElement $element) {
$html = $element->getElementHtml();
$value = $element->getData('value');
$html .= '<script type="text/javascript">
require(["jquery","jquery/colorpicker/js/colorpicker"], function ($) {
$(document).ready(function () {
var $el = $("#' . $element->getHtmlId() . '");
$el.css("backgroundColor", "'. $value .'");
// Attach the color picker
$el.ColorPicker({
color: "'. $value .'",
onChange: function (hsb, hex, rgb) {
$el.css("backgroundColor", "#" + hex).val("#" + hex);
}
});
});
});
</script>';
return $html;
}
}
Step 4: Finally run the below commands
$ php bin/magento cache:clean
$ php bin/magento cache:flush
Step 5: Output:
Final Thoughts:
So this was the easiest way which we have told you in this blog. This is how you can Add Color Picker in the system.xml configuration file in Magento 2. Hope you liked the blog.
So quickly go to the comment box and tell me how you like this blog?
Stay tuned with us on our site to get new updates of Magento.
Thanks for reading and visiting our site.
