From 2b9d6dc9c4a41d8ba3b9998c3903e03011069b21 Mon Sep 17 00:00:00 2001 From: "Florian Aders (EleRas)" Date: Thu, 5 Feb 2015 20:28:11 +0100 Subject: [PATCH] Added grouping - functionality for configfiles Signed-off-by: Florian Aders (EleRas) --- lib/classes/config/class.ConfigDaemon.php | 31 +++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/lib/classes/config/class.ConfigDaemon.php b/lib/classes/config/class.ConfigDaemon.php index b2bb4bc2..92fbb8c0 100644 --- a/lib/classes/config/class.ConfigDaemon.php +++ b/lib/classes/config/class.ConfigDaemon.php @@ -107,6 +107,37 @@ class ConfigDaemon { $preparsed[] = $include; } break; + // The next 3 are groupings, MUST come first in this to work properly + case "commands": + case "files": + case "installs": + // Hold the results + $visibility = 1; + foreach($order->children() as $child) { + switch((string)$child->getName()) { + case "visibility": $visibility += $this->_checkVisibility($child); break; + case "install": + case "file": + case "command": + if ($visibility > 0) { + $preparsed[] = $child; + } + break; + case "include": + // Includes, get the part we want via xpath + $includes = $this->fullxml->xpath((string)$chile); + foreach ($includes[0] as $include) { + // The "include" is also a child, so just skip it, would make a mess later + if ((string)$include->getName() == 'include') { + continue; + } + $preparsed[] = $include; + } + break; + default: continue; + } + } + break; default: continue; } }