<?php class Elemento{ //Instance variables private $tag; //string exemplo:link private $atributos; // um elemente tem um array de atributos private $temtagfinal; //booleano private $subelementos; // um array de elemntos, porque por exemplo, dentro do html leva head e o body. private $numtabs; // numero de tabs à esquerda private $textTag; //Construct public function __construct($tag,$temtagfinal,$atributos) { $this->tag=$tag; // para falarmos de uma variavel de instância usa-se $this $this->temtagfinal=$temtagfinal; $this->atributos=$atributos; $this->subelementos=array(); $this->numtabs=0; $this->textTag=""; } //Methods public function getCodigo(){ $codigo=""; for ($i=0;$i<$this->numtabs;$i++){ //este ciclo tem tantas iteracoes quanto o num de tabs definidos $codigo.=" "; } $codigo.="<".$this->tag." "; foreach($this->atributos as $atributo){ $codigo.=$atributo." "; } if (!$this->temtagfinal) $codigo.="/>"."\n"; else $codigo.=">"."\n"; if ($this->temtagfinal) { if ($this->textTag==""){ foreach ($this->subelementos as $subelemento){ $codigo.=$subelemento->getCodigo(); } }else{ $codigo.=$this->textTag."\n"; } for ($i=0;$i<$this->numtabs;$i++){ // $codigo.=" "; } $codigo.="</".$this->tag.">"."\n"; } return $codigo; } public function addSubElemento($subelemento){ $subelemento->setNumTabs($this->numtabs+1); $this->subelementos[count($this->subelementos)]=$subelemento; //count no array da-nos o n de posiçoes do array } public function setNumTabs($numtabs) { $this->numtabs=$numtabs; } public function addTextToTag($textTag) { $this->textTag=$textTag; } } ?>
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter