function editar($id = NULL) { if ($this->input->post('submit')) { $dados = $this->input->post(); $respostas = array(); for ($i = 0; $i < count($dados['respostas']['descricao']); ++$i) { $respostas[$i]['descricao'] = $dados['respostas']['descricao'][$i]; if ($dados['respostas_com_cores_personalizadas'] == 't') { $respostas[$i]['cor'] = $dados['respostas']['cor'][$i]; } } $dados['respostas'] = $respostas; } elseif ($id) { $dados['enquete'] = $this->Enquetes_model->obter($id); $dados['respostas'] = $this->Enquetes_model->obter_respostas($id); } // Site ID $dados['enquete']['site_id'] = (int) $this->site_id; // Campo multipla_resposta $dados['enquete']['multipla_resposta'] = $dados['enquete']['multipla_resposta'] == 't' ? 't' : 'f'; // Campo multiplicar_tempo $dados['multiplicar_tempo'] = $dados['multiplicar_tempo'] > 0 ? $dados['multiplicar_tempo'] : '1'; // Campo intervalo_entre_votos (tempo entre um voto e outro (por IP)) $dados['multipla_resposta'] = $dados['multipla_resposta'] > 0 ? $dados['multipla_resposta'] : '1'; $dados['enquete']['intervalo_entre_votos'] = $dados['enquete']['intervalo_entre_votos'] > 0 ? $dados['enquete']['intervalo_entre_votos'] : '0'; $dados['enquete']['intervalo_entre_votos'] = (int) $dados['enquete']['intervalo_entre_votos'] * (int) $dados['multiplicar_tempo']; // Validação $this->form_validation->set_rules('enquete[titulo]', 'Título', 'trim|required'); $this->form_validation->set_rules('enquete[descricao]', 'Descrição', 'trim|required'); $this->form_validation->set_rules('enquete[dt_inicio]', 'Data de início', 'trim|required'); $this->form_validation->set_rules('enquete[hora_inicio]', 'Hora de início', 'trim|required'); $this->form_validation->set_rules('enquete[ativo]', 'Ativo', 'trim|required'); if ($this->input->post('submit')) { if ($this->form_validation->run()) { $dados['enquete']['dt_inicio'] = MY_Utils::montar_timestamp($dados['enquete']['dt_inicio'], $dados['enquete']['hora_inicio']); $dados['enquete']['dt_fim'] = MY_Utils::montar_timestamp($dados['enquete']['dt_fim'], $dados['enquete']['hora_fim']); unset($dados['enquete']['hora_inicio']); unset($dados['enquete']['hora_fim']); $id = $this->Enquetes_model->salvar($dados['enquete']); if ($id) { $ok = $this->Enquetes_model->salvar_respostas($id, $dados['respostas']); if ($ok) { redirect('enquetes'); } else { $dados['erro'] = 'Não foi possível inserir as opções de resposta'; } } else { $dados['erro'] = 'Não foi possível inserir o registro.'; } } else { $dados['erro'] = validation_errors(); } } $this->load->view('enquetes_editar', $dados); }