Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Frameworks y PHP orientado a objetos (http://www.forosdelweb.com/f68/)
-   -   Clase para HTML (http://www.forosdelweb.com/f68/clase-para-html-576511/)

adjmogollon 16/04/2008 07:25

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;
?>


emiliodeg 16/04/2008 09:41

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


La zona horaria es GMT -6. Ahora son las 12:09.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.