Rev 17220 | AutorÃa | Comparar con el anterior | Ultima modificación | Ver Log |
<?php
declare(strict_types=1);
namespace LeadersLinked\Form\Microlearning;
use Laminas\InputFilter\InputFilter;
use Laminas\Filter\StripTags;
use Laminas\Filter\StringTrim;
use Laminas\Filter\Digits;
use Laminas\Validator\StringLength;
use Laminas\Validator\NotEmpty;
use Laminas\Validator\GreaterThan;
use Laminas\Validator\LessThan;
use LeadersLinked\Filter\HtmlPurify;
use LeadersLinked\Filter\Floatval;
use LeadersLinked\Validator\RecordExistsMultiValues;
use LeadersLinked\Mapper\MicrolearningCapsuleMapper;
class TopicAddFilter extends InputFilter
{
public function __construct($adapter)
{
$this->add([
'name' => 'name',
'required' => false,
'filters' => [
['name' => \Laminas\Filter\StripTags::class],
['name' => \Laminas\Filter\StringTrim::class],
],
'validators' => [
[
'name' => \Laminas\Validator\StringLength::class,
'options' => [
'encoding' => 'UTF-8',
'max' => 128,
],
],
[
'name' => \Laminas\Validator\NotEmpty::class,
],
],
]);
$this->add([
'name' => 'description',
'required' => true,
'filters' => [
['name' => \Laminas\Filter\StringTrim::class],
['name' => \LeadersLinked\Filter\HtmlPurify::class],
[
'name' => \Laminas\Filter\StripTags::class,
'options' => [
'allowTags' => [
'h1','h2','h3','h4','h5','46','p','pre','strong','em','s','span','big','small','tt',
'code','kbd','samp','var','del','ins','cite','hr','table','thead','tr','th','td','img',
'a','style'
],
]
],
],
'validators' => [
[
'name' => \Laminas\Validator\NotEmpty::class,
],
],
]);
$this->add([
'name' => 'order',
'required' => true,
'filters' => [
['name' => \Laminas\Filter\Digits::class],
],
'validators' => [
[
'name' => \Laminas\Validator\NotEmpty::class,
],
[
'name' => \Laminas\Validator\GreaterThan::class,
'options' => [
'min' => 1,
'inclusive' => true,
]
],
[
'name' => \Laminas\Validator\LessThan::class,
'options' => [
'max' => 250,
'inclusive' => true,
]
],
],
]);
$this->add([
'name' => 'image',
'required' => true,
'filters' => [
['name' => \Laminas\Filter\StringTrim::class],
['name' => \Laminas\Filter\StripTags::class],
],
'validators' => [
[
'name' => \Laminas\Validator\NotEmpty::class,
],
],
]);
$this->add([
'name' => 'marketplace',
'required' => true,
'filters' => [
['name' => \Laminas\Filter\StringTrim::class],
['name' => \Laminas\Filter\StripTags::class],
],
'validators' => [
[
'name' => \Laminas\Validator\NotEmpty::class,
],
],
]);
$this->add([
'name' => 'status',
'required' => true,
'filters' => [
['name' => \Laminas\Filter\StripTags::class],
['name' => \Laminas\Filter\StringTrim::class],
],
'validators' =>[
[
'name' => \Laminas\Validator\NotEmpty::class,
],
]
]);
$this->add([
'name' => 'privacy',
'required' => true,
'filters' => [
['name' => \Laminas\Filter\StripTags::class],
['name' => \Laminas\Filter\StringTrim::class],
],
'validators' =>[
[
'name' => \Laminas\Validator\NotEmpty::class,
],
]
]);
$this->add([
'name' => 'type',
'required' => true,
'filters' => [
['name' => \Laminas\Filter\StripTags::class],
['name' => \Laminas\Filter\StringTrim::class],
],
'validators' =>[
['name' => \Laminas\Validator\NotEmpty::class],
]
]);
$this->add([
'name' => 'cost',
'required' => true,
'filters' => [
['name' => \LeadersLinked\Filter\Floatval::class],
],
'validators' => [
[
'name' => \Laminas\Validator\GreaterThan::class,
'options' => [
'min' => 0,
'inclusive' => true,
]
],
],
]);
$this->add([
'name' => 'capsule_uuid',
'required' => false,
'validators' => [
[
'name' => \LeadersLinked\Validator\RecordExistsMultiValues::class,
'options' => [
'adapter' => $adapter,
'table' => \LeadersLinked\Mapper\MicrolearningCapsuleMapper::_TABLE,
'field' => 'uuid',
'custom_fields' => [
]
]
]
],
]);
}
}