Ver Mensaje Individual
  #2 (permalink)  
Antiguo 17/07/2011, 09:45
Avatar de Italico76
Italico76
 
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 8 meses
Puntos: 292
Respuesta: Mi ULTIMO aporte: menu horizontal

SIGO AGRADECIENDO los VOTOS NEGATIVOS! gracias IsaBelM

Código PHP:
<?php

Class Css_menu {
  private 
$items = array();
  
  private 
$startCode,$endCode;
  private 
$liOnCssClass=null;
  private 
$liOffCssClass=null;
  private 
$liDefaultCssClass=null;
  private 
$aOnCssClass=null;
  private 
$aOffCssClass=null;
  private 
$aDefaultCssClass=null;
  
  public function 
add ($uri,$anchor,$on=null){
    
$on_a  null;
    
$on_li null;
  
    if (
$on==true){
      if (
$this->liOnCssClass!=null){
        
$on_li $this->liOnCssClass;
      }    
      if (
$this->aOnCssClass!=null){
        
$on_a $this->aOnCssClass;
      }    
    }else{
      if (
$on==false){
        if (
$this->liOffCssClass!=null){
          
$on_li $this->liOffCssClass;
        }    
        if (
$this->aOffCssClass!=null){
          
$on_a $this->aOffCssClass;
        }    
      }else{
        
// ==null
        
if ($this->liDefaultCssClass!=null){
          
$on_li $this->liDefaultCssClass;
        }    
        if (
$this->aDefaultCssClass!=null){
          
$on_a $this->aDefaultCssClass;
        }            
      }
    }  
      
    
$this->items[] = array($uri,$anchor,$on_li,$on_a);    
  }
  
  public function 
setStartCode($code){
    
$this->startCode $code;    
  }
  
  public function 
setEndCode($code){
    
$this->endCode $code;    
  }
  
  
/* clase css <li> de tab activo */
  
public function setLiOnCssClass($code){
    
$this->liOnCssClass $code;    
  }
  
  
/* clase css <li>  de tab inactivo */
  
public function setLiOffCssClass($code){
    
$this->liOffCssClass $code;    
  }
  
   
/* clase css <li>  de tab por defecto */
  
public function setLiDefaultCssClass($code){
    
$this->liDefaultCssClass $code;    
  }
  
  
  
/* clase css <a> de tab activo */
  
public function setAOnCssClass($code){
    
$this->aOnCssClass $code;    
  }
  
  
/* clase css <a> de tab inactivo */
  
public function setAOffCssClass($code){
    
$this->aOffCssClass $code;    
  }
  
  
/* clase css <a> de tab por defecto */
  
public function setADefaultCssClass($code){
    
$this->aDefaultCssClass $code;    
  }
  
  
  
  
  public function 
render(){
    
$out  $this->startCode;    
    foreach (
$this->items as $item){            
      if (
$item[2]!=null){
        
$li_class "class= \"{$item[2]}\"";
      }else{
        
$li_class='';
      }          
      
      if (
$item[3]!=null){
        
$a_class "class= \"{$item[3]}\"";
      }else{
        
$a_class='';
      }     
            
      
$out .= "<li $li_class ><a $a_class href=\"{$item[0]}\">{$item[1]}</a></li>";
    }    
    
$out .= $this->endCode;
    return 
$out;
  }

  public function 
__tostring(){
    return 
$this->render();
  }
  
// end class

Uso:

Código PHP:
<?php
  $this
->css_menu->setStartCode('<div id="tabmenu"><ul><li class="tm_begin"></li>');
  
$this->css_menu->setEndCode('<li class="tm_end"> </li></ul></div>');
  
$this->css_menu->setLiOnCssClass('on');
  
$this->css_menu->setLiOffCssClass('ge');
  
$this->css_menu->add('#','Inicio',TRUE);
  
$this->css_menu->add('#','Pago x post');
  
$this->css_menu->add('#','F.A.Q.');
  
$this->css_menu->add('#','Contacto');
  echo 
$this->css_menu;
SE que les encanta... criticar y desprestgiar a los colaboradores... bueno ahi tenes... porque "el que hace se equivoca y el que no..se calla la boca"

PD: veran que generalizar hace el codigo UN POCO mas largo (mas alla de que no use __set() )

Última edición por Italico76; 18/07/2011 a las 09:14