public function testAddingHTMLAttributes()
 {
     /**
      * _______________________
      * |  a       | b        |
      * |__________|__________|
      */
     ob_start();
     ?>
         <table border="1">
             <tr>
                 <td colspan="1" rowspan="1" style="color: #f00">a</td>
                 <td colspan="1" rowspan="1">b</td>
             </tr>
         </table>
     <?php 
     $expectedHTML = ob_get_clean();
     $attrs = new ObjectAttributeContainerImpl();
     $this->builder->setAttributeContainer($attrs);
     $tree = $attrs->addObjAttrs((new VerticalContainer())->add($attrs->addObjAttrs(new TextValue("a"), ["attrs" => ["style" => "color: #f00"]]))->add(new TextValue("b")), ["attrs" => ["border" => 1]]);
     $renderer = $this->builder->buildRenderer();
     $renderedHTML = $renderer->renderHTMLBasedOn($tree);
     $this->assertXmlStringEqualsXmlString($expectedHTML, $renderedHTML);
 }
Example #2
0
<?php

/**
 * This file is part of the TableRenderer library.
 *
 * @author Ɓukasz Makuch <*****@*****.**>
 * @license MIT http://opensource.org/licenses/MIT
 */
require_once __DIR__ . "/../vendor/autoload.php";
use lukaszmakuch\ObjectAttributeContainer\Impl\ObjectAttributeContainerImpl;
use lukaszmakuch\TableRenderer\HorizontalContainer;
use lukaszmakuch\TableRenderer\HTMLRenderer\HTMLRendererBuilder;
use lukaszmakuch\TableRenderer\VerticalContainer;
use lukaszmakuch\TableRenderer\TextValue;
//will hold attributes used by the HTML renderer
$attrs = new ObjectAttributeContainerImpl();
//table with a border attribute assigned for the HTML renderer
$tableModel = $attrs->addObjAttrs((new HorizontalContainer())->add((new VerticalContainer())->add((new HorizontalContainer())->add(new TextValue("tree"))->add(new TextValue("structures")))->add($attrs->addObjAttrs(new TextValue("may"), ["attrs" => ["style" => "background-color: #d33; color: #fff"]]))->add((new HorizontalContainer())->add(new TextValue("be"))->add(new TextValue("rendered"))->add(new TextValue("as"))))->add((new VerticalContainer())->add(new TextValue("a"))->add(new TextValue("table"))), ["attrs" => ["border" => 1]]);
//get the builder
$rendererBuilder = new HTMLRendererBuilder();
//provide source of additional attributes
$rendererBuilder->setAttributeContainer($attrs);
//build the renderer
$renderer = $rendererBuilder->buildRenderer();
//check how does this table look rendered in HTML
echo $renderer->renderHTMLBasedOn($tableModel);