Proyectos de Subversion LeadersLinked - Services

Rev

Rev 113 | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |

<?php

declare(strict_types=1);

namespace LeadersLinked\Form\KnowledgeArea;

use Laminas\InputFilter\InputFilter;

class KnowledgeAreaCreateFilter extends InputFilter
{

    
    public function __construct()
    {
        
        
        
        $this->add([
            'name' => 'category_id',
            'required' => true,
            'filters' => [
                ['name' => \Laminas\Filter\StringTrim::class],
                ['name' => \Laminas\Filter\StripTags::class],
            ],
            'validators' => [
                [
                    'name' => \Laminas\Validator\NotEmpty::class,
                ],
            ],
        ]);
        
        $this->add([
            'name' => 'title',
            'required' => true,
            'filters' => [
                ['name' => \Laminas\Filter\StringTrim::class],
                ['name' => \Laminas\Filter\StripTags::class],
            ],
            'validators' => [
                [
                    'name' => \Laminas\Validator\NotEmpty::class,
                ],
                [
                    'name' => \Laminas\Validator\StringLength::class,
                    'options' => [
                        'encoding' => 'UTF-8',
                        'max' => 120,
                    ],
                ],
            ],
        ]);
        
        $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','h6','p','strong','em','s','span','big','small','tt',
                            'hr','table','thead','tr','th','td','img', 'a','style'
                        ],
                    ]
                    
                ],
            ],
            'validators' => [
                [
                    'name' => \Laminas\Validator\NotEmpty::class,
                ],
            ],
        ]);
        
        
        $this->add([
            'name' => 'image',
            'required' => true,
            'filters' => [
                ['name' => \Laminas\Filter\BaseName::class],
            ],
            'validators' => [
                [
                    'name' => \Laminas\Validator\NotEmpty::class,
                ],
                [
                    'name' => \Laminas\Validator\File\Extension::class,
                    'options' => [
                        'extension' => ['jpg','jpeg','png']
                    ]
                ],
                [
                    'name' => \Laminas\Validator\File\MimeType::class,
                    'options' => [
                        'mimeType' => ['image/jpg', 'image/jpeg', 'image/png'],
                        'enableHeaderCheck' => true,
                    ]
                ],
            ],
        ]);
        
        $this->add([
            'name' => 'attachment',
            'required' => false,
            'filters' => [
                ['name' => \Laminas\Filter\BaseName::class],
            ],
            'validators' => [
                [
                    'name' => \Laminas\Validator\NotEmpty::class,
                ],
                [
                    'name' => \Laminas\Validator\File\Extension::class,
                    'options' => [
                        'extension' => ['mov', 'webm','mp4','mpeg','jpg','jpeg','png', 'pdf']
                    ]
                ],
                [
                    'name' => \Laminas\Validator\File\MimeType::class,
                    'options' => [
                        'mimeType' => ['video/quicktime', 'video/webm', 'video/mp4', 'video/mpeg', 'image/jpg', 'image/jpeg', 'image/png', 'application/pdf'],
                        'enableHeaderCheck' => true,
                    ]
                ],
            ],
        ]);
        
        $this->add([
            'name' => 'link',
            'required' => false,
            'filters' => [
                ['name' => \Laminas\Filter\UriNormalize::class],
            ],
            'validators' => [
                [
                    'name' => \Laminas\Validator\NotEmpty::class,
                ], 
            ],
        ]);
        
    }
}