<?php
    class Categorias
    {
        var $num_registros;
        
        function setCategoria($categoria, $id = 0) 
            {
                global $MOD;
            
                    $consulta = $MOD['mysql']->consulta('INSERT INTO categorias (categoria) VALUES (\''.$categoria.'\')');
                
                } else {
                    $consulta = $MOD['mysql']->consulta('UPDATE categorias SET categoria=\''.$categoria.'\' WHERE id='.$id);
                    }
                return $consulta;
                }
                
        function getCategoria($id) {
            global $MOD;
        
            $consulta = $MOD['mysql']->consulta('SELECT * FROM categorias WHERE id='.$id);
        
            return $consulta;
        } 
        
        function getCategorias() {
            global $MOD;
            
            $consulta = $MOD['mysql']->consulta('SELECT * FROM categorias');
        
            return $consulta;
        }
        
        function delCategoria($id)
        {
            global $MOD;
            
            if($MOD['mysql']->consulta('SELECT * FROM categorias WHERE id='.$id)) {     
                $consulta = $MOD['mysql']->consulta('DELETE FROM categorias WHERE id='.$id);
                return true;
        } else {
                return false;
            }
        }
        
        function isCategoria($id) {
            global $MOD;
        
            if ($consulta = $MOD['mysql']->consulta('SELECT * FROM categorias WHERE id='.$id)) {
                return true;
            } else {
                return false;
            }
 
        } 
        
        
    }
    /* Clase Noticias.*/ 
    
    class Noticias
    {
        var $num_registros;
        
        function setNoticia($titulo, $texto_corto, $texto_completo, $estado, $id_administrador,$categoria, $id = 0) 
            {
                global $MOD;
            
                    $consulta = $MOD['mysql']->consulta('INSERT INTO noticia (titulo, texto_corto, texto_completo, fecha_publicacion, estado, id_administrador,categoria) VALUES (\''.$titulo.'\', \''.$texto_corto.'\', \''.$texto_completo.'\', \''.date('Y-m-d h:i:s').'\', '.$estado.', '.$id_administrador.',\''.$categoria.'\')');             } else {
                $consulta = $MOD['mysql']->consulta('UPDATE noticia SET titulo=\''.$titulo.'\', texto_corto=\''.$texto_corto.'\', texto_completo=\''.$texto_completo.'\', fecha_publicacion=\''.date('Y-m-d h:i:s').'\', estado='.$estado.', id_administrador='.$id_administrador.',categoria=\''.$categoria.'\' WHERE id='.$id);             }
                return $consulta;
                }
                
        function getNoticia($id) {
            global $MOD;
        
            $consulta = $MOD['mysql']->consulta('SELECT N.*, C.categoria FROM noticia N INNER JOIN categorias C ON(N.categoria=C.id) WHERE N.id='.$id);
        
            return $consulta;
        } 
        
        function getNoticias($id) {
            global $MOD;
            
            $consulta = $MOD['mysql']->consulta('SELECT * FROM noticia');
        
            return $consulta;
        }
        
        function delNoticia($id)
        {
            global $MOD;
            
            if($MOD['mysql']->consulta('SELECT * FROM noticia WHERE id='.$id)) {        
                $consulta = $MOD['mysql']->consulta('DELETE FROM noticia WHERE id='.$id);
                return true;
        } else {
                return false;
            }
        }
        
    }
    
    
    
    
?>
// Mi controlador
<?php
    $pagina = $_GET['pag'];
    
    include('modulos/noticias/noticias.mod.php');
    $MOD['categorias'] = new Categorias();
    $MOD['noticias'] = new Noticias();
    
    switch($pagina) {
        case 'insertar_categoria':
            include('modulos/noticias/vistas/insertar_categoria.html.php');
        break;
        case 'editar_categoria':
            //if(!empty($_SESSION['usuario_id'])){
                
                
                $items_categoria = $MOD['categorias']->getCategoria($id);
                
                if ($items_categoria){
                    $item_categoria = $items_categoria[0];
                    include('modulos/noticias/vistas/editar_categoria.html.php');
                } else {
                    echo "No existe la categoria con el ID indicado";
                }
            //} else {
                //echo "Usted no tiene permisos";
            //}
            
        break;
        case 'guardar_categorias':
            $id = intval($_POST['hdn_id']);             $categoria = trim($_POST['categoria']);             
            
                    if ($MOD['categorias']->setCategoria($categoria)){
                        echo "<center>Registro exitoso!. Espere unos instantes</center>";
                        echo "<meta http-equiv=\"refresh\" content=\"3;URL=index.php?mod=noticias&pag=listado_categorias\">\n";
                    } else {
                        echo "El registro no fue exitoso";
                    }
                } else {
                    if ($MOD['categorias']->setCategoria($categoria, $id)){
                        echo "<center>Actualización exitosa!. Espere unos instantes</center>";
                        echo "<meta http-equiv=\"refresh\" content=\"3;URL=index.php?mod=noticias&pag=listado_categorias\">\n";
                    } else {
                        echo "La actualización no fue exitosa";
                    }
                }
            
        break;
        case 'eliminar_categoria':
            $id = $_GET['id'];
            
                if ($MOD['categorias']->delCategoria($id)){
                    echo "El registro se elimino!. Espere unos instantes";
                    echo "<meta http-equiv=\"refresh\" content=\"2;URL=index.php?mod=noticias&pag=listado_categorias\">\n";
                } else {
                    echo "El registro no pudo ser eliminado. Puede que este ya no exista";
                }
            } else {
                echo "Error 403: Acceso incorrecto";
            }
        break;
        case 'listado_categorias':
        //default:
            $items_categoria = $MOD['categorias']->getCategorias();
            //if(!empty($_SESSION['usuario_id'])){
                include('modulos/noticias/vistas/listar_categoria.html.php');
            //} else {
                //include('modulos/cursos/vistas/listado_visitante.html.php');
            //}
        break;
      /*  Control Noticias*/ 
        case 'insertar_noticia':
            //if(!empty($_SESSION['usuario_id'])&&($_SESSION['usuario_nivel']==3)){
                if ($MOD['categorias']->isCategoria($id)) {
                $items_categoria = $MOD['categorias']->getCategorias();
                include('modulos/noticias/vistas/insertar_noticia.html.php');
                } else {
                echo "No existe la categoria seleccionada" ;
                }
            //} else {
                //echo "Usted no tiene permisos";
            //}
        break;
        case 'editar_noticia':
            //if(!empty($_SESSION['usuario_id'])&&($_SESSION['usuario_nivel']==3)){
                
            //if ($MOD['categorias']->isCategoria($id)) {
            $items_categoria = $MOD['categorias']->getCategorias();
            $items_noticia = $MOD['noticias']->getNoticia($id);
                
                if ($items_noticia) {
                    $item_noticia = $items_noticia[0];
                    include('modulos/noticias/vistas/editar_noticia.html.php');
                } else {
                    echo "No existe la noticia con el ID indicado";
                }
            //} else {
                //echo "No existe la categoria seleccionada" ;
            //}
            //} else {
                //echo "Usted no tiene permisos";
            //}
            
        break;
        case 'guardar_noticia':
            //if(!empty($_SESSION['usuario_id'])&&($_SESSION['usuario_nivel']==3)){
                $id = intval($_POST['hdn_id']);                 $titulo = trim($_POST['edt_titulo']);                 $texto_corto = trim($_POST['txt_textocorto']);                 $texto_completo = trim($_POST['txt_textocompleto']);                 $estado = intval($_POST['chbx_estado']);                 $categoria = var_dump($_POST['categoria']);                 
                
                        if ($MOD['noticias']->setNoticia($titulo, $texto_corto, $texto_completo, $estado, $_SESSION['usuario_id'],$categoria)){
                            echo "Registro exitoso!. Espere unos instantes";
                            echo "<meta http-equiv=\"refresh\" content=\"2;URL=index.php?mod=noticias&pag=listado_noticia&id=$_GET[id]\">\n";
                        } else {
                            echo "El registro no fue exitoso";
                        }
                    } else {
                        if ($MOD['noticias']->setNoticia($titulo, $texto_corto, $texto_completo, $estado, $_SESSION['usuario_id'],$categoria, $id)){
                            echo "Actualización exitosa!. Espere unos instantes";
                            echo "<meta http-equiv=\"refresh\" content=\"2;URL=index.php?mod=noticias&pag=listado_noticia&id=$_GET[id]\">\n";
                        } else {
                            echo "La actualización no fue exitosa";
                        }
                    }
    
            //} else {
                //echo "Usted no tiene permisos";
            //}
        break;
        case 'leer_noticia':
            $items_noticias = $MOD['noticias']->getNoticia($id);
            if ($items_noticias) {
                $item_noticias = $items_noticias[0];
                include('modulos/noticias/vistas/leer_noticia.html.php');
            } else {
                echo "No existe la noticia seleccionada" ;
            }
        break;
        case 'eliminar_noticia':
            $id = $_GET['id'];
            
                if ($MOD['noticias']->delNoticia($id)){
                    echo "El registro se elimino!. Espere unos instantes";
                    echo "<meta http-equiv=\"refresh\" content=\"2;URL=index.php?mod=noticias&pag=listado_noticia&id=$_GET[id]\">\n";
                } else {
                    echo "El registro no pudo ser eliminado. Puede que este ya no exista";
                }
            } else {
                echo "Error 403: Acceso incorrecto";
            }
        break;
        case 'listado_noticia':
        default:
            //if(!empty($_SESSION['usuario_id'])&&($_SESSION['usuario_nivel']==3)){
            //if ($MOD['categorias']->isCategoria($id)) {
                $items_noticia = $MOD['noticias']->getNoticias($id);
                if ($items_noticia) {
                    include('modulos/noticias/vistas/listar_noticia.html.php');
                } else {
                    echo 'No existen noticias publicadas';
                }
            //} else {
                //echo "No existe la categoria seleccionada" ;
            //} 
            //} else {
                //$items_noticia = $MOD['noticias']->getNoticias();
                //if ($items_noticia) {
                    //include('modulos/noticias/vistas/listado_visitante.html.php');
                //} else {
                //  echo 'No existen noticias publicadas';
                //}
            //}
      
    
    }
?>