Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Añadir subsecciones

Estas en el tema de Añadir subsecciones en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola, que tal imaginad que tengo una seccion en una pagina web. La idea es que el usuario pueda añadir nuevas subsecciones dentro de una ...
  #1 (permalink)  
Antiguo 27/06/2007, 15:31
 
Fecha de Ingreso: enero-2007
Mensajes: 405
Antigüedad: 17 años, 3 meses
Puntos: 3
Añadir subsecciones

Hola, que tal imaginad que tengo una seccion en una pagina web.

La idea es que el usuario pueda añadir nuevas subsecciones dentro de una seccion.

No tengo clara la idea la implementacion.

Alguna idea sobre como llevarla a cabo???



Saludos
  #2 (permalink)  
Antiguo 27/06/2007, 15:32
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Añadir subsecciones

Amigo este foro es para PHP Orientado a Objetos te traslado al foro de PHP General.

Saludos.
  #3 (permalink)  
Antiguo 27/06/2007, 15:37
 
Fecha de Ingreso: enero-2007
Mensajes: 405
Antigüedad: 17 años, 3 meses
Puntos: 3
Re: Añadir subsecciones

GatorV yo me refiero usando clases y POO

Tengo una clase seccion, con los metodos GET y SET de todos los atributos.

Pero estoy un poco parado.

Saludos
  #4 (permalink)  
Antiguo 27/06/2007, 15:40
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Añadir subsecciones

En ese caso publica tu codigo que estas usando, en si debes de tener una propiedad privada que sea un contenedor de subsecciones y con un metodo set para agregar un nuevo elemento a tu coleccion de subsecciones.

Saludos.

PD de regreso a POO.
  #5 (permalink)  
Antiguo 27/06/2007, 15:42
 
Fecha de Ingreso: enero-2007
Mensajes: 405
Antigüedad: 17 años, 3 meses
Puntos: 3
Re: Añadir subsecciones

clase Seccion.

Código PHP:
class Seccion
{
    private 
$_padre//Objeto Seccion
    
private $_hijos//Array de Seccion
    
private $_nombre;
    private 
$_descripcion;

    public function 
__construct(Seccion $padre null$hijos null$nombre null$descripcion null)
    {
        
$this->_padre       $padre;
        
$this->_hijos       $hijos;
        
$this->_nombre      $nombre;
        
$this->_descripcion $descripcion;
    }

    public function 
setPadre($padre null)
    {
        
$this->_padre $padre;
    }

    public function 
setHijos($hijos null)
    {
        
$this->_hijos $hijos;
    }

    public function 
setNombre($nombre null)
    {
        
$this->_nombre $nombre;
    }

    public function 
setDescripcion($descripcion null)
    {
        
$this->_descripcion $descripcion;
    }

    public function 
getPadre()
    {
        return 
$this->_padre;
    }

    public function 
getHijos()
    {
        return 
$this->_hijos;
    }

    public function 
getNombre()
    {
        return 
$this->_nombre;
    }

    public function 
getDescripcion()
    {
        return 
$this->_descripcion;
    }

Las secciones irian en una Base de datos, tendria que crear una clase que extendiera de la clase BD ?????
No tengo muy claro el concepto.

Gracias!!
  #6 (permalink)  
Antiguo 27/06/2007, 15:44
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Añadir subsecciones

Como te comente necesitas una propiedad extra que sea una coleccion de objetos o coleccion de claves de seccion para que las puedas agregar a tu objeto via un addSeccion.

Saludos.
  #7 (permalink)  
Antiguo 27/06/2007, 17:48
 
Fecha de Ingreso: noviembre-2003
Mensajes: 798
Antigüedad: 20 años, 5 meses
Puntos: 8
Re: Añadir subsecciones

Tu clase tiene que almacenar objetos hijos en un array y cada uno de ellos a su vez hacer lo mismo, deberías implementar jerarquías en tu clase o arboles.

Existe un patrón de diseño llamado Composite patterns que te serviría par eso, como ejemplo de su implementación tienes la librería Document Object Model (DOM) de php.

saludos.
  #8 (permalink)  
Antiguo 27/06/2007, 18:51
 
Fecha de Ingreso: enero-2007
Mensajes: 405
Antigüedad: 17 años, 3 meses
Puntos: 3
Re: Añadir subsecciones

Gracias por los aportes.

Una cosa que no entiendo muy bien, es como se guardarian los datos.

Creo una clase que extienda de la clase BD????

un metodo en la clase Seccion de addSeccion y que ahi haga la conexion...


Saludos
  #9 (permalink)  
Antiguo 27/06/2007, 19:27
 
Fecha de Ingreso: enero-2007
Mensajes: 405
Antigüedad: 17 años, 3 meses
Puntos: 3
Re: Añadir subsecciones

GatorV , me sujerias algo como esto???

Código PHP:
protected $secciones;
    public function 
addSeccion($node) {
        
$this->secciones[] = $node;
    } 

Saludos
  #10 (permalink)  
Antiguo 27/06/2007, 20:45
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Añadir subsecciones

Asi es para almacenarlo en la BD es una cuestion diferente ya que tienes que implementar algun algoritmo para convertir entre la clase implementada y el objeto persistente.

Saludos.
  #11 (permalink)  
Antiguo 27/06/2007, 20:56
 
Fecha de Ingreso: enero-2007
Mensajes: 405
Antigüedad: 17 años, 3 meses
Puntos: 3
Re: Añadir subsecciones

Bastaria una clase que extendiera de la clase BD y instanciar un objeto en el metodo de la clase Seccion ??????????


Saludos
  #12 (permalink)  
Antiguo 27/06/2007, 22:10
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Añadir subsecciones

Deberias de intentar hacerlo como lo planteas, de extender la clase pero como regla es mejor primero diseniar la base de datos y despues hacer las clases de implementacion.

Saludos.
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 00:20.