Inicio
Software
Programación
HTML Programación - PHP (ini) Programación - PHP POO Programación - PHP / HTML SQL Java
Hardware
Desarrollos
Quién soy Mapa del sitio

PHP - POO Completo 8

Imprimir
Categoría: PHP - POO Completo
Escrito por Ch4rl1X Visitas: 787

Para el siguiente creamos un menú con links interactivos. Usamos el concepto de menú y ofrecemos la posibilidad de configurarlo horizontal y vertical.

Creamos la clase opcion que construye con $tit, $enl y $cfon los atributos, luego devolvemos graficar. A continuación también se crea la clase Menu que insertara el contenido del menú con la opción de graficar horizonal o vertical.

<html>
<head>
<title>POO_full_8</title>
</head>
<body>
<?php
/*La clase opción se construirá de los parámetros que le pasemos*/
class Opcion {
  private $titulo;
  private $enlace;
  private $colorFondo;
  public function __construct($tit,$enl,$cfon)
  {
/*Llenamos los atributos con parámetros*/
    $this->titulo=$tit;
    $this->enlace=$enl;
    $this->colorFondo=$cfon;
  }
  public function graficar()
  {
/*Salida por pantalla*/
    echo '<a style="background-color:'.$this->colorFondo.
         '" href="'.$this->enlace.'">'.$this->titulo.'</a>';
  }
}

class Menu {
  private $opciones=array();
/*Creamos direccion para su ejecución con el constructor*/
  private $direccion;
  public function __construct($dir='vertical')
  {
/*Devolvemos el valor del contructor*/
    $this->direccion=$dir;
  }
  public function insertar($op)
  {
/*Se inserta un nuevo menú llenando el atributo opciones con el array*/
    $this->opciones[]=$op;
  }
  private function graficarHorizontal() //Condicional del método graficar
  {
/*Si opciones es mayor que 0 entonces generamos un nuevo valor*/
    for($f=0;$f<count($this->opciones);$f++)
    {
/*Llamamos al valor del array opciones*/
      $this->opciones[$f]->graficar();
    }
  }
  private function graficarVertical() //Condicional del método graficar
  {
    for($f=0;$f<count($this->opciones);$f++)
    {
      $this->opciones[$f]->graficar();
      echo '<br>';
    }
  }
  public function graficar()
  {
/*Validamos la orientación del menú para ejecutar un método u otro*/
    if (strtolower($this->direccion)=="horizontal")
      $this->graficarHorizontal();
    else
      if (strtolower($this->direccion)=="vertical")
        $this->graficarVertical();
  }
}
if($_POST['direccion'] == '')
{
$menu1=new Menu('horizontal');    
}else{    
/*Se define la posición del menú a través de la clase*/
$menu1=new Menu($_POST['direccion']);
}
/*Llenamos la clase opción con los paráemtros que requiere su construtor*/
$opcion1=new Opcion('Google','http://www.google.com','#C3D9FF');
/*Luego instanciamos la clase y completamos el método insertar con la opción creada*/
$menu1->insertar($opcion1);
$opcion2=new Opcion('Yahoo','http://www.yahoo.com','#CDEB8B');
$menu1->insertar($opcion2);
$opcion3=new Opcion('CharlesWeb','http://charlesweb.com.ar','#C3D9FF');
$menu1->insertar($opcion3);
$menu1->graficar();
?>
    <form method="POST" action="POO_full_8.php">
        <select name="direccion">
            <option>
                vertical
            </option>
            <option>
                horizontal
            </option>
        </select>
        <input type="submit" value="Posicion"/>
    </form>
</body>
</html>

Como se ve en el anterior instanciamos Menu con el orden o dirección que le vamos a dar al menú, creamos una nueva variable para instanciar la clase opcion y pasamos los parámetros del link. Finalizamos la clase instanciando el objeto menu1 llamando a su método graficar.

Resultado -> Click aquí.

Espero que sirva, saludos, Ch4rl1X!