public function __construct($configIds = [], $classNames = []) { parent::__construct($configIds, $classNames); $nextyear = date("Y") + 1; $this->add(array('name' => 'expiry_date', 'attributes' => array('type' => 'text', 'class' => 'datepicker text-center', 'value' => '01/03/' . $nextyear), 'options' => array('label' => 'Data de expiração', 'add-on-prepend' => '<i class="glyphicon glyphicon-calendar"></i>'))); }
/** * Exibe um formulário para geração do mural de alunos * Quando o formulário é submetido o mural é gerado e exibido no navegador * * @return ViewModel */ public function studentsBoardAction() { $message = null; $pdf = null; $form = null; $request = $this->getRequest(); try { // Pega todas as configurações de fundo cadastradas e seleciona os id's // para mandar para o formulário $bgConfigs = $this->getBackgroundConfigs($message); $configsIds = array(); foreach ($bgConfigs as $bgConfig) { $configsIds[$bgConfig['id']] = $bgConfig['id']; } // Pega todas as turmas cadastradas e seleciona os nomes para mandar // para o formulário $studentClasses = $this->getStudentClasses($message); $classNames = array(); foreach ($studentClasses as $studentClass) { $classNames[$studentClass['id']] = $studentClass['name']; } } catch (Exception $ex) { $message = $message . '<br>Erro na conexão com o banco de dados.' . ' Entre com contato com o administrador do sistema.<br>' . 'Erro: ' . $ex->getMessage(); return new ViewModel(array('message' => $message, 'form' => $form, 'pdf' => $pdf)); } // Cria o formulário e o processa $form = new StudentsBoardForm($configsIds, $classNames); if ($request->isPost()) { $post = array_merge_recursive($request->getPost()->toArray(), $request->getFiles()->toArray()); $form->setData($post); $form->setInputFilter(new StudentsBoardFilter()); if ($form->isValid()) { $data = $form->getData(); try { $em = $this->getEntityManager(); // Obtém as informações dos alunos da turma selecionada $enrolls = $studentClasses[$data['class_id']]['enrollments']->toArray(); if (empty($enrolls)) { $message = 'A turma selecionada não possui alunos cadastrados.'; return new ViewModel(array('message' => $message, 'form' => $form, 'pdf' => $pdf)); } foreach ($enrolls as $enroll) { $people[] = $enroll->getRegistration()->getPerson(); } // Agrupa as informações dos alunos da turma foreach ($people as $person) { $students[] = array('name' => $person->getPersonName(), 'rg' => $person->getPersonRg(), 'img_url' => $person->getPersonPhoto()); } // Agrupa as informações da config de fundo selecionada $config = array('phrase' => $bgConfigs[$data['config_id']]['phrase'], 'author' => $bgConfigs[$data['config_id']]['author'], 'bg_img_url' => $bgConfigs[$data['config_id']]['img']); // Gera PDF... } catch (\Exception $ex) { $message = 'Erro inesperado. Entre com contato com o administrador do sistema.<br>' . 'Erro: ' . $ex->getMessage(); } } } return new ViewModel(array('message' => $message, 'form' => $form, 'pdf' => $pdf)); }