From e70395c0a3d446b219b2c1b5ead7f876bc469633 Mon Sep 17 00:00:00 2001 From: Trismegiste Date: Sat, 11 May 2013 01:36:57 +0200 Subject: [PATCH] improving the render to show the tree with indentations --- Composite/Form.php | 2 +- Composite/InputElement.php | 2 +- Composite/TextElement.php | 2 +- Tests/Composite/FormTest.php | 5 +++++ 4 files changed, 8 insertions(+), 3 deletions(-) diff --git a/Composite/Form.php b/Composite/Form.php index e2ebc60..0cc16e1 100644 --- a/Composite/Form.php +++ b/Composite/Form.php @@ -32,7 +32,7 @@ class Form extends FormElement { $formCode = ''; foreach ($this->_elements as $element) { - $formCode .= $element->render(); + $formCode .= $element->render($indent + 1) . PHP_EOL; } return $formCode; diff --git a/Composite/InputElement.php b/Composite/InputElement.php index d042e72..786df45 100644 --- a/Composite/InputElement.php +++ b/Composite/InputElement.php @@ -6,6 +6,6 @@ class InputElement extends FormElement { public function render($indent = 0) { - return ''; + return str_repeat(' ', $indent) . ''; } } diff --git a/Composite/TextElement.php b/Composite/TextElement.php index 9e076e8..c8214ca 100644 --- a/Composite/TextElement.php +++ b/Composite/TextElement.php @@ -6,6 +6,6 @@ class TextElement extends FormElement { public function render($indent = 0) { - return 'this is a text element'; + return str_repeat(' ', $indent) . 'this is a text element'; } } diff --git a/Tests/Composite/FormTest.php b/Tests/Composite/FormTest.php index 85d56d5..2e10a8f 100644 --- a/Tests/Composite/FormTest.php +++ b/Tests/Composite/FormTest.php @@ -19,6 +19,11 @@ class FormTest extends \PHPUnit_Framework_TestCase $form = new Composite\Form(); $form->addElement(new Composite\TextElement()); $form->addElement(new Composite\InputElement()); + $embed = new Composite\Form(); + $embed->addElement(new Composite\TextElement()); + $embed->addElement(new Composite\InputElement()); + $form->addElement($embed); // here we have a tree ! + echo $form->render(); }