/** * Build validation rules * * @param ProductAttributeInterface $attribute * @param array $data * @return array */ public function build(ProductAttributeInterface $attribute, array $data) { $rules = []; if (!empty($data['required'])) { $rules['required-entry'] = true; } if ($attribute->getFrontendInput() === 'price') { $rules['validate-zero-or-greater'] = true; } $validationClasses = explode(' ', $attribute->getFrontendClass()); foreach ($validationClasses as $class) { if (preg_match('/^maximum-length-(\\d+)$/', $class, $matches)) { $rules = array_merge($rules, ['max_text_length' => $matches[1]]); continue; } if (preg_match('/^minimum-length-(\\d+)$/', $class, $matches)) { $rules = array_merge($rules, ['min_text_length' => $matches[1]]); continue; } $rules = $this->mapRules($class, $rules); } return $rules; }