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

Clase para HTML

Estas en el tema de Clase para HTML en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola, Listo ya revise los constructores me parece que ahora lo hace de una forma mas limpia, aunque opte por pasar varios arreglos por cuestines ...
  #1 (permalink)  
Antiguo 16/04/2008, 07:25
 
Fecha de Ingreso: abril-2008
Mensajes: 7
Antigüedad: 16 años
Puntos: 0
Clase para HTML

Hola, Listo ya revise los constructores me parece que ahora lo hace de una forma mas limpia, aunque opte por pasar varios arreglos por cuestines de gustos y manejo de herencia, en fin cuando tenga tiempo voy a estar haciendo las clases para los otros objetos html como los input para luego programar todas las interfaces y metodos :), quizas algun dia tenga una super clase que me permita manejar todo el html. CRITICAS, SUGERENCIAS O APORTES AMIGOS que asi es mas facil avanzar! Saludos y Gracias de antemano!.
P.D: Me gustaria saber que piensan de los "constructores dinamicos" que estoy utilizando
Código PHP:
<?
abstract class HTML{
    protected 
$id;
    protected 
$clase;
    protected 
$style;
    protected 
$title;
    protected 
$lang;
    protected 
$dire;
    protected 
$onclick;
    protected 
$ondblclick;
    protected 
$onmousedown;
    protected 
$onmouseup;
    protected 
$onmouseover;
    protected 
$onmousemove;
    protected 
$onmouseout;
    protected 
$onkeypress;
    protected 
$onkeydown;
    protected 
$onkeyup;

    function 
__construct($atributos_html){
    
        foreach (
$atributos_html as $variable => $contenido){
            
$this->$variable $contenido;
        }
    }
    
}

class 
Select extends HTML {
    private 
$name;             
    private 
$multiple;         
    private 
$size
    private 
$disabled;     
    private 
$tabindex
    private 
$onfocus;
    private 
$onblur;     
    private 
$onchange;
    private 
$opcion;
    private 
$i;    
    private 
$sw;
    function 
__construct($atributos_html,$atributos_select,$opciones,$seleted)
    {
        
parent::__construct($atributos_html);
        
        foreach (
$atributos_select as $variable => $contenido){
            
$this->$variable $contenido;
        }    
        
$this->opciones   $opciones;
        
$this->seleted    $seleted;
        
        
            
    }
    
    function 
__toString(){
    
$cadena "<select id = '$this->id' class = '$this->class' style = '$this->style' title = '$this->title' lang = '$this->lang' dir = '$this->dir' onclick = '$this->onclick' ondblclick = '$this->ondblclick' onmousedown = '$this->onmousedown' onmouseup = '$this->onmouseup' onmouseover = '$this->onmouseover' onmousemove = '$this->onmousemove' onmouseout = '$this->onmouseout' onkeypress = '$this->onkeypress' onkeydown = '$this->onkeydown' onkeyup = '$this->onkeyup' name = '$this->name' $this->multiple size = '$this->size' $this->disabled tabindex = '$this->tabindex' onfocus = '$this->onfocus' onblur = '$this->onblur' onchange = '$this->onchange'>";
        foreach (
$this->opciones as $clave => $valor){
            if (
is_array($this->seleted)){
                
$sw=0;
                for (
$i=0;$i<=count($this->seleted);$i++){
                    if (
$clave==$this->seleted[$i]){
                        
$cadena .= "<OPTION VALUE='$clave' selected='selected'>".$valor."</OPTION>";
                        
$sw=1;
                        }
                    elseif(
$sw==and $i==count($this->seleted)) {
                        
$cadena .= "<OPTION VALUE='$clave'>".$valor."</OPTION>";
                    }  
                }
            }
            elseif (
$clave==$this->seleted)
                
$cadena .= "<OPTION VALUE='$clave' selected='selected'>".$valor."</OPTION>";
            else
                
$cadena .= "<OPTION VALUE='$clave'>".$valor."</OPTION>";
            
        }
            
            
$cadena .="</select>";
            return 
$cadena;
    }
}

$atributos_html = array('id'=>'id01','onclick'=>'funcion','class'=>'clase01'); 
$atributos_select = array('name'=>'primer_select','size'=>'3','multiple'=>'multiple');
$opciones = array('01'=>'op01','02'=>'op02','03'=>'op03'); 
$seleccion = array (01,03);

$select  = new Select ($atributos_html,$atributos_select,$opciones,$seleccion);
$select2 = new Select ($atributos_html,$atributos_select,$opciones,array(01,02));
$select3 = new Select ($atributos_html,$atributos_select,$opciones,'-');

echo 
$select;
echo 
"</br>";
echo 
$select2;
echo 
"</br>";
echo 
$select3;
?>

Última edición por adjmogollon; 17/04/2008 a las 14:21 Razón: Actualizacion de la Clase
  #2 (permalink)  
Antiguo 16/04/2008, 09:41
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 8 meses
Puntos: 55
Re: Clase para HTML

adjmogollon esta muy bien!!!

yo lo q intenteria de mejorar es la creacoin
fijate esto

$select = new Select("hj","","","","","","","","","","","","","","","","","multiple","","","","","","",$opciones,01);


no te parece demaciado "largo" para crear un simple select????
yo sugeriria 2 alternativas, o reacomodar los parametros dejando por delante y en caracter de obligatorios los mas importnates, name y value
o pasar un array o json

$array=array('name'=>'miselect','value'=>$opciones ,'select'=>01);
$json='['name':'miselect','value':[las pciones],'select':1]';
$select = new Select($array);
$select = new Select($json);



obviaente que esot es una cuesoitn de gustos, tu trabajo esta mas que bien, pero creo q se podria hacer mas amigable todavia

saludos
__________________
Degiovanni Emilio
developtus.com
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 02:11.