Tema: Crear Modelo
Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/11/2011, 12:53
reyvi
Usuario no validado
 
Fecha de Ingreso: septiembre-2007
Ubicación: Cuba
Mensajes: 202
Antigüedad: 16 años, 7 meses
Puntos: 5
Crear Modelo

Hola amigos:
quiero reprogramar mi site que está en POO, pero lo quiero hacer esta vez en CodeIgniter, pero hay métodos que no sé como hacerlos, ni siquiera donde ponerlos. Por favor aquí les dejo un ejemplo de algo de mi modelo y unos métodos que utilizo.

esta es mi Clase Noticia

Código PHP:
class Noticia extends Common{
       var 
$Id
       var 
$Titulo;
       var 
$Descripcion;
       var 
$Keywords;
       var 
$Noticia;
       var 
$Seccion;
       var 
$Fecha;
       var 
$Visitas;
       var 
$url_amigable;
       var 
$orden;
       var 
$DB;

       function 
__construct($cId=""$cTitulo=""$cDescripcion=""$cKeywords=""$cNoticia=""$cSeccion=""$cFecha=""$cVisitas =""$curl_amigable=""$cOrden=""){
           
$this->Id $cId;
           
$this->Titulo $cTitulo;
           
$this->Descripcion $cDescripcion;
           
$this->Keywords $cKeywords;
           
$this->Noticia $cNoticia;
           
$this->Seccion $cSeccion;
           
$this->Fecha $cFecha;
           
$this->Visitas $cVisitas;
           
$this->url_amigable $curl_amigable
           
$this->orden $cOrden;
           
           
$this->DB = new DBManipulation(); 
           }
            
            function 
GetId(){ return $this->Id; }
            function 
GetTitulo(){ return $this->Titulo;}
            function 
GetDescripcion(){ return $this->Descripcion;}
            function 
GetKeywords(){ return $this->Keywords;}
            function 
GetNoticia(){ return $this->Noticia;}
            function 
GetSeccion(){ return  $this->Seccion;}
            function 
GetFecha(){ return $this->Fecha;}
            function 
GetVisitas(){ return $this->Visitas; }
            function 
GetUrl(){return $this->url_amigable;}
            function 
GetOrden(){return $this->orden; } 
... y este es uno de los métodos que más utilizo (que está dentro de la misma clase)
Código PHP:
function ListarNoticiaSeccion($seccion$cantidad){
                
$noticias = array();
                if(empty(
$seccion)){
                    
$resultado $this->DB->consultarBD("SELECT * FROM php_ws_notices WHERE Publicar= 'Si' ORDER BY Id DESC LIMIT 0, $cantidad");
                }else{
                    
$resultado $this->DB->consultarBD("SELECT * FROM php_ws_notices WHERE Publicar= 'Si' AND Seccion = '$seccion' ORDER BY Id DESC LIMIT 0, $cantidad");
                    }
               while(
$lista mysql_fetch_array($resultado)){
                
$a $lista['Id'];
                 
$b $lista['Titulo'];
                 
$c $lista['Descripcion'];
                 
$d $lista['Keywords'];
                 
$e $lista['Noticia'];
                 
$f $lista['Seccion'];
                 
$g $lista['Fecha'];
                 
$h $lista['Visitas'];
                 
$i $lista['url_amigable'];
                 
$j $lista['Orden'];
        
                
$not = new Noticia($a,$b,$c,$d,$e,$f,$g,$h,$i$j);
                
$noticias[]=$not;
            }
              
mysql_free_result($resultado);
            return 
$noticias;
            } 
Cuando yo deseo mostrar una sección (las noticias estan clsificadas en nacionales, internacionales, etc) de mis noticias llamo un método que lo maquetea todo y eso es especificamente lo que quiero pasarle a las vistas de Code Igniter; este método
Código PHP:
function VistaNoticias($seccion$cantidad$leeds$PermitirHTML){
                
$a parent::ListarNoticiaSeccion($seccion$cantidad);
                if(
$leeds == || $leeds >1){
                    for(
$i=0$i<1$i++){
                        echo 
"<h1><a href =noticias/".$a[$i]->GetUrl().".htm".">"$a[$i]->GetTitulo()."</h1></a>";
                        echo 
"<p>".parent::GeneraLeed($a[$i]->GetNoticia(),$PermitirHTML)."</p>";
                    }
                    for(
$i=1$i<$leeds$i++){
                        echo 
"<h2><a href =noticias/".$a[$i]->GetUrl().".htm".">"$a[$i]->GetTitulo()."</h2></a>";
                        echo 
"<p>".parent::GeneraLeed($a[$i]->GetNoticia(),$PermitirHTML)."</p>";
                    }
                }
                if(
$cantidad $leeds){
                    echo 
"<ul>";
                    for(
$i=$leeds$i<$cantidad$i++){
                        echo 
"<li><a href =noticias/".$a[$i]->GetUrl().".htm".">"$a[$i]->GetTitulo()."</a>";
                        }
                        echo 
"</ul>";
                        echo 
"<p align=\"right\"><a href=\"noticias/".$seccion."/\">M&aacute;s &gt;&gt;&gt;</a></p>";
                }
            } 
EJ. Quiero ver las noticias nacionales, de las cuales quiero ver 5 de ellas y 2 con leeds, lo que hago es lo siguiente ...

Código PHP:
$aux = new ControlNoticias();
$nac $aux->VistaNoticias("nacionales"52,true); 
con ese método todo es más fácil, donde declaro todo este que les puse en CodeIgniter. Por favor

Salu2
Reyvi