/** * get all sections with its name and data from XML file * @param simpleXML $simpleXMLObj * @return array $xmlSections (name and serialized data) */ private function _getXMLSections($simpleXMLObj) { $xmlSections = array(); $sectionsToFilter = array(); if ($this->_config["filter"]) { array_push($sectionsToFilter, 'USBDEVICES', 'CONTROLLERS', 'NETWORKS'); DataFilter::init(); } foreach ($simpleXMLObj->CONTENT->children() as $section) { if (in_array($section->getName(), $sectionsToFilter)) { $nofilter = DataFilter::filter($section); //if the folder for the filter doesn't exist, delete this element from array. if ($nofilter) { foreach ($sectionsToFilter as $fKey => $fValue) { if ($fValue == $nofilter) { unset($sectionsToFilter[$fKey]); } } } } $sectionData = array(); foreach ($section->children() as $data) { $sectionData[$data->getName()] = (string) $data; } //sectionId initialization, we will affect id after hook createSection return value. $serializedSectionData = serialize($sectionData); array_push($xmlSections, array("sectionId" => 0, "sectionName" => $section->getName(), "sectionDatawName" => $serializedSectionData . $section->getName(), "sectionData" => $serializedSectionData)); } return $xmlSections; }