Subversion-Projekte lars-tiefland.content-management

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
1 lars 1
<?
2
	//if ($_SERVER["SERVER_ADDR"] != "127.0.0.1") { exit; }
3
 
4
	// forget about any script timeouts
5
	set_time_limit(0);
6
 
7
	mysql_connect("localhost","content_managem","k-dp-u");
8
 
9
	function message($msg)
10
	{
11
	    //echo $msg."\n"
12
	}
13
 
14
	$Datenbanken=array
15
	(
16
		"zeltdepot_de",
17
		"reitsportdepot_de",
18
		"bootdepot_de",
19
		"pieper_golf_de",
20
		"wirbelsaeule_com",
21
		"pieper_shop_de",
22
		"blsb_bochum_de",
23
		"pq_media_de"
24
	);
25
 
26
	foreach($Datenbanken as $DB)
27
	{
28
		// Datenbank anwählen
29
		message("use $DB");
30
		mysql_query ("use $DB") or die (mysql_errno().": ".mysql_error());
31
 
32
		/* ######################################################################################################## */
33
		/* #	Tabellen füllen                                                                                   # */
34
		/* ######################################################################################################## */
35
 
36
		foreach(array("such_woerter","such_quelle_to_such_woerter",) as $tab)
37
		{
38
		message("delete from $tab");
39
			mysql_unbuffered_query("delete from $tab");
40
		}
41
		mysql_unbuffered_query("ALTER TABLE such_woerter AUTO_INCREMENT=0");
42
 
43
		$query_such_quelle="select * from such_quelle";
44
		$result_such_quelle = mysql_query ($query_such_quelle) or die (mysql_errno().": ".mysql_error()."<hr>".$query_such_quelle."<hr>");
45
		message($query_such_quelle);
46
 
47
		while($such_quelle=mysql_fetch_assoc($result_such_quelle))
48
		{
49
			$query_such_index="select ".implode(", ",getKeys($DB.".".$such_quelle[quelle_tab])).",".$such_quelle[quelle_feldname]." from ".$such_quelle[quelle_tab]." ".$such_quelle[quelle_bedingung];
50
			message($query_such_index);
51
			$result_such_index = mysql_query ($query_such_index) or die (mysql_errno().": ".mysql_error()."<hr>".$query_such_index."<hr>");
52
			while($such_index=mysql_fetch_assoc($result_such_index))
53
			{
54
				foreach(preg_split ('/\s/', $such_index[$such_quelle[quelle_feldname]]) as $raw_keyword)
55
				{
56
					//$keyword=trim(strip_tags($raw_keyword));
57
 
58
					$keyword
59
					=
60
					preg_replace
61
					(
62
						array
63
						(
64
							"/[^A-Za-zÄÖÜäöüß0-9,]/"
65
						),
66
						array
67
						(
68
							""
69
						),
70
						$raw_keyword,
71
						-1
72
					);
73
 
74
					if (strlen($keyword) > 1)
75
					{
76
						$query_such_woerter="insert into such_woerter (wort) values ('$keyword')";
77
						if($result_such_woerter = mysql_query ($query_such_woerter))
78
						{
79
							message(str_pad("insert $keyword",40).implode("-",array_keys(count_chars($keyword,1))));
80
							$such_wort_ID=mysql_insert_id();
81
						}
82
						else
83
						{
84
							$query_such_wort="select ID from such_woerter where wort = '".addslashes($keyword)."'";
85
							$result_such_wort = mysql_query ($query_such_wort) or die (mysql_errno().": ".mysql_error()."<hr>".$query_such_wort."<hr>");
86
							$such_wort=mysql_fetch_assoc($result_such_wort);
87
							$such_wort_ID=$such_wort[ID];
88
						}
89
						mysql_unbuffered_query("
90
						insert into
91
							such_quelle_to_such_woerter
92
						values
93
							(
94
								".$such_quelle[ID].",
95
								".$such_wort_ID.",
96
								".$such_index[ID].",
97
								'".$such_index[Language]."'
98
							)
99
						");
100
					}
101
				}
102
			}
103
		}
104
 
105
		/* ######################################################################################################## */
106
		/* #	ungültige Einträge entfernen 																		*/
107
		/* ######################################################################################################## */
108
 
109
		$query="
110
			select
111
			distinct
112
				such_quelle.quelle_tab,
113
				such_quelle_to_such_woerter.such_quelle_ID,
114
				such_quelle_to_such_woerter.quelle_ID,
115
				such_quelle_to_such_woerter.quelle_language
116
			from
117
				such_quelle,
118
				such_quelle_to_such_woerter
119
			where
120
				such_quelle.ID = such_quelle_to_such_woerter.such_quelle_ID
121
		";
122
		$result = mysql_query ($query) or die (mysql_errno().": ".mysql_error()."<hr>".$query."<hr>");
123
 
124
		while($zeile=mysql_fetch_assoc($result))
125
		{
126
			switch ($zeile[quelle_tab])
127
			{
128
				case "directory":
129
						$buffer=rootDir($zeile[quelle_ID],$zeile[quelle_language]);
130
						if (($buffer[Father] == -1) && ($buffer[status] == 0))
131
						{$zeile[Status]=0;}	else {$zeile[Status]=1;}
132
					break;
133
				case "artikel":
134
						$zeile[Status]=artikelStatus($zeile[quelle_ID],$zeile[quelle_language]);
135
					break;
136
				default:
137
					$zeile[Status]=0;
138
					break;
139
			}
140
 
141
			if ($zeile[Status] == 1)
142
			{
143
				$query=
144
				"delete from
145
						such_quelle_to_such_woerter
146
					where
147
						such_quelle_ID = $zeile[such_quelle_ID]
148
					and quelle_ID = $zeile[quelle_ID]
149
					and quelle_language = '$zeile[quelle_language]'";
150
				$zeile[query] = $query;
151
				mysql_query ($query) or die (mysql_errno().": ".mysql_error()."<hr>".$query."<hr>");
152
			}
153
		}
154
	}
155
 
156
		/* ######################################################################################################## */
157
		/* #	Serviveroutinen allgemein																			*/
158
		/* ######################################################################################################## */
159
 
160
		function getKeys($target)
161
		{
162
			$buffer=array();
163
			$query="show keys from $target";
164
			$result = mysql_query ($query) or die (mysql_errno().": ".mysql_error()."<hr>".$query."<hr>");
165
			while($zeile=mysql_fetch_assoc($result))
166
			{
167
				if ($zeile[Key_name] == "PRIMARY")
168
				{
169
					$buffer[]=$zeile[Column_name];
170
				}
171
			}
172
			return $buffer;
173
		}
174
 
175
 
176
		/* ######################################################################################################## */
177
		/* #	Serviveroutinen die für den check benötigt werden													*/
178
		/* ######################################################################################################## */
179
 
180
		function rootDir($ID,$language)
181
		{
182
			$query="select * from directory where ID=$ID and language='$language'";
183
			$result = mysql_query ($query) or die (mysql_errno().": ".mysql_error()."<hr>".$query."<hr>");
184
			$zeile=mysql_fetch_assoc($result);
185
 
186
			if
187
			(
188
				($zeile[Father] > 0)
189
				and
190
				($zeile[status] == 0)
191
			)
192
			{
193
				$zeile=rootDir($zeile[Father],$language);
194
			}
195
 
196
			return $zeile;
197
		}
198
 
199
		function artikelStatus($ID,$language)
200
		{
201
			$query="select * from artikel where ID=$ID and language='$language'";
202
			$result = mysql_query ($query) or die (mysql_errno().": ".mysql_error()."<hr>".$query."<hr>");
203
			$zeile=mysql_fetch_assoc($result);
204
 
205
			if
206
			(
207
				($zeile[status] == 0)
208
				&&
209
				($zeile[Father] > -2)
210
			)
211
			{// Artikel selbst ist OK, Pfad überprüfen
212
				$buffer=rootDir($zeile[Father],$zeile[Language]);
213
				if
214
				(
215
					($buffer[Father] == -1)
216
					&&
217
					($buffer[status] == 0)
218
				)
219
				{// Artikel OK, Pfad OK
220
					return 0;
221
				}
222
				else
223
				{// Artikel OK, Pfad nicht OK
224
					return 1;
225
				}
226
			}
227
			else
228
			{	// Artikel ist nicht OK
229
				return 1;
230
			}
231
		}
232
 
233
?>