Subversion-Projekte lars-tiefland.laravel_shop

Revision

Revision 180 | Revision 182 | Zur aktuellen Revision | Ganze Datei anzeigen | Leerzeichen ignorieren | Details | Blame | Letzte Änderung | Log anzeigen | RSS feed

Revision 180 Revision 181
Zeile 4... Zeile 4...
4
 
4
 
5
use Illuminate\Database\Eloquent\Factories\HasFactory;
5
use Illuminate\Database\Eloquent\Factories\HasFactory;
6
use Illuminate\Database\Eloquent\Model;
6
use Illuminate\Database\Eloquent\Model;
7
use Spatie\Sluggable\HasSlug;
7
use Spatie\Sluggable\HasSlug;
-
 
8
use Spatie\Sluggable\SlugOptions;
8
use Spatie\Sluggable\SlugOptions;
9
 
9
class Directory extends Model
10
class Directory extends Model
10
{
11
{
Zeile 11... Zeile 12...
11
    use HasFactory, HasSlug;
12
    use HasFactory, HasSlug;
Zeile 18... Zeile 19...
18
        return SlugOptions::create()
19
        return SlugOptions::create()
19
            ->generateSlugsFrom('name')
20
            ->generateSlugsFrom('name')
20
            ->saveSlugsTo('slug')
21
            ->saveSlugsTo('slug')
21
            ->usingLanguage('de')
22
            ->usingLanguage('de')
22
            ->doNotGenerateSlugsOnUpdate()
23
            ->doNotGenerateSlugsOnUpdate()
23
            ->skipGenerateWhen(fn () => $this->id < 0);
24
            ->skipGenerateWhen(fn() => $this->id < 0);
24
    }
25
    }
-
 
26
 
25
    public function navigation( $root, $override = false, $rootInfo = false, $cnt = 0 )
27
    public function navigation($root, $override = false, $rootInfo = false, $cnt = 0)
26
    {
28
    {
27
        if ( !isset( $GLOBALS["count"][ __function__ . "_" . $root ] ) )
29
        if (!isset($GLOBALS["count"][__function__ . "_" . $root])) {
28
        {
-
 
29
            $GLOBALS["count"][ __function__ . "_" . $root ] = 0;
30
            $GLOBALS["count"][__function__ . "_" . $root] = 0;
30
            $GLOBALS["zeit"][ __function__ . "_" . $root ] = 0;
31
            $GLOBALS["zeit"][__function__ . "_" . $root] = 0;
31
        }
32
        }
32
        $GLOBALS["count"][ __function__ . "_" . $root ]++;
33
        $GLOBALS["count"][__function__ . "_" . $root]++;
33
        $time = microtime( true );
34
        $time = microtime(true);
34
        $showArtikelstamm = false;
35
        $showArtikelstamm = false;
Zeile 35... Zeile 36...
35
 
36
 
36
        if ( isset( $GLOBALS["INI"]["Navigation"]["showArtikelstamm"] ) )
-
 
37
        {
37
        if (isset($GLOBALS["INI"]["Navigation"]["showArtikelstamm"])) {
38
            $showArtikelstamm = true;
38
            $showArtikelstamm = true;
Zeile 39... Zeile 39...
39
        }
39
        }
Zeile 40... Zeile 40...
40
 
40
 
41
        $treebuffer = $this->where("directory_id","=",$root)->get();
-
 
42
 
41
        $treebuffer = $this->where("directory_id", "=", $root)->get();
43
 
42
 
Zeile 44... Zeile 43...
44
        if ( is_array( $treebuffer ) && is_array( $linkDirs ) )
43
 
45
        {
44
        if (is_array($treebuffer) && is_array($linkDirs)) {
46
            $treebuffer = array_merge( $treebuffer, $linkDirs );
-
 
47
        }
45
            $treebuffer = array_merge($treebuffer, $linkDirs);
48
 
46
        }
Zeile 49... Zeile 47...
49
        $treebufferCount = 0;
47
 
50
        if ( is_countable( $treebuffer ) )
48
        $treebufferCount = 0;
51
        {
-
 
52
            $treebufferCount = count( $treebuffer ) - 1;
49
        if (is_countable($treebuffer)) {
53
        }
-
 
54
 
50
            $treebufferCount = count($treebuffer) - 1;
55
        $i = 0;
51
        }
Zeile 56... Zeile 52...
56
        if ( is_array( $treebuffer ) )
52
 
57
        {
53
        $i = 0;
58
            foreach ( $treebuffer as $counter => $zeile )
54
        if (is_array($treebuffer)) {
59
            {
-
 
60
                $k = $i % 2;
55
            foreach ($treebuffer as $counter => $zeile) {
61
                $i++;
56
                $k = $i % 2;
62
 
57
                $i++;
63
                /* ######################################################################## */ /* Link entsprechend der Alias-Definition generieren.                        */
-
 
64
                /* ######################################################################## */
58
 
65
                if ( $GLOBALS["INI"]['alias'] == 0 )
-
 
Zeile 66... Zeile 59...
66
                {
59
                /* ######################################################################## */ /* Link entsprechend der Alias-Definition generieren.                        */
67
                    // dirLink
60
                /* ######################################################################## */
Zeile 68... Zeile 61...
68
                    //$zeile['dirLink']=$GLOBALS["INI"]["absoluteURL"]."/?navigation=".$zeile['ID'];
61
                if ($GLOBALS["INI"]['alias'] == 0) {
Zeile 69... Zeile 62...
69
                    $zeile['dirLink'] = "/?navigation=" . $zeile['ID'];
62
                    // dirLink
70
                }
-
 
71
                else
63
                    //$zeile['dirLink']=$GLOBALS["INI"]["absoluteURL"]."/?navigation=".$zeile['ID'];
72
                {
64
                    $zeile['dirLink'] = "/?navigation=" . $zeile['ID'];
Zeile 73... Zeile 65...
73
 
65
                } else {
74
                    // Pfad ermitteln
66
 
Zeile 96... Zeile 88...
96
                            "Oe",
88
                            "Oe",
97
                            "oe",
89
                            "oe",
98
                            "Üe",
90
                            "Üe",
99
                            "ue",
91
                            "ue",
100
                        );
92
                        );
101
                        $name = str_replace( $umlaute, $umlauteErsetzen, $name );
93
                        $name = str_replace($umlaute, $umlauteErsetzen, $name);
Zeile 102... Zeile 94...
102
 
94
 
103
                        //$buffer[]=preg_replace("/[\W]+/", "", $elem['ID']."_".$elem['Name']);
95
                        //$buffer[]=preg_replace("/[\W]+/", "", $elem['ID']."_".$elem['Name']);
Zeile 104... Zeile 96...
104
                        $buffer[] = $elem['ID'] . "-" . str2url( $name );
96
                        $buffer[] = $elem['ID'] . "-" . str2url($name);
Zeile 105... Zeile 97...
105
 
97
 
106
                    }
98
                    }
107
 
99
 
Zeile 108... Zeile 100...
108
                    // dirLink
100
                    // dirLink
Zeile 109... Zeile 101...
109
                    //$zeile['dirLink']=$GLOBALS["INI"]["absoluteURL"]."/".implode("/",$buffer)."/";
101
                    //$zeile['dirLink']=$GLOBALS["INI"]["absoluteURL"]."/".implode("/",$buffer)."/";
110
                    $zeile['dirLink'] = "/" . implode( "/", $buffer ) . "/";
102
                    $zeile['dirLink'] = "/" . implode("/", $buffer) . "/";
111
 
103
 
Zeile 112... Zeile 104...
112
                }
104
                }
113
 
105
 
114
                /* ######################################################################## */ /* Ausgabe der Unterverzeichnisse                                            */ /* ######################################################################## */
106
                /* ######################################################################## */ /* Ausgabe der Unterverzeichnisse                                            */ /* ######################################################################## */
115
                // Container-Kopf
107
                // Container-Kopf
116
                $_SESSION['navigation']['nav-zebra'] = $k;
108
                $_SESSION['navigation']['nav-zebra'] = $k;
117
 
109
 
Zeile 118... Zeile 110...
118
                $subdirs = $this->where("direcotry_id","=",$zeile["ID"])->get();
110
                $subdirs = $this->where("direcotry_id", "=", $zeile["ID"])->get();
Zeile 119... Zeile 111...
119
                $nav["sub"][] = array(
111
                $nav["sub"][] = array(
120
                    "id"   => $zeile["ID"],
112
                    "id" => $zeile["ID"],
121
                    "link" => $zeile['dirLink'],
113
                    "link" => $zeile['dirLink'],
Zeile 122... Zeile 114...
122
                    "name" => $zeile["Name"],
114
                    "name" => $zeile["Name"],
123
                    "sub2" => $subdirs,
-
 
124
 
115
                    "sub2" => $subdirs,
125
                );
116
 
Zeile 126... Zeile 117...
126
 
117
                );
127
            }
-
 
128
        }
118
 
129
        $anzahl_spalten = 3;
119
            }
130
 
120
        }
Zeile 131... Zeile 121...
131
        if ( is_numeric( $GLOBALS["INI"]["navigation"]["anzahl_spalten"] ) )
121
        $anzahl_spalten = 3;
132
        {
122
 
133
            $anzahl_spalten = $GLOBALS["INI"]["navigation"]["anzahl_spalten"];
123
        if (is_numeric($GLOBALS["INI"]["navigation"]["anzahl_spalten"])) {
134
        }
124
            $anzahl_spalten = $GLOBALS["INI"]["navigation"]["anzahl_spalten"];
135
 
125
        }
Zeile 136... Zeile 126...
136
        if ( is_array( $nav["sub"] ) )
126
 
137
        {
127
        if (is_array($nav["sub"])) {
138
            $nav["sub"]['elemsPerRow'] = floor( count( $nav["sub"] ) / $anzahl_spalten );
128
            $nav["sub"]['elemsPerRow'] = floor(count($nav["sub"]) / $anzahl_spalten);
139
            $nav["sub"]['elemsPerRowRest'] = count( $treebuffer ) - ( $nav["sub"]['elemsPerRow'] * $anzahl_spalten );
129
            $nav["sub"]['elemsPerRowRest'] = count($treebuffer) - ($nav["sub"]['elemsPerRow'] * $anzahl_spalten);
Zeile 140... Zeile 130...
140
        }
130
        }
141
 
131
 
142
        $time2 = microtime( true );
132
        $time2 = microtime(true);
143
        $diff = $time2 - $time;
133
        $diff = $time2 - $time;
144
        $GLOBALS["zeit"][ __function__ . "_" . $root ] += $diff;
-
 
145
        return $nav;
134
        $GLOBALS["zeit"][__function__ . "_" . $root] += $diff;
146
    }
135
        return $nav;
147
 
136
    }
148
    /**
137
 
149
     * Wenn in der Config der Wert 'showNavigation' in der Kategorie 'Navigation' gleich "1" ist,
138
    /**
150
     * dann zeige die Navigation an.
139
     * Wenn in der Config der Wert 'showNavigation' in der Kategorie 'Navigation' gleich "1" ist,
151
     */
-
 
152
 
140
     * dann zeige die Navigation an.
153
    public function nav_menu( $father = -1 )
141
     */
154
    {
-
 
155
        $navigation = null;
142
 
156
        if ( !isset( $GLOBALS["count"][ __function__ . "_" . $father ] ) )
143
    public function nav_menu($father = -1)
157
        {
144
    {
158
            $GLOBALS["count"][ __function__ . "_" . $father ] = 0;
-
 
159
            $GLOBALS["zeit"][ __function__ . "_" . $father ] = 0;
145
        $navigation = null;
160
        }
146
        if (!isset($GLOBALS["count"][__function__ . "_" . $father])) {
Zeile 161... Zeile 147...
161
        $GLOBALS["count"][ __function__ . "_" . $father ]++;
147
            $GLOBALS["count"][__function__ . "_" . $father] = 0;
162
        $time = microtime( true );
-
 
163
        if ( $GLOBALS['INI']['navigation']['cache_type'] == "2" )
148
            $GLOBALS["zeit"][__function__ . "_" . $father] = 0;
164
        {
149
        }
165
            $fName = $_SERVER["DOCUMENT_ROOT"] . "/menu_serialized.txt";
150
        $GLOBALS["count"][__function__ . "_" . $father]++;
166
            if ( isset( $GLOBALS["INI"]["treeRootMainNav"] ) && $father == $GLOBALS["INI"]["treeRootMainNav"] )
-
 
167
            {
151
        $time = microtime(true);
168
                $fName = $_SERVER["DOCUMENT_ROOT"] . "/mainnav_serialized.txt";
-
 
169
            }
152
        if ($GLOBALS['INI']['navigation']['cache_type'] == "2") {
Zeile 170... Zeile 153...
170
            if ( isset( $GLOBALS["INI"]["treeRooSecondNav"] ) && $father == $GLOBALS["INI"]["treeRootSecondNav"] )
153
            $fName = $_SERVER["DOCUMENT_ROOT"] . "/menu_serialized.txt";
171
            {
-
 
172
                $fName = $_SERVER["DOCUMENT_ROOT"] . "/secondnav_serialized.txt";
154
            if (isset($GLOBALS["INI"]["treeRootMainNav"]) && $father == $GLOBALS["INI"]["treeRootMainNav"]) {
173
            }
155
                $fName = $_SERVER["DOCUMENT_ROOT"] . "/mainnav_serialized.txt";
174
 
156
            }
175
            if ( file_exists( $fName ) )
157
            if (isset($GLOBALS["INI"]["treeRooSecondNav"]) && $father == $GLOBALS["INI"]["treeRootSecondNav"]) {
176
            {
158
                $fName = $_SERVER["DOCUMENT_ROOT"] . "/secondnav_serialized.txt";
177
                $content = file_get_contents( $fName );
159
            }
178
                $navigation = unserialize( $content );
160
 
179
            }
161
            if (file_exists($fName)) {
180
        }
162
                $content = file_get_contents($fName);
181
        elseif ( $GLOBALS["INI"]["navigation"]["cache_type"] == "1" )
163
                $navigation = unserialize($content);
Zeile 182... Zeile 164...
182
        {
164
            }
183
            $fName = $_SERVER["DOCUMENT_ROOT"] . "/menu.xml";
-
 
184
 
165
        } elseif ($GLOBALS["INI"]["navigation"]["cache_type"] == "1") {
185
            if ( file_exists( $fName ) )
166
            $fName = $_SERVER["DOCUMENT_ROOT"] . "/menu.xml";
Zeile 186... Zeile 167...
186
            {
167
 
187
                $confArr = array(
168
            if (file_exists($fName)) {
188
                    "root"     => "menu",
169
                $confArr = array(
189
                    "encoding" => "UTF-8",
170
                    "root" => "menu",
190
                );
171
                    "encoding" => "UTF-8",
Zeile 191... Zeile 172...
191
                $nav = new Config();
172
                );
192
                $nav = $nav->parseConfig( $fName, "XML", $confArr );
173
                $nav = new Config();
193
                $nav = $nav->toArray();
174
                $nav = $nav->parseConfig($fName, "XML", $confArr);
194
                $navigation = $nav["root"];
-
 
195
            }
175
                $nav = $nav->toArray();
196
        }
176
                $navigation = $nav["root"];
197
 
177
            }
198
        if ( !$navigation )
178
        }
199
        {
179
 
200
            $navigation = $this->getMenuFromDB( $father );
180
        if (!$navigation) {
201
        }
181
            $navigation = $this->getMenuFromDB($father);
202
 
182
        }
203
        $time2 = microtime( true );
183
 
204
        $diff = $time2 - $time;
-
 
205
        $GLOBALS["zeit"][ __function__ . "_" . $father ] += $diff;
184
        $time2 = microtime(true);
206
        return $navigation;
185
        $diff = $time2 - $time;
Zeile 207... Zeile 186...
207
    }
186
        $GLOBALS["zeit"][__function__ . "_" . $father] += $diff;
208
 
187
        return $navigation;
209
    private function getMenuFromDB( $father )
-
 
210
    {
188
    }
211
        if ( !isset( $GLOBALS["count"][ __function__ . "_" . $father ] ) )
189
 
212
        {
190
    private function getMenuFromDB($father)
213
            $GLOBALS["count"][ __function__ . "_" . $father ] = 0;
-
 
214
            $GLOBALS["zeit"][ __function__ . "_" . $father ] = 0;
191
    {
215
        }
192
        if (!isset($GLOBALS["count"][__function__ . "_" . $father])) {
Zeile 216... Zeile 193...
216
        $GLOBALS["count"][ __function__ . "_" . $father ]++;
193
            $GLOBALS["count"][__function__ . "_" . $father] = 0;
Zeile 312... Zeile 289...
312
                        $navigation[ $cnt ]["sub"] = $nav["sub"];
289
                        $navigation[ $cnt ]["sub"] = $nav["sub"];
313
                    }
290
                    }
314
                    $cnt++;
291
                    $cnt++;
315
                }
292
                }
316
	    }*/
293
	    }*/
317
	}
294
        }
318
	$dirs = self::with('directory')->whereIn("status",[0,2,99])->where("directory_id","=",$father)->get();
295
        $dirs = self::with('directory')->whereIn("status", [0, 2, 99])->where("directory_id", "=", $father)->get();
-
 
296
        foreach ($dirs as $dir) {
-
 
297
            var_dump($dir);
-
 
298
        }
319
        $time2 = microtime( true );
299
        $time2 = microtime(true);
320
        $diff = $time2 - $time;
300
        $diff = $time2 - $time;
321
        $GLOBALS["zeit"][ __function__ . "_" . $father ] += $diff;
301
        $GLOBALS["zeit"][__function__ . "_" . $father] += $diff;
322
        return $navigation;
302
        return $navigation;
323
    }
303
    }
-
 
304
 
324
    public function directory()
305
    public function directory()
325
    {
306
    {
326
	    return $this->belongsTo(Directory::class);
307
        return $this->belongsTo(Directory::class);
327
    }
308
    }
328
}
309
}