Exemplo n.º 1
0
 public function edit($id)
 {
     checar_permissao('noticias.modificar_registro');
     $noticia = $this->noticias_m->get($id);
     if (!$noticia) {
         show_404();
     }
     $temp = ler_data_hora($noticia->data, 'db_date');
     $noticia->data = $temp ? formata_data($temp) : NULL;
     $noticia->fotos = $this->noticias_fotos_m->get_all_by_noticia($noticia->id);
     if ($this->input->post()) {
         $this->form_validation->set_rules($this->validation_rules);
         if ($this->form_validation->run()) {
             $this->slug->set_config(array('field' => 'slug', 'title' => 'titulo', 'table' => 'noticias', 'id' => 'id'));
             $data = array('titulo' => $this->input->post('titulo'), 'slug' => $this->slug->create_uri($this->input->post('titulo'), $id), 'conteudo' => $this->input->post('conteudo'), 'autor' => $this->input->post('autor'), 'data' => NULL);
             $temp = ler_data($this->input->post('data'));
             if ($temp) {
                 $data['data'] = formata_data_hora($temp, 'db_date');
             }
             $this->db->trans_start();
             if ($this->noticias_m->update($id, $data)) {
                 $fotos_old = $noticia->fotos;
                 $noticia->fotos = $this->listar_arquivos('foto');
                 foreach ($fotos_old as $temp) {
                     $this->arquivos_m->update($temp->foto_file_id, array('temp' => TRUE));
                 }
                 $this->noticias_fotos_m->delete_all_by_noticia($noticia->id);
                 foreach ($noticia->fotos as $temp) {
                     $this->noticias_fotos_m->insert($id, array('foto_file_id' => $temp->foto_file_id));
                     $this->arquivos_m->update($temp->foto_file_id, array('temp' => FALSE));
                 }
                 $this->db->trans_complete();
                 $this->reindexar_noticia($id, $data);
                 $this->session->set_flashdata('success', 'Notícia atualizada com sucesso.');
                 redirect('admin/noticias');
             } else {
                 $this->db->trans_complete();
                 $this->session->set_flashdata('error', 'Erro ao atualizar notícia.');
                 redirect('admin/noticias');
             }
         }
         foreach ($this->validation_rules as $rule) {
             $noticia->{$rule['field']} = $this->input->post($rule['field']);
         }
         $temp = ler_data($this->input->post('data'));
         $noticia->data = $temp ? formata_data($temp) : NULL;
     }
     $this->init_breadcrumbs();
     $this->breadcrumbs[] = array('Editar', site_url("admin/noticias/edit/{$id}"));
     $this->init_navbar('edit');
     $dados = array('noticia' => $noticia, 'breadcrumbs' => $this->breadcrumbs, 'navbar' => $this->navbar);
     $this->layout->view('admin/noticias/form', $dados);
 }
Exemplo n.º 2
0
 public function edit($id)
 {
     checar_permissao('espacos_culturais.eventos.modificar_registro');
     $evento = $this->eventos_m->get($id);
     if (!$evento) {
         show_404();
     }
     $temp = ler_data($evento->data, 'db_date');
     $evento->data = $temp ? formata_data($temp) : NULL;
     $evento->imagem_cover = NULL;
     $evento->fotos = $this->eventos_fotos_m->get_all_by_evento($evento->id);
     $all_agentes = $this->agentes_culturais_m->get_all();
     if ($this->input->post()) {
         if ($this->input->post('imagem_cover_file_id')) {
             $evento->imagem_cover = $this->arquivos->obter($this->input->post('imagem_cover_file_id'));
         } else {
             $evento->imagem_cover = NULL;
         }
     } elseif ($evento->imagem_cover_file_id) {
         $evento->imagem_cover = $this->arquivos->obter($evento->imagem_cover_file_id);
     } else {
         $evento->imagem_cover = NULL;
     }
     $agentes = $this->agentes_culturais_eventos_m->get_all_by_evento($id);
     if ($this->input->post()) {
         if (is_uploaded_file(@$_FILES['imagem_cover']['tmp_name'])) {
             $temp = $this->arquivos->adicionar(array('nome' => $_FILES['imagem_cover']['name'], 'caminho' => $_FILES['imagem_cover']['tmp_name'], 'tipo_mime' => $_FILES['imagem_cover']['type']), TRUE);
             if ($temp !== FALSE) {
                 $_POST['imagem_cover_file_id'] = $temp[0];
                 $evento->imagem_cover = $this->arquivos->obter($temp[0]);
             }
         }
         $this->form_validation->set_rules($this->validation_rules);
         if ($this->form_validation->run()) {
             $this->slug->set_config(array('field' => 'slug', 'title' => 'titulo', 'table' => 'eventos', 'id' => 'id'));
             if (checar_permissao('espacos_culturais.eventos.publicar_registro', NULL)) {
                 $status = $this->input->post('status');
             } else {
                 $status = 'rascunho';
             }
             $data = array('status' => $status, 'titulo' => $this->input->post('titulo'), 'slug' => $this->slug->create_uri($this->input->post('titulo'), $id), 'descricao' => $this->input->post('descricao'), 'data' => NULL, 'horario' => $this->input->post('horario'), 'informacoes_valores' => $this->input->post('informacoes_valores'), 'informacoes_datas' => $this->input->post('informacoes_datas'), 'informacoes_horarios' => $this->input->post('informacoes_horarios'));
             $temp = ler_data($this->input->post('data'));
             if ($temp) {
                 $data['data'] = formata_data($temp, 'db_date');
             }
             if ($this->input->post('imagem_cover_file_id')) {
                 $data['imagem_cover_file_id'] = $this->input->post('imagem_cover_file_id');
             }
             $this->db->trans_start();
             if ($this->eventos_m->update($id, $data)) {
                 if ($this->input->post('imagem_cover_file_id')) {
                     $data['imagem_cover_file_id'] = $this->input->post('imagem_cover_file_id');
                 }
                 $fotos_old = $evento->fotos;
                 $evento->fotos = $this->listar_arquivos('foto');
                 foreach ($fotos_old as $temp) {
                     $this->arquivos_m->update($temp->foto_file_id, array('temp' => TRUE));
                 }
                 $this->eventos_fotos_m->delete_all_by_evento($evento->id);
                 foreach ($evento->fotos as $temp) {
                     $this->eventos_fotos_m->insert($id, array('foto_file_id' => $temp->foto_file_id));
                     $this->arquivos_m->update($temp->foto_file_id, array('temp' => FALSE));
                 }
                 $this->agentes_culturais_eventos_m->delete_all_by_evento($id);
                 foreach ($this->listar_agentes() as $agente) {
                     $this->agentes_culturais_eventos_m->insert($id, array('agente_cultural_id' => $agente->agente_id));
                 }
                 $this->db->trans_complete();
                 $this->reindexar_evento($id, $data);
                 $this->session->set_flashdata('success', 'Evento atualizado com sucesso.');
                 redirect("admin/espacos-culturais/{$evento->espaco_cultural}/eventos");
             } else {
                 $this->db->trans_complete();
                 $this->session->set_flashdata('error', 'Erro ao atualizar evento.');
                 redirect("admin/espacos-culturais/{$evento->espaco_cultural}/eventos");
             }
         }
         foreach ($this->validation_rules as $rule) {
             $evento->{$rule['field']} = $this->input->post($rule['field']);
         }
         $temp = ler_data($this->input->post('data'));
         $evento->data = $temp ? formata_data($temp) : NULL;
     }
     $this->init_breadcrumbs($evento->espaco_cultural);
     $this->breadcrumbs[] = array('Editar', site_url("admin/espacos-culturais/{$evento->espaco_cultural}/eventos/edit/{$id}"));
     $this->init_navbar('edit', $evento->espaco_cultural);
     $evento->agentes = array();
     foreach ($agentes as $agente) {
         array_push($evento->agentes, $this->agentes_culturais_m->get($agente->agente_cultural_id));
     }
     $dados = array('espaco_cultural' => $evento->espaco_cultural, 'evento' => $evento, 'agentes' => $all_agentes, 'breadcrumbs' => $this->breadcrumbs, 'navbar' => $this->navbar);
     $this->layout->view('admin/eventos/form', $dados);
 }