View difference between Paste ID: 7Gk0CxTr and Af7YgjYH
SHOW: | | - or go back to the newest paste.
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-
$p = array(0 => array());
143+
144
145-
foreach($kat_data as $n) { 
145+
146
	
147-
  $pid = $n['parent_id'];
147+
148-
  $id = $n['id'];
148+
149
	$nodeRefs[$element['id']] = &$parent[$element['id']]['sub'];
150-
  if (!isset($p[$pid])) {
150+
151-
    $p[$pid] = array('child' => array());
151+
152
153
// ----------------------------------------------------------------- 
154-
  if (isset($p[$id])) { $child = &$p[$id]['child']; } 
154+
155-
    else { $child = array(); }
155+
156
## print "<br />---- DEBUG --- outputArray ---- \n";
157-
  $p[$id] = $n;
157+
158-
  $p[$id]['child'] = &$child;
158+
159-
  ## unset($p[$id]['parent_id']);
159+
160-
  unset($child);
160+
161
162-
  $p[$pid]['child'][] = &$p[$id];    
162+
163-
  
163+
164
165
function print_tree($array, $level=0, $view=1) { 
166-
$nodes = $p['0']['child'];
166+
167-
unset($p);
167+
168
	if ($level == 0) { print "<ul id=\"katroot\" style=\"background:#DEDEDE;\">\n";  } 
169
	
170
	
171
	foreach($array as $key => $val) { 
172
		
173-
## print "<br />---- DEBUG --- nodes ---- \n";
173+
174
		
175-
## print_r($nodes); 
175+
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>