Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- // -----------------------------------------------------
- header("Content-Type: text/html; charset=utf-8");
- // -----------------------------------------------------
- ?>
- <html>
- <head>
- <title>Kategorie Baum - Google Taxonomy</title>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <script type="text/javascript">
- function show(id) {
- if (document.getElementById(id).style.display == "none") {
- document.getElementById(id).style.display = "block";
- } else {
- document.getElementById(id).style.display = "none";
- }
- }
- </script>
- </head>
- <body bgcolor="#FFFFFF" text="#000000">
- <h1>Kategorie Baum - Google Taxonomy</h1>
- <br>
- <br>
- <br>
- <?php
- // -----------------------------------------------------------------
- ### http://www.google.com/basepages/producttype/taxonomy.de-DE.txt
- $filename = 'taxonomy.de-DE.txt';
- $fdata1 = file($filename, FILE_IGNORE_NEW_LINES);
- // -----------------------------------------------------
- $kat_temp = array(); // --- Hilfs-Array ID->Name
- $kat_data = array(); // --- Ergebnis-Array Daten
- $max_deep = 0; // --- max. Tiefe der Kategorie-Ebenen
- // -----------------------------------------------------------------
- foreach($fdata1 as $key => $line) {
- if ($key > 0) {
- // ------ Kategorie Ebene ($level) ermitteln -----
- $nx = substr_count($line, '>');
- if ($nx > $max_deep) { $max_deep = $nx; }
- ## $level = ($nx+1);
- $level = $nx;
- // ------ Element in Array $kat_temp erstellen -----
- $subarray = explode('>', $line);
- $kat_name = trim($subarray[$nx]);
- $kat_temp[$key] = $kat_name;
- // ------ parent_id aus $kat_temp ermitteln -----
- if ($nx > 0) {
- $ny = ($nx-1);
- $kat_pren = trim($subarray[$ny]);
- $kat_prek = array_search($kat_pren, $kat_temp);
- }
- else {
- $kat_pren = 'root';
- $kat_prek = '0';
- }
- // ------ Neues Array-Element erstellen -----
- $kat_data[$key] = array(
- 'id' => $key,
- 'parent_id' => $kat_prek,
- 'level' => $level,
- 'name' => $kat_name
- );
- unset($subarray);
- }
- }
- unset($kat_temp);
- // -----------------------------------------------------------------
- echo "<br />\n";
- echo "<br />Max Deep: ".$max_deep."\n";
- echo "<br />\n";
- // -----------------------------------------------------------------
- if (!empty($_REQUEST['d'])) {
- $go_d = trim($_REQUEST['d']);
- }
- else {
- $go_d = '1';
- }
- // -----------------------------------------------------------------
- $runfile = $_SERVER['PHP_SELF'];
- for ($d=1; $d<=$max_deep; $d++) {
- if ($d == $go_d) {
- echo "<br />... <strong>zeige ".$d." Ebene(n)</strong>\n";
- }
- else {
- echo "<br />... <a href=\"".$runfile."?d=".$d."\">zeige ".$d." Ebene(n)</a>\n";
- }
- }
- // -----------------------------------------------------------------
- ## print "<br />---- DEBUG --- kat_data ---- \n";
- ## print "<pre style=\"margin:8px; padding:6px; background:#DEDEDE;\">\n";
- ## print_r($kat_data);
- ## print "</pre>\n";
- ## print "<br />\n";
- // -----------------------------------------------------------------
- $outputArray = array();
- $nodeRefs = array(0 => &$outputArray);
- foreach ($kat_data as $element) {
- $parent = &$nodeRefs[$element['parent_id']];
- $parent[$element['id']] = array( 'name' => $element['name'], 'parent_id' => $element['parent_id'], 'sub' => array() );
- $nodeRefs[$element['id']] = &$parent[$element['id']]['sub'];
- }
- // -----------------------------------------------------------------
- ## print "<br />---- DEBUG --- outputArray ---- \n";
- ## print "<pre style=\"margin:8px; padding:6px; background:#DEDEDE;\">\n";
- ## print_r($outputArray);
- ## print "</pre>\n";
- ## print "<br />\n";
- // -----------------------------------------------------------------
- function print_tree($array, $level=0, $view=1) {
- global $go_shopid;
- if ($level == 0) { print "<ul id=\"katroot\" style=\"background:#DEDEDE;\">\n"; }
- foreach($array as $key => $val) {
- $level++;
- if ( isset($val['sub']) && !empty($val['sub']) ) {
- $preid = $val['parent_id'];
- print "<li>".$val['name']." (<a href=\"javascript:show('".$key.$level."')\">".$preid." / ".$key."</a>) - ".$level."";
- if ($level == 1) { $ulcolor = 'background:#FFFFCC;'; }
- elseif ($level == 2) { $ulcolor = 'background:#CCFFFF;'; }
- elseif ($level == 3) { $ulcolor = 'background:#FFFFFF;'; }
- elseif ($level == 4) { $ulcolor = 'background:#FFCCFF;'; }
- elseif ($level == 5) { $ulcolor = 'background:#EEEEFF;'; }
- else { $ulcolor = 'background:#EAEAEA;'; }
- if ($level >= $view) { $ulview = 'display:none;'; }
- else { $ulview = 'display:block;'; }
- $ulstyle = 'style="'.$ulview.' '.$ulcolor.'"';
- print "\n<ul id=\"".$key.$level."\" ".$ulstyle.">\n";
- print_tree($val['sub'], $level, $view);
- print "</li>\n</ul>\n";
- }
- else {
- print "<li>".$val['name']." (".$key.") - ".$level."</li>\n";
- }
- $level--;
- }
- if ($level == 0) { print "</ul>\n"; }
- }
- // -----------------------------------------------------------------
- print "<br />\n";
- print "<br />\n";
- print "<br />\n";
- $data_array = $outputArray;
- $startlevel = 0;
- $open_level = $go_d;
- print_tree($data_array, $startlevel, $open_level);
- print "<br />\n";
- print "<br />\n";
- print "<br />\n";
- // -----------------------------------------------------------------
- ?>
- <br>
- <br>
- <br>
- <br>
- <br>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement