Retroceder   Foros del Web > Programación para sitios web > PHP > PHP orientado a objetos

Respuesta
 
Herramientas Desplegado
Antiguo 16-abr-2008, 07:25   #1 (permalink)
adjmogollon ha deshabilitado el karma
 
Fecha de Ingreso: abril-2008
Mensajes: 2
Idea 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-abr-2008 a las 14:21. Razón: Actualizacion de la Clase
adjmogollon está desconectado   Responder Citando
Antiguo 16-abr-2008, 09:41   #2 (permalink)
emiliodeg tiene algunos puntos positivos de karma
 
Avatar de emiliodeg
 
Fecha de Ingreso: septiembre-2005
Mensajes: 819
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
mi neurona
emiliodeg está desconectado   Responder Citando
Respuesta
No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 03:35.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93