function flattenTree($tree) { $flat = array(); foreach ($tree as $branch) { $flat[$branch->name][] = $branch->category_id; if (!empty($branch->children)) { $flat = array_merge_recursive($flat, flattenTree($branch->children)); } } return $flat; }
function flattenTree($tree, $parent_tree = array()) { $out = array(); foreach ($tree as $key => $children) { $new_tree = $parent_tree; var_dump($new_tree); $new_tree[] = $key; if (count($children)) { $child_trees = flattenTree($children, $new_tree); foreach ($child_trees as $tree) { $out[] = $tree; } } else { $out[] = $new_tree; } } return $out; }
if ($count) { $result = file_get_contents($api_url); if ($result != '' && $result != 'Error: e-mail incorrect') { $msg = 0; } else { $msg = 1; } } else { $msg = 1; } $engSmarty->assign('maillist_result', $msg); } $engSmarty->assign('arrNewsRight', content_getByPath(str_replace(SYSTEM_PATH, '', getItemByFolderParameter($arrTree, 'newsright')->link), $arrTree, $arrGlobalRights)); $engSmarty->assign('arrTopMenu', content_getByPath(str_replace(SYSTEM_PATH, '', getItemByFolderParameter($arrTree, 'topmenu')->link), $arrTree, $arrGlobalRights)->arrContent[0]); $engSmarty->assign('arrArchive', content_getByPath(str_replace(SYSTEM_PATH, '', getItemByFolderParameter($arrTree, 'archive')->link), $arrTree, $arrGlobalRights)->arrContent[0]->arrLink); $engSmarty->assign("arrLeftMenu", flattenTree($arrTree)); $engSmarty->assign('SYSTEM_PATH', SYSTEM_PATH); $engSmarty->assign("arrContent", $arrContent); //$engSmarty->assign("arrPath", $arrPath); $engSmarty->assign("siteVariables", $siteVariables); $engSmarty->assign('arrLanguageSelect', $arrLanguageSelect); $engSmarty->assign("recNode", $recNode); //$engSmarty->assign("strPath", SYSTEM_PATH . "/" . $recNode->path); } elseif (!is_object($recNode)) { header("Location: " . SYSTEM_PATH . "/" . DEFAULT_LANG); exit; } else { $strTemplate = "content.noaccess.tpl"; } } $engSmarty->debugging = false;
function constructFinalTree($rawResultTree, $allMessages, $showRootStatuses, &$finalTree) { global $thisVersion; $initialRootStatus = $showRootStatuses ? 'off' : ''; $finalTree = array(array('type' => 0, 'class' => $initialRootStatus, 'caption' => __("delegation"), 'subtree' => array()), array('type' => 0, 'class' => $initialRootStatus, 'caption' => __("nameserver"), 'subtree' => array()), array('type' => 0, 'class' => $initialRootStatus, 'caption' => __("consistency"), 'subtree' => array()), array('type' => 0, 'class' => $initialRootStatus, 'caption' => __("soa"), 'subtree' => array()), array('type' => 0, 'class' => $initialRootStatus, 'caption' => __("connectivity"), 'subtree' => array()), array('type' => 0, 'class' => $initialRootStatus, 'caption' => __("dnssec"), 'subtree' => array())); $finalResult = STATUS_OK; foreach ($rawResultTree[0] as $rootNode) { if (!$thisVersion) { $thisVersion = $rootNode["arg1"]; } if (!isset($rootNode['message'])) { $flattenedArray = null; switch ($rootNode[0]['message']) { case 'DELEGATION:BEGIN': $result = flattenTree($rootNode, 2, $allMessages, $flattenedArray); $finalTree[0]['class'] = $showRootStatuses ? $result : ''; $finalTree[0]['subtree'] = $flattenedArray; break; case 'NAMESERVER:BEGIN': $result = flattenTree($rootNode, 3, $allMessages, $flattenedArray); $nameserverNode = array('type' => 1, 'class' => $showRootStatuses ? $result : '', 'caption' => __("nameserver") . ' ' . $rootNode[0]['arg0'], 'subtree' => $flattenedArray); $finalTree[1]['subtree'][] = $nameserverNode; if ($showRootStatuses) { if ('ok' == $result && 'off' == $finalTree[1]['class']) { $finalTree[1]['class'] = 'ok'; } elseif ('warn' == $result && 'error' != $finalTree[1]['class']) { $finalTree[1]['class'] = 'warn'; } elseif ('error' == $result) { $finalTree[1]['class'] = 'error'; } } break; case 'CONSISTENCY:BEGIN': $result = flattenTree($rootNode, 2, $allMessages, $flattenedArray); $finalTree[2]['class'] = $showRootStatuses ? $result : ''; $finalTree[2]['subtree'] = $flattenedArray; break; case 'SOA:BEGIN': $result = flattenTree($rootNode, 2, $allMessages, $flattenedArray); $finalTree[3]['class'] = $showRootStatuses ? $result : ''; $finalTree[3]['subtree'] = $flattenedArray; break; case 'CONNECTIVITY:BEGIN': $result = flattenTree($rootNode, 2, $allMessages, $flattenedArray); $finalTree[4]['class'] = $showRootStatuses ? $result : ''; $finalTree[4]['subtree'] = $flattenedArray; break; case 'DNSSEC:BEGIN': $result = flattenTree($rootNode, 2, $allMessages, $flattenedArray); $skipped = false; foreach ($rootNode as $treeNode) { if (isset($treeNode['message']) && 'DNSSEC:SKIPPED_NO_KEYS' == $treeNode['message']) { $skipped = true; } } $finalTree[5]['class'] = $showRootStatuses ? $skipped ? 'off' : $result : ''; $finalTree[5]['subtree'] = $flattenedArray; break; } if ('warn' == $result && STATUS_OK == $finalResult) { $finalResult = STATUS_WARN; } if ('error' == $result) { $finalResult = STATUS_ERROR; } } } return $finalResult; }