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); }
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); }