Proyectos de Subversion LeadersLinked - Backend

Rev

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

<?php

declare(strict_types=1);

namespace LeadersLinked\Form\Microlearning;

use Laminas\Form\Form;
use LeadersLinked\Model\MicrolearningSlide;
use LeadersLinked\Mapper\QueryMapper;
use LeadersLinked\Mapper\MicrolearningQuizMapper;
use LeadersLinked\Model\MicrolearningQuiz;

class SlideQuizzAddForm extends Form
{

    public function __construct($adapter, $company_id) 
    {
        parent::__construct();
        $this->setInputFilter(new SlideQuizzAddFilter($adapter, $company_id));

        $this->add([
            'name' => 'type',
            'type' => \Laminas\Form\Element\Hidden::class,
            'attributes' => [
                'id'    => 'type',
                'value' => MicrolearningSlide::TYPE_QUIZ
            ]
        ]);
        
        $this->add([
            'name' => 'name',
            'type' => \Laminas\Form\Element\Textarea::class,
            'attributes' => [
                'id'    => 'name',
            ]
        ]);

        
        $this->add([
            'name' => 'order',
            'type' => \Laminas\Form\Element\Text::class,
            'attributes' => [
                'id'    => 'order',
            ],
        ]);

        
        $this->add([
            'name' => 'background',
            'type' => \Laminas\Form\Element\Hidden::class,
            'attributes' => [
                'id' => 'background',
            ]
        ]);

        $this->add([
            'name' => 'quiz_id',
            'type' => \Laminas\Form\Element\Select::class,
            'options' => [
                'value_options' =>  $this->getQuizOptions($adapter, $company_id)
            ],
            'attributes' => [
                'id' =>  'quiz_id',
            ]
        ]);
        
    }
    
    private function getQuizOptions($adapter, $company_id)
    {
        $queryMapper = QueryMapper::getInstance($adapter);
        $select = $queryMapper->getSql()->select(MicrolearningQuizMapper::_TABLE);
        $select->columns(['id', 'name']);
        $select->where->equalTo('company_id', $company_id);
        $select->where->equalTo('status', MicrolearningQuiz::STATUS_ACTIVE);
        $select->where->equalTo('check', MicrolearningQuiz::CHECK_OK);
        
        $options = [];
        $records = $queryMapper->fetchAll($select);
        foreach($records as $record)
        {
            $options[ $record['id'] ] = $record['name'];
        }
        
        return $options;
        
        
    }
}