Subversion-Projekte lars-tiefland.content-management

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
1 lars 1
<?php
2
 
3
    //$Id: sitemap.php 3361 2011-02-24 15:34:41Z tiefland $
4
 
5
    /**
6
     * @author Lars Tiefland <tiefland@weban.de>
7
     * @copyright 2008 Webagentur Niewerth
8
     * @package Mediaran.de
9
     * @version $Rev: 3361 $
10
     * @license propietary
11
     * @filesource
12
     *
13
     */
14
 
15
    /**
16
     *
17
     * @author Lars Tiefland <tiefland@weban.de>
18
     * @copyright 2008 Webagentur Niewerth
19
     * @package Mediaran.de
20
     */
21
 
22
    set_time_limit( 0 );
23
 
24
    function getItems( $dirId = null )
25
    {
26
        global $webs;
27
        $buffer = array();
28
        $query = "
29
			SELECT
30
				artikel.*
31
			FROM
32
				artikel
33
			WHERE
34
				artikel.Language= 'DE'
35
		";
36
        if ( !is_null($dirId) )
37
        {
38
            $query .= "
39
    			AND
40
	       			artikel.Father = $dirId
41
            ";
42
        }
43
        $query . "
44
			AND
45
				status = 0
46
			";
47
        $result = mysql_query( $query ) or die( mysql_errno() . ": " . mysql_error() .
48
            "<hr>" . $query );
49
        while ( $zeile = mysql_fetch_assoc($result) )
50
        {
51
            $zeile["code"] = md5( $_SESSION["INI"]["param_value"] . "_" . $zeile["kurzbezeichnung"] );
52
            $path = getPath( $zeile['Father'] );
53
            foreach ( $path as $elem )
54
            {
55
                $buffer[] = preg_replace( "/[\W]+/", "", $elem['ID'] . "_" . $elem['Name'] );
56
            }
57
 
58
            $zeile["itemLink"] = "http://www." . $webs["domain"] . "/index.php?item=" .
59
                $zeile["ID"] . "&param=" . $zeile["code"];
60
            $ret[] = $zeile;
61
        }
62
        return $ret;
63
    }
64
 
65
    function getPath( $root )
66
    {
67
        static $level = 0;
68
        $level++;
69
 
70
        if ( $root > 0 )
71
        {
72
            $query = "
73
				select
74
					*
75
				from
76
					directory
77
				where
78
					ID = $root
79
				and
80
					language= 'DE'
81
				";
82
            $result = mysql_query( $query ) or die( mysql_errno() . ": " . mysql_error() .
83
                "<hr>" . $query );
84
            $zeile = mysql_fetch_assoc( $result );
85
 
86
            // Bilder um Pfad und Tag erweitern
87
            foreach ( array("", "2") as $i )
88
            {
89
                if ( $zeile["bild_url" . $i] )
90
                {
91
                    $zeile["bild_url" . $i] = "<img src=" . $_SESSION['INI']['itemContainerKorrektur']["imagePath" .
92
                        $i] . $zeile["bild_url" . $i] . " >";
93
                }
94
                else
95
                {
96
                    $zeile["bild_url" . $i] = "";
97
                }
98
            }
99
 
100
            $path = getPath( $zeile['Father'] );
101
 
102
            $path[] = $zeile;
103
 
104
            $level--;
105
 
106
            if ( $level == 0 )
107
            {
108
                foreach ( $path as $p )
109
                {
110
                    if ( $p['status'] == 1 )
111
                    {
112
                        $path = array();
113
                    }
114
                }
115
            }
116
 
117
            return $path;
118
        }
119
        else
120
        {
121
            $level--;
122
            return array();
123
        }
124
    }
125
 
126
    function getSubDirs( $root )
127
    {
128
        $buffer = array();
129
        $query = "
130
				select
131
					directory.*,
132
					Herstellerkatalog.Logo1 as Logo
133
				from
134
					directory
135
				left join
136
					Herstellerkatalog
137
				on
138
					Herstellerkatalog.Bezeichnung = directory.Name
139
				where
140
					Father = $root
141
				and
142
					status=0
143
				and
144
					Artikelstamm=0
145
				and
146
					language= 'DE'
147
				order by
148
					Kennung
149
		";
150
        $result = mysql_query( $query ) or die( mysql_errno() . ": " . mysql_error() .
151
            "<hr>" . $query );
152
        while ( $zeile = mysql_fetch_assoc($result) )
153
        {
154
            if ( $zeile["Logo"] )
155
            {
156
                $zeile["Logo"] = "<img src='" . $_SESSION['INI']['Hersteller']['logoPath'] .
157
                    $zeile["Logo"] . "' alt='" . $zeile["Name"] . "'>";
158
            }
159
            else
160
            {
161
                $zeile["Logo"] = $zeile["Name"];
162
            }
163
 
164
            // Bilder um Pfad und Tag erweitern
165
            foreach ( array("", "2") as $i )
166
            {
167
                if ( $zeile["bild_url" . $i] )
168
                {
169
                    $zeile["bild_url" . $i] = "<img src=" . $_SESSION['INI']['itemContainerKorrektur']["imagePath" .
170
                        $i] . $zeile["bild_url" . $i] . ">";
171
                }
172
                else
173
                {
174
                    $zeile["bild_url" . $i] = "";
175
                }
176
            }
177
 
178
            $buffer[] = $zeile;
179
        }
180
        return $buffer;
181
    }
182
 
183
    function add_items( $start=null )
184
    {
185
        global $map;
186
        $items = getItems( $start );
187
        if ( is_array($items) )
188
        {
189
            foreach ( $items as $item )
190
            {
191
                $path = getPath( $item["Father"] );
192
                $map->add( $item["itemLink"], 1.0 - (count($path) - 1) * 0.1 );
193
            }
194
        }
195
    }
196
    function add( $start )
197
    {
198
        global $map, $webs;
199
        static $count = 0;
200
        $subdirs = getSubdirs( $start );
201
        foreach ( $subdirs as $subDir )
202
        {
203
            // Pfad ermitteln
204
            $buffer = array();
205
            $path = getPath( $subDir['ID'] );
206
            foreach ( $path as $elem )
207
            {
208
                $buffer[] = preg_replace( "/[\W]+/", "", $elem['ID'] . "_" . $elem['Name'] );
209
            }
210
 
211
            // dirLink
212
            $subDir['dirLink'] = "http://www." . $webs["domain"] . "/" . implode( "/", $buffer ) .
213
                "/";
214
            $count++;
215
            $map->add( $subDir["dirLink"], 1.0 - (count($path) - 1) * 0.1 );
216
            add( $subDir["ID"] );
217
        }
218
        return $count;
219
    }
220
    require_once  "File/Sitemap.php";
221
    $map = new File_Sitemap();
222
    session_start();
223
    //$_SESSION["INI"]=parse_ini_file("mediaran.de.ini.php", true);
224
    require_once  "Online-Shop/connect2.php";
225
    $_SESSION["INI"]["param_value"] = file_get_contents( "control/" . $webs["domain"] .
226
        "_key.txt" );
227
    foreach ( array(783, 784, 447) as $start )
228
    {
229
        $buffer = array();
230
        foreach ( getPath($start) as $elem )
231
        {
232
            $buffer[] = preg_replace( "/[\W]+/", "", $elem['ID'] . "_" . $elem['Name'] );
233
        }
234
 
235
        // dirLink
236
        $link = "http://www." . $webs["domain"] . "/" . implode( "/", $buffer ) .
237
            "/";
238
        $map->Add( $link, 1.0 );
239
        $count = add( $start );
240
        $count++;
241
    }
242
    $map->Add( "http://www." . $webs["domain"] . "/gaestebuch/gaestebuch.htm",
243
        1.0 );
244
    $map->Add( "http://www." . $webs["domain"] . "/html/servicecenter.htm", 1.0 );
245
    $res = $res = $map->validate();
246
    if ( $res )
247
    {
248
        $map->save( "sitemap.xml.gz", true, true );
249
        $map->notify( "http://www." . $webs["domain"] . "/sitemap.xml.gz" );
250
    }
251
    else
252
    {
253
        echo "Ein Fehler ist beim Erstellen der Sitemap aufgreten!";
254
    }
255
?>