/** * converts directive object to plain with its inner directives as plain too * @param iDirective $directive * @param int $nestLevel * @return array */ protected function directiveToPlain(iDirective $directive, $nestLevel = 0) { $tabulation = $nestLevel > 0 ? str_repeat(" ", $nestLevel) : ""; if ($directive->isSection()) { $directiveText = $this->customFilter($directive, "<{$directive->getName()} {$directive->getValue()}>"); $directivePlain = $tabulation . $directiveText . "\n"; foreach ($directive->getInnerDirectives() as $innerDirective) { $directivePlain .= $this->directiveToPlain($innerDirective, $nestLevel + 1); } $directivePlain .= $tabulation . "</{$directive->getName()}>\n"; } else { $directiveText = $this->customFilter($directive, "{$directive->getName()} {$directive->getValue()}"); $directivePlain = $tabulation . $directiveText . "\n"; } return $directivePlain; }