Proyectos de Subversion LeadersLinked - Backend

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
17002 efrain 1
<?php
2
 
3
declare(strict_types=1);
4
 
5
namespace LeadersLinked\Form\Microlearning;
6
 
7
use Laminas\Form\Form;
8
use LeadersLinked\Model\MicrolearningSlide;
9
use LeadersLinked\Mapper\QueryMapper;
10
use LeadersLinked\Mapper\MicrolearningQuizMapper;
11
use LeadersLinked\Model\MicrolearningQuiz;
12
 
13
class SlideQuizzAddForm extends Form
14
{
15
 
16
    public function __construct($adapter, $company_id)
17
    {
18
        parent::__construct();
19
        $this->setInputFilter(new SlideQuizzAddFilter($adapter, $company_id));
20
 
21
        $this->add([
22
            'name' => 'type',
23
            'type' => \Laminas\Form\Element\Hidden::class,
24
            'attributes' => [
25
                'id'    => 'type',
26
                'value' => MicrolearningSlide::TYPE_QUIZ
27
            ]
28
        ]);
29
 
30
        $this->add([
31
            'name' => 'name',
32
            'type' => \Laminas\Form\Element\Textarea::class,
33
            'attributes' => [
34
                'id'    => 'name',
35
            ]
36
        ]);
37
 
38
 
39
        $this->add([
40
            'name' => 'order',
41
            'type' => \Laminas\Form\Element\Text::class,
42
            'attributes' => [
43
                'id'    => 'order',
44
            ],
45
        ]);
46
 
47
 
48
        $this->add([
49
            'name' => 'background',
50
            'type' => \Laminas\Form\Element\Hidden::class,
51
            'attributes' => [
52
                'id' => 'background',
53
            ]
54
        ]);
55
 
56
        $this->add([
57
            'name' => 'quiz_id',
58
            'type' => \Laminas\Form\Element\Select::class,
59
            'options' => [
60
                'value_options' =>  $this->getQuizOptions($adapter, $company_id)
61
            ],
62
            'attributes' => [
63
                'id' =>  'quiz_id',
64
            ]
65
        ]);
66
 
67
    }
68
 
69
    private function getQuizOptions($adapter, $company_id)
70
    {
71
        $queryMapper = QueryMapper::getInstance($adapter);
72
        $select = $queryMapper->getSql()->select(MicrolearningQuizMapper::_TABLE);
73
        $select->columns(['id', 'name']);
74
        $select->where->equalTo('company_id', $company_id);
75
        $select->where->equalTo('status', MicrolearningQuiz::STATUS_ACTIVE);
76
        $select->where->equalTo('check', MicrolearningQuiz::CHECK_OK);
77
 
78
        $options = [];
79
        $records = $queryMapper->fetchAll($select);
80
        foreach($records as $record)
81
        {
82
            $options[ $record['id'] ] = $record['name'];
83
        }
84
 
85
        return $options;
86
 
87
 
88
    }
89
}