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 == 1 || $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ás >>></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", 5, 2,true);
con ese método todo es más fácil, donde declaro todo este que les puse en CodeIgniter. Por favor
Salu2
Reyvi