Subversion-Projekte lars-tiefland.laravel_shop

Revision

Revision 1702 | Revision 1704 | Zur aktuellen Revision | Details | Vergleich mit vorheriger | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
2 lars 1
<?php
2
 
730 lars 3
    use App\Http\Controllers\BasketController;
4
    use App\Http\Controllers\BuyController;
1692 lars 5
    use App\Http\Controllers\DirectoryController;
1669 lars 6
    use App\Http\Controllers\PriceAgencyController;
875 lars 7
    use App\Http\Controllers\ShippingController;
765 lars 8
    use App\Http\Controllers\UserController;
375 lars 9
    use Illuminate\Support\Facades\DB;
673 lars 10
    use Illuminate\Support\Facades\Schema;
333 lars 11
    use App\Models\Action;
12
    use App\Models\Item;
13
    use Illuminate\Support\Facades\Route;
2 lars 14
 
333 lars 15
    /*
16
    |--------------------------------------------------------------------------
17
    | Web Routes
18
    |--------------------------------------------------------------------------
19
    |
20
    | Here is where you can register web routes for your application. These
21
    | routes are loaded by the RouteServiceProvider within a group which
22
    | contains the "web" middleware group. Now create something great!
23
    |
24
     */
2 lars 25
 
848 lars 26
    $GLOBALS["INI"] = getConfig();
850 lars 27
    $GLOBALS["zahlsysteme"] = [
832 lars 28
        "kreditkarte",
29
        "paypal",
30
        "sofortueberweisung",
31
        "frei",
32
        "finanzierung",
33
        "billsafe",
34
        "billsafe_hire",
35
        "amazon",
36
        "PayPalExpress",
37
        "Ratenzahlung",
38
        "PayPalPlus",
39
        "paymill",
40
        "klarna",
41
        "paydirekt",
42
        "payever",
43
        "billie",
44
        "easycredit",
45
        "crefopay",
46
        "crefopayKK",
47
        "PayPalCheckout",
850 lars 48
    ];
832 lars 49
 
624 lars 50
    if ( php_sapi_name() == "cli" )
582 lars 51
    {
52
        return;
53
    }
704 lars 54
    session_start();
847 lars 55
    if ( isset( $_GET["killSession"] ) )
56
    {
57
        unset( $_SESSION );
58
        $_SESSION["SHOP"]["BASKET"] = new BasketController();
59
    }
710 lars 60
    $GLOBALS["steuern"] = array();
61
    //default LandID für Deutschland
62
    $landID = 47;
63
    //Wenn das Flag gesetzt ist, dann nimm diesen wert, damit auch "ausländische Shops" den richtigen MwSt angezeigt bekommen
64
    if ( isset( $GLOBALS["INI"]["steuern"]["default_countryID"] ) )
65
    {
66
        $landID = $GLOBALS["INI"]["steuern"]["default_countryID"];
67
    }
68
 
69
    $countryIDs = ( isset( $GLOBALS['INI']['steuern']['use_countries_tax'] ) ) ? $GLOBALS['INI']['steuern']['use_countries_tax'] : $landID;
70
 
723 lars 71
    $sql = "SELECT
72
            *
73
        FROM
1619 lars 74
            content_management.countries_tax
723 lars 75
        WHERE
76
            country_id IN (" . $countryIDs . ")
77
    ";
78
    $rows = DB::connection( "cms" )->select( $sql );
710 lars 79
    foreach ( $rows as $r )
80
    {
711 lars 81
        $GLOBALS["steuern"][$r->country_id][$r->taxes_id] = $r->tax_percent;
82
        $GLOBALS["steuern"][$r->country_id][null] = $GLOBALS["steuern"][$r->country_id][0];
710 lars 83
    }
697 lars 84
    if ( !isset( $_SESSION["SHOP"]["BASKET"] ) )
85
    {
730 lars 86
        $_SESSION["SHOP"]["BASKET"] = new BasketController();
697 lars 87
    }
700 lars 88
    elseif ( is_array( $_SESSION["SHOP"]["BASKET"] ) )
697 lars 89
    {
90
        $items = $_SESSION["SHOP"]["BASKET"];
91
        unset( $_SESSION["SHOP"]["BASKET"] );
730 lars 92
        $_SESSION["SHOP"]["BASKET"] = new BasketController();
699 lars 93
        $_SESSION["SHOP"]["BASKET"]->items = $items;
697 lars 94
    }
340 lars 95
    $sql = "
96
        SELECT
97
            *
98
        FROM
99
            i18n_de
100
    ";
405 lars 101
    if ( Schema::hasTable( 'i18n_de' ) )
102
    {
103
        $langstrings = DB::select( $sql );
104
    }
105
    else
106
    {
107
        $langstrings = DB::connection( "old" )->select( $sql );
108
    }
340 lars 109
    foreach ( $langstrings as $langstring )
110
    {
355 lars 111
        $GLOBALS["langstrings"][$langstring->page_id][$langstring->id] = $langstring->string;
340 lars 112
    }
355 lars 113
 
1586 lars 114
    if ( !isset( $_SESSION["navigation"]["position"] ) )
115
    {
116
        $_SESSION["navigation"]["position"] = null;
117
    }
1693 lars 118
    $nav = new DirectoryController();
848 lars 119
    $menu = $nav->nav_menu();
1582 lars 120
    $shopPosition = $nav->shopPosition();
368 lars 121
    $sc = parseCMSPage( $GLOBALS["INI"]["typo3"]["url"] . "/typo3/" );
852 lars 122
    $data = [
123
        "nav"               => $menu,
124
        "serviceCenterMenu" => $sc["menu"],
1582 lars 125
        "shopPosition"      => $shopPosition,
852 lars 126
        "langstrings"       => $GLOBALS["langstrings"],
127
        "ini"               => $GLOBALS["INI"],
128
    ];
129
    \View::share( $data );
848 lars 130
 
333 lars 131
    /* Mobile Weiche */
355 lars 132
    if ( isset( $_SERVER["HTTP_USER_AGENT"] ) )
333 lars 133
    {
375 lars 134
        if ( !isset( $_SESSION['isMobile'] ) || $_SESSION['isMobile'] === false || !isset( $GLOBALS['isMobile'] ) || $GLOBALS['isMobile'] === false )
333 lars 135
        {
88 lars 136
 
355 lars 137
            $_SESSION['isMobile'] = false;
138
            $GLOBALS['isMobile'] = false;
88 lars 139
 
853 lars 140
            $pattern = "/(alcatel|amoi|android|avantgo|blackberry|benq|cell|cricket|docomo|elaine|htc|iemobile|iphone|iPad|ipaq|ipod|j2me|java|midp|mini|mmp|mobi|motorola|nec-|nokia|palm|panasonic|philips|phone|playbook|sagem|sharp|sie-|silk|smartphone|sony|symbian|t-mobile|telus|up\.browser|up\.link|vodafone|wap|webos|wireless|xda|xoom|zte)/i";
141
            if ( preg_match( $pattern, $_SERVER["HTTP_USER_AGENT"] ) )
333 lars 142
            {
88 lars 143
 
355 lars 144
                $_SESSION['isMobile'] = true;
145
                $GLOBALS['isMobile'] = true;
333 lars 146
            }
147
 
88 lars 148
        }
149
    }
1674 lars 150
    Route::get( "/preisagentur/{filename}", [ PriceAgencyController::class, "download" ] );
405 lars 151
    Route::get( "/addItemToBasket", function ()
385 lars 152
    {
697 lars 153
        $_SESSION["SHOP"]["BASKET"]->addItem();
848 lars 154
        return view( 'header_wk' );
405 lars 155
    } );
745 lars 156
    Route::get( "/editItem/{id}/{menge}", function ()
157
    {
158
        $_SESSION["SHOP"]["BASKET"]->editItem();
765 lars 159
        return redirect( "/basket.html" );
745 lars 160
    } )->where( [ "id" => "[0-9a-f]{40}", "menge" => "[0-9]+" ] );
161
    Route::get( "/delItem/{id}", function ()
162
    {
163
        $_SESSION["SHOP"]["BASKET"]->delItem();
765 lars 164
        return redirect( "/basket.html" );
745 lars 165
    } )->where( "id", "[0-9a-f]{40}" );
766 lars 166
    Route::post( "/login", [ UserController::class, "login" ] );
809 lars 167
    Route::post( "/logout", [ UserController::class, "logout" ] );
814 lars 168
    Route::post( "/send_pw", [ UserController::class, "forgot_pw" ] );
777 lars 169
    Route::get( "/favoriten", function ()
170
    {
848 lars 171
        return view( 'login_center' );
777 lars 172
    } );
776 lars 173
    Route::get( "/forgot_pw", function ()
174
    {
848 lars 175
        return view( 'login_center' );
776 lars 176
    } );
765 lars 177
    Route::get( "/login", function ()
762 lars 178
    {
848 lars 179
        return view( 'login_center' );
765 lars 180
    } );
775 lars 181
    Route::get( "/register", function ()
182
    {
848 lars 183
        return view( 'login_center' );
775 lars 184
    } );
890 lars 185
    Route::get( "/update_versand", [ ShippingController::class, "updateShipping" ] );
891 lars 186
    Route::get( "/checkLand.php", function ()
890 lars 187
    {
188
        $_SESSION['SHOP']["BASKET"]->getShippingCountries();
189
        $valid = 1;
893 lars 190
        if ( !in_array( $_GET["land"], array_keys( $_SESSION["SHOP"]["BASKET"]->shippingCountries ) ) )
890 lars 191
        {
192
            $valid = 0;
193
        }
899 lars 194
        echo $valid;
890 lars 195
        return $valid;
196
    } );
658 lars 197
    Route::get( '/setSessionVars', function ()
198
    {
199
        foreach ( $_GET as $key => $value )
200
        {
201
            if ( $value == "false" )
202
            {
203
                unset( $_SESSION[$key] );
204
            }
205
            else
206
            {
207
                $_SESSION[$key] = $value;
208
            }
209
        }
210
    } );
765 lars 211
    Route::post( "/setSessionVars", function ()
212
    {
762 lars 213
        foreach ( $_POST as $key => $value )
214
        {
215
            if ( $value == "false" )
216
            {
217
                unset( $_SESSION[$key] );
218
            }
219
            else
220
            {
221
                $_SESSION[$key] = $value;
222
            }
223
        }
765 lars 224
    } );
225
    Route::post( "/updateSession", function ()
756 lars 226
    {
227
    } );
355 lars 228
    Route::get( "/cms/{slug}", function ( $slug )
229
    {
359 lars 230
        $url = $GLOBALS["INI"]["typo3"]["url"] . "/typo3/" . $slug;
365 lars 231
        $arr = parseCMSPage( $url );
355 lars 232
        $content = $arr["content"];
361 lars 233
        return view( 'service_center_content', [
848 lars 234
            "serviceContent" => $content,
355 lars 235
        ] );
236
    } );
925 lars 237
    Route::get( "/bestellen_seite_{step}.html", function ( $step )
376 lars 238
    {
925 lars 239
        return view( 'buy_' . $step, [
924 lars 240
            "pagetype"      => "Bestellvorgang1",
848 lars 241
            "Laender"       => getRechnungsLaender(),
242
            "defaultLandID" => 47,
376 lars 243
        ] );
925 lars 244
    } )->where( 'step', '[1-4][ab]{0,1}' );
245
    Route::post( "/bestellen_seite_{step}.html", [ BuyController::class, 'step1' ] )->where( 'step', '[1-4][ab]{0,1}' );
349 lars 246
    Route::get( "basket.html", function ()
247
    {
678 lars 248
 
848 lars 249
        return view( 'basket' );
349 lars 250
    } );
1564 lars 251
    Route::get( "{item:slug}.html", function ( Item $item )
333 lars 252
    {
1564 lars 253
        //$item->load( 'price', 'medium.medium', 'manufacturer' );
254
        return view( 'item', [
255
            "item" => $item,
256
        ] );
257
    } );
1692 lars 258
    Route::get( "/directory/{id}-{name}", [ DirectoryController::class, "index" ] )->whereNumber( 'id' );
333 lars 259
    Route::get( '/', function ()
260
    {
405 lars 261
        $date = date( "Y-m-d" );
262
        $aktion = Action::with( 'medium.medium' )->where( 'valid_from', '<=', $date )->where( 'valid_to', '>=', $date )->get();
333 lars 263
        return view( 'startpage', [
848 lars 264
            "pagetype" => "Startseite",
265
            "aktion"   => $aktion,
333 lars 266
        ] );
267
    } );
685 lars 268
 
269
 
703 lars 270
    function getRechnungsLaender(): array
685 lars 271
    {
687 lars 272
        $arr = array();
1619 lars 273
        $laender = DB::connection( 'cms' )->select( 'SELECT id,name_de FROM content_management.countries WHERE `rank` > 0 ORDER BY `rank`' );
687 lars 274
        foreach ( $laender as $land )
275
        {
276
            $arr[$land->id] = $land->name_de;
277
        }
278
        return $arr;
730 lars 279
    }
964 lars 280
 
1144 lars 281
    //require_once __DIR__.'/admin.php';