Proyectos de Subversion LeadersLinked - Backend

Rev

Autoría | Ultima modificación | Ver Log |

<?php

declare(strict_types=1);

namespace LeadersLinked\Form\Microlearning;

use Laminas\InputFilter\InputFilter;
use LeadersLinked\Mapper\MicrolearningQuizMapper;

class SlideQuizzAddFilter extends InputFilter
{

    
    public function __construct($adapter, $company_id)
    {
        $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' => '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' => 'background',
            'required' => true,
            'filters' => [
                ['name' => \Laminas\Filter\StringTrim::class],
                ['name' => \Laminas\Filter\StripTags::class],
            ],
            'validators' => [
                [
                    'name' => \Laminas\Validator\NotEmpty::class,
                ], 
            ],
        ]);
        
        $this->add([
            'name' => 'quiz_id',
            'required' => true,
            'filters' => [
                ['name' => \LeadersLinked\Filter\Intval::class],
            ],
            'validators' => [
                [
                    'name' => \Laminas\Validator\NotEmpty::class,
                ],
                [
                    'name' => \LeadersLinked\Validator\RecordExistsMultiFields::class,
                    'options' => [
                        'table' => MicrolearningQuizMapper::_TABLE,
                        'field' => 'id',
                        'adapter' => $adapter,
                        'custom_fields' => [
                            'company_id' => $company_id
                        ]
                    ],
                ],
            ],
        ]);
    }
}