AutorÃa | Ultima modificación | Ver Log |
<?php
declare(strict_types=1);
namespace LeadersLinked\Form\DevelopmentContent;
use Laminas\InputFilter\InputFilter;
use LeadersLinked\Mapper\TopicMapper;
class DevelopmentContentCreateFeedFilter extends InputFilter
{
public function __construct($adapter)
{
$this->add([
'name' => 'topic_id',
'required' => false,
'validators' => [
[
'name' => \Laminas\Validator\NotEmpty::class,
]
],
]);
$this->add([
'name' => 'title',
'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' => 'category_id',
'required' => false,
'filters' => [
['name' => \Laminas\Filter\StripTags::class],
['name' => \Laminas\Filter\StringTrim::class],
],
'validators' =>[
[
'name' =>\Laminas\Validator\NotEmpty::class,
],
[
'name' => \Laminas\Validator\Db\RecordExists::class,
'options' => [
'adapter' => $adapter,
'table' => TopicMapper::_TABLE,
'field' => 'uuid',
]
]
]
]);
$this->add([
'name' => 'category_dc',
'required' => false,
'filters' => [
['name' => \Laminas\Filter\StripTags::class],
['name' => \Laminas\Filter\StringTrim::class],
],
'validators' =>[
[
'name' =>\Laminas\Validator\NotEmpty::class,
],
[
'name' => \Laminas\Validator\Db\RecordExists::class,
'options' => [
'adapter' => $adapter,
'table' => TopicMapper::_TABLE,
'field' => 'uuid',
]
]
]
]);
$this->add([
'name' => 'time',
'required' => false,
'filters' => [
['name' => \Laminas\Filter\StripTags::class],
['name' => \Laminas\Filter\StringTrim::class],
],
'validators' => [
[
'name' => \Laminas\Validator\NotEmpty::class,
],
[
'name' => \Laminas\Validator\Date::class,
'options' => [
'format' => 'H:i',
],
],
],
]);
$this->add([
'name' => 'date',
'required' => false,
'filters' => [
['name' => \Laminas\Filter\StripTags::class],
['name' => \Laminas\Filter\StringTrim::class],
],
'validators' => [
[
'name' => \Laminas\Validator\NotEmpty::class,
],
[
'name' => \Laminas\Validator\Date::class,
'options' => [
'format' => 'Y-m-d',
],
],
],
]);
$this->add([
'name' => 'link_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' =>254,
],
],
[
'name' => \Laminas\Validator\NotEmpty::class,
],
],
]);
$this->add([
'name'=>'link_media',
'required' => false,
'filters'=> [
['name' => \Laminas\Filter\StripTags::class],
['name' => \Laminas\Filter\StringTrim::class],
],
'validators'=>[
['name' => \Laminas\Validator\NotEmpty::class],
[
'name' => \Laminas\Validator\InArray::class,
'options' => [
'haystack'=>['cesa','youtube','spotify','deezer','apple'],
]
],
]
]);
$this->add([
'name'=>'link_type',
'required' => false,
'filters'=> [
['name' => \Laminas\Filter\StripTags::class],
['name' => \Laminas\Filter\StringTrim::class],
],
'validators'=>[
['name' => \Laminas\Validator\NotEmpty::class],
[
'name' => \Laminas\Validator\InArray::class,
'options' => [
'haystack'=>['skype', 'zoom', 'meet'],
]
],
]
]);
$this->add([
'name' => 'file',
'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' => 'video_edit',
'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' => 'doc_edit',
'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' => 'img_edit',
'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' => 'priority',
'required' => false,
'filters' => [
['name' => \Laminas\Filter\StripTags::class],
['name' => \Laminas\Filter\StringTrim::class],
],
'validators' => [
[
'name' => \Laminas\Validator\NotEmpty::class,
],
],
]);
}
}