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;
}
Example #2
0
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;
}
Example #3
0
            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;
Example #4
0
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;
}