PHP - POO Completo 8
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.
Espero que sirva, saludos, Ch4rl1X!