Foros del Web » Programando para Internet » PHP » CodeIgniter »

Crear Modelo

Estas en el tema de Crear Modelo en el foro de CodeIgniter en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 08/11/2011, 12:53
Usuario no validado
 
Fecha de Ingreso: septiembre-2007
Ubicación: Cuba
Mensajes: 202
Antigüedad: 17 años, 2 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
  #2 (permalink)  
Antiguo 12/11/2011, 21:16
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 20 años
Puntos: 43
Respuesta: Crear Modelo

a lo mejor esto te sirve:
http://codeigniter.com/user_guide/general/models.html
  #3 (permalink)  
Antiguo 13/11/2011, 11:02
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 16 años, 4 meses
Puntos: 165
Respuesta: Crear Modelo

Bueno... básicamente, tendrías que tener un modelo que te sirva tus noticias. Este modelo será el encargado de hacer la búsqueda , como lo que haces en ListarNoticiaSeccion.. Después en tu vista, recoges el array y lo representas como quieras. Nada de meter código html en tu modelo / entidad, piensa que tendría que ser datos que podría usar otra plataforma por ejemplo, es decir, independientes.

Un saludo!
__________________
Gracias por el Karma :D

empleo ofertas de trabajo

Etiquetas: clase, modelo, php, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:11.