GroupComponent::getHTML()   B
last analyzed

Complexity

Conditions 7
Paths 18

Size

Total Lines 20
Code Lines 14

Duplication

Lines 0
Ratio 0 %

Importance

Changes 2
Bugs 0 Features 1
Metric Value
c 2
b 0
f 1
dl 0
loc 20
rs 8.2222
cc 7
eloc 14
nc 18
nop 4
1
<?php
2
3
namespace fieldwork\components;
4
5
class GroupComponent extends Component
6
{
7
8
    public function getHTML ($beforeTpl = '', $after = '', $prefix = '', $suffix = '')
9
    {
10
        $html = '';
11
        foreach ($this->children as $component)
12
            /* @var $component static */
13
            if ($component->isActive()) {
14
                $componentHTML = (
15
                ($component->isVisible() || $component->renderWhenHidden() == Field::RM_DEFAULT) ?
16
                    $component->getHTML() :
17
                    ($component->renderWhenHidden() == Field::RM_HIDDENFIELD ? $component->renderHiddenField() : '')
18
                );
19
                $globalSlug    = $component->getGlobalSlug();
20
                $before        = str_replace('%slug%', $globalSlug, $beforeTpl);
21
                $before        = str_replace('%classes%', implode(' ', $component->getWrapperClasses()), $before);
22
                $inner         = $component->isVisible() ? ($before . $componentHTML . $after) : $component->getHTML();
23
                $html .= $prefix . ($inner) . $suffix;
24
            }
25
26
        return $html;
27
    }
28
29
    public function isValid ()
30
    {
31
        foreach ($this->children as $component)
32
            /* @var $component Component */
33
            if (!$component->isValid() && $component->isActive())
34
                return false;
35
        return true;
36
    }
37
38
}