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 Laminas\Db\Adapter\AdapterInterface;
9
use LeadersLinked\Mapper\MicrolearningTopicMapper;
10
use LeadersLinked\Mapper\MicrolearningCapsuleMapper;
17151 stevensc 11
use LeadersLinked\Mapper\MicrolearningTopicCapsuleMapper;
17002 efrain 12
 
13
class TopicCapsuleForm extends Form
14
{
15
 
16
    /**
17
     *
18
     * @param AdapterInterface $adapter
19
     * @param int $company_id
20
     * @param int $topic_id
21
     */
22
    public function __construct($adapter, $company_id, $topic_id)
23
    {
24
        parent::__construct();
25
        $this->setInputFilter(new TopicCapsuleFilter($adapter));
26
 
27
        $this->add([
28
            'name' => 'topic_uuid',
29
            'type' => \Laminas\Form\Element\Select::class,
30
            'attributes' => [
31
                'id' => 'topic_uuid',
32
            ],
33
            'options' => [
34
                'value_options' => $this->getSelectTopicOptions($adapter, $company_id)
35
            ]
36
        ]);
37
 
38
 
39
 
40
        $this->add([
41
            'name' => 'capsule_uuid',
42
            'type' => \Laminas\Form\Element\Select::class,
43
            'attributes' => [
44
                'id' => 'capsule_uuid',
45
            ],
46
            'options' => [
47
                'value_options' => $this->getSelectCapsuleOptions($adapter, $company_id, $topic_id)
48
            ]
49
        ]);
50
    }
51
 
52
    /**
53
     *
54
     * @param AdapterInterface $adapter
55
     */
56
    private function getSelectTopicOptions($adapter, $company_id)
57
    {
58
        $options = [];
59
 
60
        $mapper = MicrolearningTopicMapper::getInstance($adapter);
61
        $records = $mapper->fetchAllByCompanyId($company_id);
62
 
63
        foreach($records as $record)
64
        {
65
            $options[$record->uuid] = $record->name;
66
        }
67
        return $options;
68
    }
69
 
70
    /**
71
     *
72
     * @param AdapterInterface $adapter
73
     */
74
    private function getSelectCapsuleOptions($adapter, $company_id, $topic_id)
75
    {
76
        $options = [];
77
 
17151 stevensc 78
        $topicCapsuleMapper = MicrolearningTopicCapsuleMapper::getInstance($adapter);
79
        $records = $topicCapsuleMapper->fetchAllByCompanyIdAndTopicId($company_id, $topic_id);
17002 efrain 80
 
81
        foreach($records as $record)
82
        {
17151 stevensc 83
            $capsuleMapper = MicrolearningCapsuleMapper::getInstance($adapter);
84
            $capsule = $capsuleMapper->fetchOneById($record->capsule_id);
85
            $options[$capsule->uuid] = $capsule->name;
17002 efrain 86
        }
87
        return $options;
88
    }
89
}