* @copyright (c) 2018, Webcraftic Ltd * * @package factory-forms * @since 3.1.0 */ // Exit if accessed directly if( !defined('ABSPATH') ) { exit; } if( !class_exists('Wbcr_FactoryForms480_PatternControl') ) { class Wbcr_FactoryForms480_PatternControl extends Wbcr_FactoryForms480_Control { public $type = 'pattern'; public function getName() { return array( $this->getOption('name') . '__url', $this->getOption('name') . '__color' ); } public function __construct($options, $form, $provider = null) { parent::__construct($options, $form, $provider); if( !isset($options['color']) ) { $options['color'] = array(); } $options['color'] = array_merge($options['color'], array( 'name' => $this->options['name'] . '_color_picker', 'default' => isset($this->options['default']) ? $this->options['default']['color'] : null, 'pickerTarget' => '.factory-control-' . $this->options['name'] . ' .factory-picker-target' )); if( !$options['color']['default'] ) { $options['color']['default'] = '#1e8cbe'; } $name = $this->getOption('name'); // filters to get available patterns for the given background contols $this->patterns = apply_filters('wbcr_factory_forms_480_patterns', array()); $this->patterns = apply_filters('wbcr_factory_forms_480_patterns-' . $name, $this->patterns); $this->custom_patterns = $this->getOption('patterns', array()); $this->color = new Wbcr_FactoryForms480_ColorControl($options['color'], $form, $provider); } /** * Shows the html markup of the control. * * @since 1.0.0 * @return void */ public function html() { $name = $this->getNameOnForm(); $values = $this->getValue(); // if a pattern is not set by defaut, sets the first available pattern if( empty($values['url']) && !empty($this->patterns) ) { foreach($this->patterns as $group_key => $groupValue) { if( !empty($this->patterns[$group_key]['patterns']) ) { $values['url'] = $this->patterns[$group_key]['patterns'][0]['pattern']; break; } } } if( !empty($values['color']) ) { $this->color->setOption('value', $values['color']); } $hasColor = !empty($values['color']); if( $hasColor ) { $this->addCssClass('factory-color-panel-active'); } ?>