Advertisement
Guest User

Untitled

a guest
Aug 31st, 2012
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2. // -----------------------------------------------------
  3.  
  4. header("Content-Type: text/html; charset=utf-8");
  5.  
  6. // -----------------------------------------------------
  7. ?>
  8. <html>
  9. <head>
  10. <title>Kategorie Baum - Google Taxonomy</title>
  11. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  12.  
  13.  
  14. <script type="text/javascript">
  15.  
  16. function show(id) {
  17.     if (document.getElementById(id).style.display == "none") {
  18.         document.getElementById(id).style.display = "block";
  19.     } else {
  20.         document.getElementById(id).style.display = "none";
  21.     }
  22. }
  23.  
  24. </script>
  25.  
  26.  
  27. </head>
  28.  
  29. <body bgcolor="#FFFFFF" text="#000000">
  30.  
  31. <h1>Kategorie Baum - Google Taxonomy</h1>
  32.  
  33. <br>
  34. <br>
  35. <br>
  36.  
  37. <?php
  38. // -----------------------------------------------------------------
  39.  
  40. ### http://www.google.com/basepages/producttype/taxonomy.de-DE.txt
  41.  
  42. $filename = 'taxonomy.de-DE.txt';
  43.  
  44. $fdata1 = file($filename, FILE_IGNORE_NEW_LINES);
  45.  
  46. // -----------------------------------------------------
  47.  
  48. $kat_temp = array();   // ---  Hilfs-Array ID->Name
  49. $kat_data = array();   // ---  Ergebnis-Array Daten
  50.  
  51. $max_deep = 0;  // --- max. Tiefe der Kategorie-Ebenen
  52.  
  53. // -----------------------------------------------------------------
  54.  
  55. foreach($fdata1 as $key => $line) {
  56.  
  57.   if ($key > 0) {
  58.  
  59. // ------ Kategorie Ebene ($level) ermitteln -----
  60.     $nx = substr_count($line, '>');
  61.     if ($nx > $max_deep) { $max_deep = $nx; }
  62.     ## $level = ($nx+1);
  63.     $level = $nx;
  64.  
  65. // ------ Element in Array $kat_temp erstellen -----
  66.     $subarray = explode('>', $line);
  67.     $kat_name = trim($subarray[$nx]);
  68.     $kat_temp[$key] = $kat_name;
  69.  
  70. // ------ parent_id aus $kat_temp ermitteln -----
  71.     if ($nx > 0) {
  72.       $ny = ($nx-1);
  73.       $kat_pren = trim($subarray[$ny]);
  74.       $kat_prek = array_search($kat_pren, $kat_temp);
  75.     }
  76.     else {
  77.       $kat_pren  = 'root';
  78.       $kat_prek = '0';
  79.     }
  80.  
  81. // ------ Neues Array-Element erstellen -----
  82.     $kat_data[$key] = array(
  83.       'id' => $key,
  84.       'parent_id' => $kat_prek,
  85.       'level' => $level,
  86.       'name' => $kat_name
  87.     );
  88.  
  89.     unset($subarray);
  90.   }
  91.  
  92. }
  93.  
  94. unset($kat_temp);
  95.  
  96. // -----------------------------------------------------------------
  97.  
  98.  
  99. echo "<br />\n";
  100. echo "<br />Max Deep: ".$max_deep."\n";
  101. echo "<br />\n";
  102.  
  103. // -----------------------------------------------------------------
  104.  
  105. if (!empty($_REQUEST['d'])) {
  106. $go_d = trim($_REQUEST['d']);
  107. }
  108. else {
  109. $go_d = '1';
  110. }
  111.  
  112. // -----------------------------------------------------------------
  113.  
  114.  
  115. $runfile = $_SERVER['PHP_SELF'];
  116.  
  117. for ($d=1; $d<=$max_deep; $d++) {
  118.  
  119. if ($d == $go_d) {
  120. echo "<br />... <strong>zeige ".$d." Ebene(n)</strong>\n";
  121. }
  122. else {
  123. echo "<br />... <a href=\"".$runfile."?d=".$d."\">zeige ".$d." Ebene(n)</a>\n";
  124. }
  125.  
  126. }
  127.  
  128.  
  129. // -----------------------------------------------------------------
  130.  
  131.  
  132. ## print "<br />---- DEBUG --- kat_data ---- \n";
  133. ## print "<pre style=\"margin:8px; padding:6px; background:#DEDEDE;\">\n";
  134. ## print_r($kat_data);
  135. ## print "</pre>\n";
  136. ## print "<br />\n";
  137.  
  138.  
  139. // -----------------------------------------------------------------
  140.  
  141.  
  142. $outputArray = array();
  143. $nodeRefs = array(0 => &$outputArray);
  144.  
  145. foreach ($kat_data as $element) {
  146.    
  147.     $parent = &$nodeRefs[$element['parent_id']];
  148.     $parent[$element['id']] = array( 'name' => $element['name'], 'parent_id' => $element['parent_id'], 'sub' => array() );
  149.     $nodeRefs[$element['id']] = &$parent[$element['id']]['sub'];
  150.  
  151. }
  152.  
  153. // -----------------------------------------------------------------
  154.  
  155.  
  156. ## print "<br />---- DEBUG --- outputArray ---- \n";
  157. ## print "<pre style=\"margin:8px; padding:6px; background:#DEDEDE;\">\n";
  158. ## print_r($outputArray);
  159. ## print "</pre>\n";
  160. ## print "<br />\n";
  161.  
  162.  
  163. // -----------------------------------------------------------------
  164.  
  165. function print_tree($array, $level=0, $view=1) {
  166. global $go_shopid;
  167.    
  168.     if ($level == 0) { print "<ul id=\"katroot\" style=\"background:#DEDEDE;\">\n";  }
  169.    
  170.    
  171.     foreach($array as $key => $val) {
  172.        
  173.         $level++;
  174.        
  175.         if ( isset($val['sub']) && !empty($val['sub']) ) {
  176.            
  177.             $preid = $val['parent_id'];
  178.            
  179.             print "<li>".$val['name']." (<a href=\"javascript:show('".$key.$level."')\">".$preid." / ".$key."</a>) - ".$level."";
  180.            
  181.            
  182.             if ($level == 1) { $ulcolor = 'background:#FFFFCC;'; }
  183.                 elseif ($level == 2) { $ulcolor = 'background:#CCFFFF;'; }
  184.                 elseif ($level == 3) { $ulcolor = 'background:#FFFFFF;'; }
  185.                 elseif ($level == 4) { $ulcolor = 'background:#FFCCFF;'; }
  186.                 elseif ($level == 5) { $ulcolor = 'background:#EEEEFF;'; }
  187.                 else { $ulcolor = 'background:#EAEAEA;'; }
  188.            
  189.             if ($level >= $view) { $ulview = 'display:none;'; }
  190.                 else { $ulview = 'display:block;'; }
  191.            
  192.             $ulstyle = 'style="'.$ulview.' '.$ulcolor.'"';
  193.            
  194.             print "\n<ul id=\"".$key.$level."\" ".$ulstyle.">\n";
  195.            
  196.            
  197.             print_tree($val['sub'], $level, $view);
  198.            
  199.             print "</li>\n</ul>\n";
  200.            
  201.         }
  202.         else {
  203.        
  204.             print "<li>".$val['name']." (".$key.") - ".$level."</li>\n";
  205.        
  206.         }
  207.        
  208.        
  209.         $level--;
  210.        
  211.     }
  212.    
  213.     if ($level == 0) { print "</ul>\n"; }
  214.    
  215.  
  216. }
  217.  
  218. // -----------------------------------------------------------------
  219.  
  220.  
  221. print "<br />\n";
  222. print "<br />\n";
  223. print "<br />\n";
  224.  
  225.  
  226. $data_array = $outputArray;
  227. $startlevel = 0;
  228. $open_level = $go_d;
  229.  
  230. print_tree($data_array, $startlevel, $open_level);
  231.  
  232. print "<br />\n";
  233. print "<br />\n";
  234. print "<br />\n";
  235.  
  236.  
  237. // -----------------------------------------------------------------
  238. ?>
  239.  
  240.  
  241. <br>
  242. <br>
  243. <br>
  244. <br>
  245. <br>
  246.  
  247. </body>
  248. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement