From 5bbced809048b8863a635c98cee16bbe3065ae36 Mon Sep 17 00:00:00 2001 From: Ad Schellevis Date: Mon, 8 Aug 2016 17:31:03 +0200 Subject: [PATCH] Revert "(mvc) remove unused getFlatNodes" This reverts commit 6c6b861e778704d2aa2d06b569a1e3071f065465. --- .../app/models/OPNsense/Base/BaseModel.php | 9 ++++++++ .../OPNsense/Base/FieldTypes/BaseField.php | 21 +++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/src/opnsense/mvc/app/models/OPNsense/Base/BaseModel.php b/src/opnsense/mvc/app/models/OPNsense/Base/BaseModel.php index 7081fd509..52c573a62 100644 --- a/src/opnsense/mvc/app/models/OPNsense/Base/BaseModel.php +++ b/src/opnsense/mvc/app/models/OPNsense/Base/BaseModel.php @@ -259,6 +259,15 @@ abstract class BaseModel $this->internalData->$name = $value ; } + /** + * forward to root node's getFlatNodes + * @return array all children + */ + public function getFlatNodes() + { + return $this->internalData->getFlatNodes(); + } + /** * get nodes as array structure * @return array diff --git a/src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/BaseField.php b/src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/BaseField.php index e53614595..4de090321 100644 --- a/src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/BaseField.php +++ b/src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/BaseField.php @@ -388,6 +388,27 @@ abstract class BaseField return $this->internalXMLTagName; } + /** + * Recursive method to flatten tree structure for easy validation, returns only leaf nodes. + * @return array named array with field type nodes, using the internal reference. + */ + public function getFlatNodes() + { + $result = array (); + if (count($this->internalChildnodes) == 0) { + return array($this); + } + + foreach ($this->__items as $node) { + foreach ($node->getFlatNodes() as $childNode) { + $result[$childNode->internalReference] = $childNode ; + } + } + + return $result; + } + + /** * get nodes as array structure * @return array