user shops + shipping

This commit is contained in:
Kevin Adametz 2019-01-06 01:40:44 +01:00
parent ccc2af4bf7
commit d4f6a774d0
53 changed files with 2326 additions and 814 deletions

1082
.idea/workspace.xml generated

File diff suppressed because it is too large Load diff

View file

@ -5,6 +5,7 @@ namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use Input;
use Session;
use \SoapClient;
class KasController extends Controller
@ -17,6 +18,7 @@ class KasController extends Controller
private $session_lifetime = 600; // Gültigkeit des Tokens in Sek. bis zur neuen Authentifizierung
private $session_update_lifetime = 'Y'; // bei N läuft die Session nach <$session_lifetime> Sekunden ab, bei Y verlängert sich die Session mit jeder Benutzung
private $CredentialToken = false;
private $kas_flood_delay = 2;
/**
* Create a new controller instance.
@ -31,6 +33,7 @@ class KasController extends Controller
public function action($func, $para = array()){
$this->checkSession($func);
try
{
$Params = array(); // Parameter für die API-Funktion
@ -42,6 +45,8 @@ class KasController extends Controller
'KasRequestType' => $func, // API-Funktion
'KasRequestParams' => $para // Parameter an die API-Funktion
)));
Session::put('flood_protection.'.$func, time() + $this->kas_flood_delay + 0.2);
if(isset($req['Response']['ReturnString']) && $req['Response']['ReturnString'] == "TRUE"){
return $req['Response']['ReturnInfo'];
}
@ -60,8 +65,11 @@ class KasController extends Controller
private function login(){
$this->checkSession('auth');
try
{
$SoapLogon = new SoapClient('https://kasapi.kasserver.com/soap/wsdl/KasAuth.wsdl');
$this->CredentialToken = $SoapLogon->KasAuth(json_encode(array(
'KasUser' => $this->kas_user,
@ -70,6 +78,8 @@ class KasController extends Controller
'SessionLifeTime' => $this->session_lifetime,
'SessionUpdateLifeTime' => $this->session_update_lifetime
)));
Session::put('flood_protection.auth', time() + $this->kas_flood_delay + 0.2);
}
// Fehler abfangen und ausgeben
@ -83,7 +93,19 @@ class KasController extends Controller
}
private function checkSession($func)
{
$name = 'flood_protection.'.$func;
if(Session::exists($name)){
$time_to_wait = (float)Session::get($name) - time();
Session::forget($name);
}else {
$time_to_wait = 0;
}
if ( $time_to_wait >= 0 ) {
usleep( intval( $time_to_wait*1000000 ) );
}
}
}

View file

@ -0,0 +1,104 @@
<?php
namespace App\Http\Controllers;
use App\Models\Shipping;
use Input;
use Illuminate\Http\Request;
use Validator;
class ShippingController extends Controller
{
public function __construct()
{
$this->middleware('superadmin');
}
/**
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
*/
public function index()
{
$data = [
'values' => Shipping::all(),
];
return view('admin.shipping.index', $data);
}
public function edit($shipping_id)
{
if($shipping_id == "new"){
$shipping = new Shipping();
$shipping->active = 1;
}else{
$shipping = Shipping::findOrFail($shipping_id);
}
$data = [
'value' => $shipping,
];
return view('admin.shipping.edit', $data);
}
/**
* @param Request $request
* @return \Illuminate\Contracts\View\Factory|\Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector|\Illuminate\View\View
*/
public function store(Request $request)
{
$data = Input::all();
if ($data['id'] == "new") {
$shipping = new Shipping();
$rules = array(
'name' => 'required',
);
} else {
$shipping = Shipping::findOrFail($data['id']);
$rules = array(
'name' => 'required',
);
}
$data = [
'value' => $shipping,
];
$validator = Validator::make(Input::all(), $rules);
if ($validator->fails()) {
return view('admin.shipping.edit', $data)->withErrors($validator);
}
$data = Input::all();
$shipping->name = $data['name'];
$shipping->free = $data['free'];
$shipping->active = isset($data['active']) ? true : false;
$shipping->save();
\Session()->flash('alert-save', true);
return redirect(route('admin_shipping_edit', [$shipping->id]));
}
public function deleteShipping($shipping_id)
{
$shipping = Shipping::findOrFail($shipping_id);
$shipping->delete();
\Session()->flash('alert-success', "Versandkosten gelöscht");
return redirect('/admin/shippings');
}
}

View file

@ -5,6 +5,7 @@ namespace App\Http\Controllers\Web;
use App\Http\Controllers\Controller;
use App\Models\Product;
use Util;
use Yard;
use Input;
@ -56,7 +57,10 @@ class CardController extends Controller
}
public function showCard(){
return view('web.templates.card');
$data = [
'user_shop' => Util::getUserShop(),
];
return view('web.templates.card', $data);
}
public function updateCard(){
@ -73,11 +77,17 @@ class CardController extends Controller
}
public function checkoutCard(){
return view('web.templates.checkout');
$data = [
'user_shop' => Util::getUserShop(),
];
return view('web.templates.checkout', $data);
}
public function checkoutFinalCard(){
return view('web.templates.checkout-final');
$data = [
'user_shop' => Util::getUserShop(),
];
return view('web.templates.checkout-final', $data);
}

View file

@ -7,6 +7,7 @@ use App\Http\Controllers\Controller;
use App\Models\Category;
use App\Models\Product;
use Input;
use Util;
class SiteController extends Controller
{
@ -22,7 +23,10 @@ class SiteController extends Controller
public function index()
{
return view('web.index');
$data = [
'user_shop' => Util::getUserShop()
];
return view('web.index', $data);
}
public function site($site, $subsite = false, $product_slug = false)
@ -35,6 +39,7 @@ class SiteController extends Controller
if ($category && $product) {
$data = [
'user_shop' => Util::getUserShop(),
'subsite' => $subsite,
'categories' => Category::where('active', true)->orderBy('pos', 'ASC')->get(),
'product' => $product,
@ -51,6 +56,7 @@ class SiteController extends Controller
$category = Category::where('slug', $subsite)->where('active', true)->first();
if ($category) {
$data = [
'user_shop' => Util::getUserShop(),
'subsite' => $subsite,
'categories' => Category::where('active', true)->orderBy('pos', 'ASC')->get(),
'products' => Product::whereHas('categories', function ($query) use ($category) {
@ -65,6 +71,7 @@ class SiteController extends Controller
}
}
$data = [
'user_shop' => Util::getUserShop(),
'subsite' => 'alle-produkte',
'categories' => Category::where('active', true)->orderBy('pos', 'ASC')->get(),
'products' => Product::where('active', true)->orderBy('pos', 'ASC')->get(),
@ -72,17 +79,19 @@ class SiteController extends Controller
];
return view('web.templates.'.$site, $data);
}
$data = [
'user_shop' => Util::getUserShop()
];
if($subsite){
if(!view()->exists('web.templates.'.$subsite)){
abort(404);
}
return view('web.templates.'.$subsite);
return view('web.templates.'.$subsite, $data);
}
if(!view()->exists('web.templates.'.$site)){
abort(404);
}
return view('web.templates.'.$site);
return view('web.templates.'.$site, $data);
}

View file

@ -56,6 +56,7 @@ class Kernel extends HttpKernel
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'admin' => \App\Http\Middleware\Admin::class,
'superadmin' => \App\Http\Middleware\SuperAdmin::class,
'subdomain' => \App\Http\Middleware\Subdomain::class,
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,

View file

@ -0,0 +1,35 @@
<?php
namespace App\Http\Middleware;
use App\Models\UserShop;
use Closure;
use Auth;
use phpDocumentor\Reflection\DocBlock\Tags\Uses;
use Util;
class Subdomain
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if(!empty($request->route('subdomain'))){
$user_shop = UserShop::where('slug', $request->route('subdomain'))->where('active', 1)->first();
$request->route()->forgetParameter('subdomain');
Util::setPostRoute('user.');
if($user_shop){
\Session::put('user_shop', $user_shop);
return $next($request);
}
}
return redirect(config('app.url'));
}
}

50
app/Models/Shipping.php Normal file
View file

@ -0,0 +1,50 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Shipping extends Model
{
protected $table = 'shippings';
protected $casts = [
'trans_name' => 'array',
];
protected $fillable = [
'name', 'active', 'free'
];
public function _format_number($value){
return preg_replace("/[^0-9,]/", "", $value);
}
public function setFreeAttribute( $value ) {
if($value == ""){
$this->attributes['free'] = null;
}else{
$value = $this->_format_number($value);
$this->attributes['free'] = floatval(str_replace(',', '.', $value));
}
}
public function getFormattedFree()
{
if($this->attributes['free'] === null) {
return "";
}
if(\App::getLocale() == "en"){
return number_format($this->attributes['free'], 2, '.', ',');
}
return number_format($this->attributes['free'], 2, ',', '.');
}
public function countries(){
return $this->hasMany('App\Models\ShippingCountry', 'shipping_id', 'id');
}
public function prices(){
return $this->hasMany('App\Models\ShippingPrice', 'shipping_id', 'id');
}
}

View file

@ -0,0 +1,25 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class ShippingCountry extends Model
{
protected $table = 'shipping_countries';
protected $fillable = [
'shipping_id', 'country_id'
];
public function shipping()
{
return $this->belongsTo('App\Models\Shipping', 'shipping_id');
}
public function country()
{
return $this->belongsTo('App\Models\Country', 'country_id');
}
}

View file

@ -0,0 +1,93 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class ShippingPrice extends Model
{
protected $table = 'shipping_prices';
protected $fillable = [
'shipping_id', 'price', 'tax', 'factor', 'total_from', 'total_to', 'weight_from', 'weight_to',
];
public function shipping()
{
return $this->belongsTo('App\Models\Shipping', 'shipping_id');
}
public function _format_number($value){
return preg_replace("/[^0-9,]/", "", $value);
}
public function setPriceAttribute( $value ) {
$value = $this->_format_number($value);
$this->attributes['price'] = floatval(str_replace(',', '.', $value));
}
public function setFactorAttribute( $value ) {
$value = $this->_format_number($value);
$this->attributes['factor'] = floatval(str_replace(',', '.', $value));
}
public function setTaxAttribute( $value ) {
$value = $this->_format_number($value);
$this->attributes['tax'] = floatval(str_replace(',', '.', $value));
}
public function setPriceOldAttribute( $value ) {
$value = $this->_format_number($value);
$this->attributes['price_old'] = floatval(str_replace(',', '.', $value));
}
public function setTotalFromAttribute( $value ) {
$value = $this->_format_number($value);
$this->attributes['total_from'] = floatval(str_replace(',', '.', $value));
}
public function setTotalToAttribute( $value ) {
$value = $this->_format_number($value);
$this->attributes['total_to'] = floatval(str_replace(',', '.', $value));
}
public function getFormattedPrice()
{
if(\App::getLocale() == "en"){
return number_format($this->attributes['price'], 2, '.', ',');
}
return number_format($this->attributes['price'], 2, ',', '.');
}
public function getFormattedTax()
{
if(\App::getLocale() == "en"){
return number_format($this->attributes['tax'], 2, '.', ',');
}
return number_format($this->attributes['tax'], 2, ',', '.');
}
public function getFormattedFactor()
{
if(\App::getLocale() == "en"){
return number_format($this->attributes['factor'], 2, '.', ',');
}
return number_format($this->attributes['factor'], 2, ',', '.');
}
public function getFormatTotalFrom()
{
if(\App::getLocale() == "en"){
return number_format($this->attributes['total_from'], 2, '.', ',');
}
return number_format($this->attributes['total_from'], 2, ',', '.');
}
public function getFormattedTotalTo()
{
if(\App::getLocale() == "en"){
return number_format($this->attributes['total_to'], 2, '.', ',');
}
return number_format($this->attributes['total_to'], 2, ',', '.');
}
}

View file

@ -55,7 +55,7 @@ class UserShop extends Model
public function getSubdomainStatus()
{
if($this->is_online != NULL){
if($this->is_online !== NULL){
return $this->is_online;
}

View file

@ -6,6 +6,7 @@ namespace App\Services;
class Util
{
private static $postRoute = 'base.';
public static function formatDate(){
if(\App::getLocale() == "en"){
@ -28,4 +29,30 @@ class Util
}
return 'd.m.Y - H:i';
}
public static function getPostRoute(){
return self::$postRoute;
}
public static function setPostRoute($postRoute){
self::$postRoute = $postRoute;
}
public static function getUserShop(){
if(\Session::has('user_shop')){
if($user_shop = \Session::get('user_shop')){
return $user_shop;
}
}
return false;
}
public static function addRoute($p = []){
$b = [];
if(\Session::has('user_shop')){
if($user_shop = \Session::get('user_shop')){
$b = ['subdomain' => $user_shop->slug];
}
}
return array_merge($p, $b);
}
}

View file

@ -31,6 +31,9 @@ class CreateProductsTable extends Migration
$table->decimal('price_old', 8, 2)->nullable(); //streichpreis
$table->unsignedInteger('weight')->nullable();
$table->string('contents')->nullable();
$table->string('number')->nullable();
$table->string('icons')->nullable(); //as array cast

View file

@ -0,0 +1,39 @@
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateShippingsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('shippings', function (Blueprint $table) {
$table->increments('id');
$table->string('name')->index();
$table->text('trans_name')->nullable();
$table->decimal('free', 8, 2)->nullable();
$table->boolean('active')->default(false);
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('shippings');
}
}

View file

@ -0,0 +1,49 @@
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateShippingPricesTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('shipping_prices', function (Blueprint $table) {
$table->increments('id');
$table->unsignedInteger('shipping_id');
$table->decimal('price', 8, 2)->nullable();
$table->decimal('tax', 5, 2)->nullable();
$table->decimal('factor', 5, 2)->nullable();
$table->decimal('total_from', 8, 2)->nullable();
$table->decimal('total_to', 8, 2)->nullable();
$table->unsignedInteger('weight_from')->nullable();
$table->unsignedInteger('weight_to')->nullable();
$table->timestamps();
$table->foreign('shipping_id')
->references('id')
->on('shippings')
->onDelete('cascade');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('shipping_prices');
}
}

View file

@ -0,0 +1,44 @@
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateShippingCountriesTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('shipping_countries', function (Blueprint $table) {
$table->increments('id');
$table->unsignedInteger('shipping_id');
$table->unsignedInteger('country_id')->nullable()->index();
$table->timestamps();
$table->foreign('shipping_id')
->references('id')
->on('shippings')
->onDelete('cascade');
$table->foreign('country_id')
->references('id')
->on('countries');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('shipping_countries');
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

View file

@ -128,6 +128,7 @@
"OK": "OK",
"Contacts": "Kontake",
"active": "aktiviert",
"inactive": "deaktiviert",
"verified": "verifiziert",
"'E-Mail": "'E-Mail",
"create new Contact": "Neuen Kontakt erstellen",
@ -189,10 +190,13 @@
"available":"erreichbar",
"not available":"nicht erreichbar",
"active since":"Aktiv seit",
"open since":"Eröffnet seit",
"Domain":"Domain",
"name":"Name",
"not available copy":" Bei neu angelegten Shops dauert es einige Minuten, bis die Domain zu erreichen ist. Bitte schauen Sie in einigen Minuten noch einmal nach.",
"shop image":"Dein Shop Bild",
"shop image copy":"Lade hier ein Foto / Bild / Logo von Dir hoch.",
"open your shop": "Eröffne Deinen eigenen mivita-Shop",
"settings your shop":"Deine Shop-Einstellungen",
"":""
}

View file

@ -0,0 +1,72 @@
@extends('layouts.layout-2')
@section('content')
@if ($errors->any())
<div class="row">
<div class="col-sm-12">
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
</div>
</div>
@endif
<h4 class="font-weight-bold py-2 mb-2">
{{ __('Create/Edit Versandkosten') }}
</h4>
{!! Form::open(['url' => route('admin_shipping_store'), 'class' => 'form-horizontal', 'id'=>'']) !!}
<input type="hidden" name="id" id="id" value="@if($value->id>0){{$value->id}}@else new @endif">
<div class="text-left mt-0 mb-2">
<button type="submit" class="btn btn-submit">{{ __('save') }}</button>&nbsp;
<a href="{{ route('admin_shippings') }}" class="btn btn-default">{{ __('back') }}</a>
</div>
<div class="card mb-2">
<h5 class="card-header">
{{ __('Versandkosten') }}
</h5>
<div class="card-body">
<div class="form-group">
<label class="custom-control custom-checkbox float-right">
{!! Form::checkbox('active', 1, $value->active, ['class'=>'custom-control-input']) !!}
<span class="custom-control-label">{{__('aktiv')}}</span>
</label>
<label class="form-label" for="name">{{ __('Name') }}*</label>
{{ Form::text('name', $value->name, array('placeholder'=>__('Name'), 'class'=>'form-control'.($errors->has('name') ? ' is-invalid' : ''), 'id'=>'name', 'required')) }}
</div>
@if ($errors->has('name'))
<span class="invalid-feedback" style="display: inline-block;">
<strong>{{ $errors->first('name') }}</strong>
</span>
@endif
<div class="form-group">
<label class="form-label" for="title">{{ __('Free') }}</label>
{{ Form::text('free', $value->getFormattedFree(), array('placeholder'=>__('Free'), 'class'=>'form-control', 'id'=>'free')) }}
</div>
</div>
</div>
<div class="text-left mt-0 mb-2">
<button type="submit" class="btn btn-submit">{{ __('save') }}</button>&nbsp;
<a href="{{ route('admin_shippings') }}" class="btn btn-default">{{ __('back') }}</a>
</div>
{!! Form::close() !!}
@endsection

View file

@ -0,0 +1,59 @@
@extends('layouts.layout-2')
@section('content')
<div class="card">
<h6 class="card-header">
{{__('Versandkosten')}}
</h6>
<div class="card-datatable table-responsive">
<table class="datatables-style table table-striped table-bordered">
<thead>
<tr>
<th style="max-width: 60px;">&nbsp;</th>
<th>{{__('Name')}}</th>
<th>{{__('Status')}}</th>
<th></th>
</tr>
</thead>
<tbody>
@foreach($values as $value)
<tr>
<td>
<a href="{{route('admin_shipping_edit', [$value->id])}}" class="btn icon-btn btn-sm btn-primary">
<span class="far fa-edit"></span>
</a>
</td>
<td>{{ $value->name }}</td>
<td data-sort="{{ $value->active }}">@if($value->active) <span class="badge badge-pill badge-success"><i class="far fa-check"></i></span>@else<span class="badge badge-pill badge-danger"><i class="far fa-times"></i></span>@endif</td>
<td><a class="text-danger" href="{{ route('admin_shipping_delete', [$value->id]) }}" onclick="return confirm('{{__('Really delete entry?')}}');"><i class="far fa-trash-alt"></i></a></td>
</tr>
@endforeach
</tbody>
</table>
<div class="mt-4 ml-4">
<a href="{{route('admin_shipping_edit', ['new'])}}" class="btn btn-sm btn-primary">
{{__('Neue Versandkosten erstellen')}}
</a>
</div>
</div>
</div>
<script>
$( document ).ready(function() {
$('.datatables-style').dataTable({
"bLengthChange": false,
"iDisplayLength": 50,
"aoColumns": [
{ "sWidth": "10%" },
{ "sWidth": "80%" },
{ "sWidth": "10%" },
],
"language": {
"url": "/js/German.json"
}
});
});
</script>
@endsection

View file

@ -54,7 +54,21 @@
@if($user->active == 1 && !$user->user_shop)
<div class="card-body" style="background: #fff; border: 1px solid rgba(24, 28, 33, 0.06);">
<h4>{{__('Your Shop') }}</h4>
<a href="{{route('user_shop')}}" class="btn btn-secondary">{{__('open your shop')}}</a>
@if($user->shop)
<p><span class="ion ion-md-checkmark-circle-outline text-primary"></span>
<strong>{{__('open since')}}</strong> {{__('at')}} {{ $user->shop->getActiveDateFormat() }}</p>
@if($user->shop->active)
<p><span class="ion ion-md-close-circle-outline text-danger"></span>
<strong>{{__('Status')}}</strong> {{ __('active') }}</p>
@else
<p><span class="ion ion-md-close-circle-outline text-danger"></span>
<strong>{{__('Status')}}</strong> {{ __('inactive') }}</p>
@endif
<a href="{{route('user_shop')}}" class="btn btn-secondary">{{__('settings your shop')}}</a>
@else
<a href="{{route('user_shop')}}" class="btn btn-secondary">{{__('open your shop')}}</a>
@endif
</div>
@endif

View file

@ -117,6 +117,8 @@
<script src="{{ asset('/vendor/libs/summernote/dist/summernote-bs4.min.js') }}"></script>
<script src="{{ asset('/vendor/libs/summernote/lang/summernote-de-DE.js') }}"></script>
<script src="{{ asset('/vendor/libs/summernote-cleaner/summernote-cleaner.js') }}"></script>
<script src="{{ asset('/js/forms_file-upload.js') }}"></script>
<script src="{{ asset('/vendor/libs/slim-image-cropper/slim/slim.kickstart.min.js') }}"></script>
@ -136,6 +138,20 @@
$('.summernote').summernote({
height: 140,
lang: 'de-DE',
cleaner:{
action: 'both', // both|button|paste 'button' only cleans via toolbar button, 'paste' only clean when pasting content, both does both options.
newline: '<br>', // Summernote's default is to use '<p><br></p>'
notStyle: 'position:absolute;top:0;left:0;right:0', // Position of Notification
icon: '<i class="note-icon">[Your Button]</i>',
keepHtml: false, // Remove all Html formats
keepOnlyTags: ['<p>', '<br>', '<ul>', '<li>', '<b>', '<strong>','<i>', '<a>'], // If keepHtml is true, remove all tags except these
keepClasses: false, // Remove Classes
badTags: ['style', 'script', 'applet', 'embed', 'noframes', 'noscript', 'html'], // Remove full tags with contents
badAttributes: ['style', 'start'], // Remove attributes from remaining tags
limitChars: false, // 0/false|# 0/false disables option
limitDisplay: 'both', // text|html|both
limitStop: false // true/false
}
});
$('.summernote-small').summernote({
@ -148,9 +164,27 @@
['fontsize', ['fontsize']],
['color', ['color']],
['para', ['ul', 'ol', 'paragraph']],
['height', ['height']]
]
['height', ['height']],
['view',['fullscreen','codeview']],
],
cleaner:{
action: 'both', // both|button|paste 'button' only cleans via toolbar button, 'paste' only clean when pasting content, both does both options.
newline: '<br>', // Summernote's default is to use '<p><br></p>'
notStyle: 'position:absolute;top:0;left:0;right:0', // Position of Notification
icon: '<i class="note-icon">[Your Button]</i>',
keepHtml: false, // Remove all Html formats
keepOnlyTags: ['<p>', '<br>', '<ul>', '<li>', '<b>', '<strong>','<i>', '<a>'], // If keepHtml is true, remove all tags except these
keepClasses: false, // Remove Classes
badTags: ['style', 'script', 'applet', 'embed', 'noframes', 'noscript', 'html'], // Remove full tags with contents
badAttributes: ['style', 'start'], // Remove attributes from remaining tags
limitChars: false, // 0/false|# 0/false disables option
limitDisplay: 'both', // text|html|both
limitStop: false // true/false
}
});
$('.note-status-output').hide();
});
</script>

View file

@ -82,6 +82,10 @@
<a href="{{ route('admin_users') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-ribbon"></i><div>{{ __('User Rechte') }}</div></a>
</li>
<li class="sidenav-item{{ Request::is('admin/shippings') ? ' active' : '' }} {{ Request::is('admin/shipping/edit/*') ? ' active' : '' }}">
<a href="{{ route('admin_shippings') }}" class="sidenav-link"><i class="sidenav-icon ion ion-ios-gift"></i><div>{{ __('Versandkosten') }}</div></a>
</li>
@endif

View file

@ -76,7 +76,11 @@
</li>
@if(!$user->shop->getSubdomainStatus())
<li class="list-group-item d-flex justify-content-between align-items-center">
<small>{{ __('not available copy') }}</small>
<small>{{ __('not available copy') }}
<a href="" class="btn icon-btn btn-xs btn-outline-primary">
<span class="lnr lnr-redo"></span>
</a>
</li>
@endif
<li class="list-group-item d-flex justify-content-between align-items-center">

View file

@ -1,230 +1 @@
@extends('web.layouts.layout')
@section('content')
<style type="text/css">
.tp-caption {
text-shadow: none;
}
</style>
<!-- REVOLUTION SLIDER -->
<section id="slider" class="slider fullwidthbanner-container roundedcorners">
<div class="fullwidthbanner" data-height="500" data-navigationStyle="">
<ul class="hide">
<!-- SLIDE -->
<li data-transition="fade" data-slotamount="1" data-masterspeed="1000" data-saveperformance="off"
data-title="Slide">
<img src="{{ asset('assets/images/1x1.png') }}" data-lazyload="{{ asset('assets/images/slider-hg_gruen-mitte.jpg') }}" alt=""
data-bgfit="cover" data-bgposition="center top" data-bgrepeat="no-repeat"/>
<div class="overlay dark-0"><!-- dark overlay [1 to 9 opacity] --></div>
<div class="tp-caption customin ltl tp-resizeme text_white"
data-x="center"
data-y="60"
data-customin="x:0;y:150;z:0;rotationZ:0;scaleX:1;scaleY:1;skewX:0;skewY:0;opacity:0;transformPerspective:200;transformOrigin:50% 0%;"
data-speed="800"
data-start="1000"
data-easing="easeOutQuad"
data-splitin="none"
data-splitout="none"
data-elementdelay="0.01"
data-endelementdelay="0.1"
data-endspeed="1000"
data-endeasing="Power4.easeIn" style="z-index: 10;">
<span class="weight-400">Deutscher Direktvertrieb für</span>
</div>
<div class="tp-caption customin ltl tp-resizeme large_bold_white"
data-x="center"
data-y="100"
data-customin="x:0;y:150;z:0;rotationZ:0;scaleX:1;scaleY:1;skewX:0;skewY:0;opacity:0;transformPerspective:200;transformOrigin:50% 0%;"
data-speed="800"
data-start="1200"
data-easing="easeOutQuad"
data-splitin="none"
data-splitout="none"
data-elementdelay="0.01"
data-endelementdelay="0.1"
data-endspeed="1000"
data-endeasing="Power4.easeIn" style="z-index: 10;">
<span class="h1">100% Premium Bio Aloe Vera</span>
</div>
</li>
</ul>
<div class="tp-bannertimer"></div>
</div>
</section>
<!-- /REVOLUTION SLIDER -->
<!-- -->
<section>
<div class="container">
<p class="">MIVITA ist ein Unternehmen mit Standort in Deutschland, das innovative und umweltfreundliche
sowie hochwertige Produkte vertreibt. Seit seinem Markteintritt bekennt sich das MIVITA Unternehmen zu einem
Werteverständnis, bei dem die Zufriedenheit der Kunden, wie auch die Verantwortung für die Umwelt im Fokus
stehen.</p>
<div class="divider divider-center divider-color"><!-- divider -->
<i class="fa fa-chevron-down"></i>
</div>
<!-- BORN TO BE A WINNER -->
<article class="row">
<div class="col-md-6">
<!-- OWL SLIDER -->
<div class="owl-carousel buttons-autohide controlls-over nomargin"
data-plugin-options='{"items": 1, "autoHeight": true, "navigation": true, "pagination": true, "transitionStyle":"backSlide", "progressBar":"true"}'>
<div>
<img class="img-responsive" src="{{ asset('assets/images/aloe-vera-farm-mallorca.jpg') }}" alt="">
</div>
<div>
<img class="img-responsive" src="{{ asset('assets/images/beratung-ruth-mallorca.jpg') }}" alt="">
</div>
<div>
<img class="img-responsive" src="{{ asset('assets/images/mivita-schulung-mallorca.jpg') }}" alt="">
</div>
</div>
<!-- /OWL SLIDER -->
</div>
<div class="col-md-6">
<h2>Warum MIVITA?</h2>
<p>Unsere Kunden vertrauen zurecht auf die exzellenten Eigenschaften der MIVITA Produkte. Damit trifft
jeder aktiv eine kluge Entscheidung für Gesundheit und Umwelt.</p>
<p>Wir legen nicht nur auf die Qualität unserer Produkte einen hohen Stellenwert, sondern natürlich auch
auf umfassende, kompetente Beratung durch freundliche und fachkundige Berater und Beraterinnen.</p>
<p>Wir entwickeln und vertreiben ausschließlich Produkte, die qualitativ hochwertig sind. So sind sie
bei sachgemäßer Anwendung und Pflege langlebig und sehr ergiebig. Faktoren, die uns die
Zufriedenheit unserer Kunden sichern.</p>
</div>
</article>
<!-- /BORN TO BE A WINNER -->
</div>
</section>
<!-- / -->
<!-- -->
<section>
<div class="container">
<!-- FEATURED BOXES 3 -->
<div class="row">
<div class="col-md-4 col-xs-6">
<div class="text-center">
<h3 class="h3">Aloe Vera</h3>
<p class="">Mit höchstem Anspruch arbeiten wir gemeinsam mit der Aloe Vera Farm auf Mallorca
zusammen, die weltweite Qualität der Spitzenklasse garantiert.</p>
<a href="/aloevera">
Mehr
<!-- /word rotator -->
<span class="word-rotator" data-delay="2000">
<span class="items">
<span>lesen</span>
<span>JETZT</span>
</span>
</span><!-- /word rotator -->
<i class="glyphicon glyphicon-menu-right size-12"></i>
</a>
</div>
</div>
<div class="col-md-4 col-xs-6">
<div class="text-center">
<h3 class="h3">Produkte</h3>
<p class="">Hier findest Du einen Überblick über das komplette Premium-Produktsortiment von MIVITA.
Vom hochwertigen Aloe Saft bis zu wohltuender Kosmetik.</p>
<a href="/produkte">
Mehr
<!-- /word rotator -->
<span class="word-rotator" data-delay="2000">
<span class="items">
<span>lesen</span>
<span>JETZT</span>
</span>
</span><!-- /word rotator -->
<i class="glyphicon glyphicon-menu-right size-12"></i>
</a>
</div>
</div>
<div class="col-md-4 col-xs-6">
<div class="text-center">
<h3 class="h3">Vertriebspartner</h3>
<p class="">Werde auch Du ein Vertriebspartner von MIVITA und baue Dir Dein eigenes Geschäft mit
Qualitätsprodukten auf. Wenn Du magst, kannst Du sofort starten ...</p>
<a href="/geschaeftsmodell/karrierechancen">
Mehr
<!-- /word rotator -->
<span class="word-rotator" data-delay="2000">
<span class="items">
<span>lesen</span>
<span>JETZT</span>
</span>
</span><!-- /word rotator -->
<i class="glyphicon glyphicon-menu-right size-12"></i>
</a>
</div>
</div>
</div>
<!-- /FEATURED BOXES 3 -->
</div>
</section>
<!-- / -->
<!-- -->
<section>
<div class="container">
<div class="row">
<div class="col-lg-6">
<p>MIVITA ist exklusiver Partner der Farm Aloe Vera de Mallorca im Bereich Direktvertrieb Deutschland.
Hier haben zwei Unternehmen zusammengefunden, für die Qualität und Nachhaltigkeit oberstes Gebot
sind. Nur so lassen sich langfristig zufriedene Kunden zu echten Fans unserer Produkte gewinnen.</p>
<blockquote>
<p><i>„Mensch, Tier und Natur zuliebe ... Nachhaltigkeit und Produkte, die wirklich „guttun“, sind
uns wichtig.</i></p>
<p>Alois Ried - Inhaber MIVITA</p>
</blockquote>
</div>
<div class="col-lg-6">
<div class="embed-responsive embed-responsive-16by9 box-shadow-1">
<iframe width="560" height="315" src="https://www.youtube.com/embed/ChHAxy6SbkM?rel=0"
frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
</div>
</div>
</div>
</div>
</section>
<!-- / -->
@endsection
@include($user_shop ?'web.user.start' : 'web.start')

View file

@ -85,11 +85,11 @@
<div class="copyright">
<div class="container">
<ul class="pull-right nomargin list-inline mobile-block">
<li {{ Request::is('datenschutz') ? ' active' : '' }} "><a
href="{{ url('/datenschutz') }}">Datenschutzerklärung</a></li>
<li class="{{ Request::is('data_protected') ? ' active' : '' }}"><a
href="{{ url('/data_protected') }}">Datenschutzerklärung</a></li>
<li>&bull;</li>
<li {{ Request::is('impressum') ? ' active' : '' }} "><a
href="{{ url('/impressum') }}">Impressum</a></li>
<li class="{{ Request::is('imprint') ? ' active' : '' }} "><a
href="{{ url('/imprint') }}">Impressum</a></li>
</ul>
&copy; All Rights Reserved, mivita.care
</div>

View file

@ -94,7 +94,7 @@
<em style="font-size: 0.9em">inkl. MwSt. zzgl. Versandkosten</em>
</div>
<a href="{{ route('card_show') }}" class="btn btn-primary btn-block mt-3">zum Warenkorb</a>
<a href="{{ route(Util::getPostRoute().'card_show', Util::addRoute()) }}" class="btn btn-primary btn-block mt-3">zum Warenkorb</a>
</div>
</div>
@ -123,7 +123,7 @@
Aloe Vera
</a>
</li>
<li class="{{ Request::is('/produkte/*') ? ' active' : '' }}">
<li class="{{ Request::is('produkte/*') ? ' active' : '' }}">
<a href="{{url('/produkte/alle-produkte')}}/">
Produktwelt
</a>

View file

@ -0,0 +1,230 @@
@extends('web.layouts.layout')
@section('content')
<style type="text/css">
.tp-caption {
text-shadow: none;
}
</style>
<!-- REVOLUTION SLIDER -->
<section id="slider" class="slider fullwidthbanner-container roundedcorners">
<div class="fullwidthbanner" data-height="500" data-navigationStyle="">
<ul class="hide">
<!-- SLIDE -->
<li data-transition="fade" data-slotamount="1" data-masterspeed="1000" data-saveperformance="off"
data-title="Slide">
<img src="{{ asset('assets/images/1x1.png') }}" data-lazyload="{{ asset('assets/images/slider-hg_gruen-mitte.jpg') }}" alt=""
data-bgfit="cover" data-bgposition="center top" data-bgrepeat="no-repeat"/>
<div class="overlay dark-0"><!-- dark overlay [1 to 9 opacity] --></div>
<div class="tp-caption customin ltl tp-resizeme text_white"
data-x="center"
data-y="60"
data-customin="x:0;y:150;z:0;rotationZ:0;scaleX:1;scaleY:1;skewX:0;skewY:0;opacity:0;transformPerspective:200;transformOrigin:50% 0%;"
data-speed="800"
data-start="1000"
data-easing="easeOutQuad"
data-splitin="none"
data-splitout="none"
data-elementdelay="0.01"
data-endelementdelay="0.1"
data-endspeed="1000"
data-endeasing="Power4.easeIn" style="z-index: 10;">
<span class="weight-400">Deutscher Direktvertrieb für</span>
</div>
<div class="tp-caption customin ltl tp-resizeme large_bold_white"
data-x="center"
data-y="100"
data-customin="x:0;y:150;z:0;rotationZ:0;scaleX:1;scaleY:1;skewX:0;skewY:0;opacity:0;transformPerspective:200;transformOrigin:50% 0%;"
data-speed="800"
data-start="1200"
data-easing="easeOutQuad"
data-splitin="none"
data-splitout="none"
data-elementdelay="0.01"
data-endelementdelay="0.1"
data-endspeed="1000"
data-endeasing="Power4.easeIn" style="z-index: 10;">
<span class="h1">100% Premium Bio Aloe Vera</span>
</div>
</li>
</ul>
<div class="tp-bannertimer"></div>
</div>
</section>
<!-- /REVOLUTION SLIDER -->
<!-- -->
<section>
<div class="container">
<p class="">MIVITA ist ein Unternehmen mit Standort in Deutschland, das innovative und umweltfreundliche
sowie hochwertige Produkte vertreibt. Seit seinem Markteintritt bekennt sich das MIVITA Unternehmen zu einem
Werteverständnis, bei dem die Zufriedenheit der Kunden, wie auch die Verantwortung für die Umwelt im Fokus
stehen.</p>
<div class="divider divider-center divider-color"><!-- divider -->
<i class="fa fa-chevron-down"></i>
</div>
<!-- BORN TO BE A WINNER -->
<article class="row">
<div class="col-md-6">
<!-- OWL SLIDER -->
<div class="owl-carousel buttons-autohide controlls-over nomargin"
data-plugin-options='{"items": 1, "autoHeight": true, "navigation": true, "pagination": true, "transitionStyle":"backSlide", "progressBar":"true"}'>
<div>
<img class="img-responsive" src="{{ asset('assets/images/aloe-vera-farm-mallorca.jpg') }}" alt="">
</div>
<div>
<img class="img-responsive" src="{{ asset('assets/images/beratung-ruth-mallorca.jpg') }}" alt="">
</div>
<div>
<img class="img-responsive" src="{{ asset('assets/images/mivita-schulung-mallorca.jpg') }}" alt="">
</div>
</div>
<!-- /OWL SLIDER -->
</div>
<div class="col-md-6">
<h2>Warum MIVITA?</h2>
<p>Unsere Kunden vertrauen zurecht auf die exzellenten Eigenschaften der MIVITA Produkte. Damit trifft
jeder aktiv eine kluge Entscheidung für Gesundheit und Umwelt.</p>
<p>Wir legen nicht nur auf die Qualität unserer Produkte einen hohen Stellenwert, sondern natürlich auch
auf umfassende, kompetente Beratung durch freundliche und fachkundige Berater und Beraterinnen.</p>
<p>Wir entwickeln und vertreiben ausschließlich Produkte, die qualitativ hochwertig sind. So sind sie
bei sachgemäßer Anwendung und Pflege langlebig und sehr ergiebig. Faktoren, die uns die
Zufriedenheit unserer Kunden sichern.</p>
</div>
</article>
<!-- /BORN TO BE A WINNER -->
</div>
</section>
<!-- / -->
<!-- -->
<section>
<div class="container">
<!-- FEATURED BOXES 3 -->
<div class="row">
<div class="col-md-4 col-xs-6">
<div class="text-center">
<h3 class="h3">Aloe Vera</h3>
<p class="">Mit höchstem Anspruch arbeiten wir gemeinsam mit der Aloe Vera Farm auf Mallorca
zusammen, die weltweite Qualität der Spitzenklasse garantiert.</p>
<a href="/aloevera">
Mehr
<!-- /word rotator -->
<span class="word-rotator" data-delay="2000">
<span class="items">
<span>lesen</span>
<span>JETZT</span>
</span>
</span><!-- /word rotator -->
<i class="glyphicon glyphicon-menu-right size-12"></i>
</a>
</div>
</div>
<div class="col-md-4 col-xs-6">
<div class="text-center">
<h3 class="h3">Produkte</h3>
<p class="">Hier findest Du einen Überblick über das komplette Premium-Produktsortiment von MIVITA.
Vom hochwertigen Aloe Saft bis zu wohltuender Kosmetik.</p>
<a href="/produkte">
Mehr
<!-- /word rotator -->
<span class="word-rotator" data-delay="2000">
<span class="items">
<span>lesen</span>
<span>JETZT</span>
</span>
</span><!-- /word rotator -->
<i class="glyphicon glyphicon-menu-right size-12"></i>
</a>
</div>
</div>
<div class="col-md-4 col-xs-6">
<div class="text-center">
<h3 class="h3">Vertriebspartner</h3>
<p class="">Werde auch Du ein Vertriebspartner von MIVITA und baue Dir Dein eigenes Geschäft mit
Qualitätsprodukten auf. Wenn Du magst, kannst Du sofort starten ...</p>
<a href="/geschaeftsmodell/karrierechancen">
Mehr
<!-- /word rotator -->
<span class="word-rotator" data-delay="2000">
<span class="items">
<span>lesen</span>
<span>JETZT</span>
</span>
</span><!-- /word rotator -->
<i class="glyphicon glyphicon-menu-right size-12"></i>
</a>
</div>
</div>
</div>
<!-- /FEATURED BOXES 3 -->
</div>
</section>
<!-- / -->
<!-- -->
<section>
<div class="container">
<div class="row">
<div class="col-lg-6">
<p>MIVITA ist exklusiver Partner der Farm Aloe Vera de Mallorca im Bereich Direktvertrieb Deutschland.
Hier haben zwei Unternehmen zusammengefunden, für die Qualität und Nachhaltigkeit oberstes Gebot
sind. Nur so lassen sich langfristig zufriedene Kunden zu echten Fans unserer Produkte gewinnen.</p>
<blockquote>
<p><i>„Mensch, Tier und Natur zuliebe ... Nachhaltigkeit und Produkte, die wirklich „guttun“, sind
uns wichtig.</i></p>
<p>Alois Ried - Inhaber MIVITA</p>
</blockquote>
</div>
<div class="col-lg-6">
<div class="embed-responsive embed-responsive-16by9 box-shadow-1">
<iframe width="560" height="315" src="https://www.youtube.com/embed/ChHAxy6SbkM?rel=0"
frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
</div>
</div>
</div>
</div>
</section>
<!-- / -->
@endsection

View file

@ -1,4 +1,4 @@
@extends('web.layouts.layout')
@extends($user_shop ?'web.user.layouts.layout' : 'web.layouts.layout')
@section('content')

View file

@ -1,4 +1,4 @@
@extends('web.layouts.layout')
@extends($user_shop ?'web.user.layouts.layout' : 'web.layouts.layout')
@section('content')

View file

@ -1,4 +1,4 @@
@extends('web.layouts.layout')
@extends($user_shop ?'web.user.layouts.layout' : 'web.layouts.layout')
@section('content')
@ -120,7 +120,7 @@
@if(Yard::instance('shopping')->content()->count())
<!-- CART -->
{!! Form::open(['url' => route('card_update'), 'class' => 'cartContent clearfix', 'id'=>'']) !!}
{!! Form::open(['url' => route(Util::getPostRoute().'card_update', Util::addRoute()), 'class' => 'cartContent clearfix', 'id'=>'']) !!}
<!-- cart content -->
<div id="cartContent">
@ -149,7 +149,7 @@
<span>{{ $row->name }}</span>
<small>Lieferzeit: 1-3 Werktage</small>
</a>
<a href="{{ route('card_remove', [$row->rowId]) }}" class="remove_item"><i class="fa fa-times"></i></a>
<a href="{{ route(Util::getPostRoute().'card_remove', Util::addRoute([$row->rowId])) }}" class="remove_item"><i class="fa fa-times"></i></a>
<div class="total_price"><span>{{ $row->subtotal() }} </span> </div>
<div class="qty"><input type="number" value="{{ $row->qty }}" name="quantity[{{$row->rowId}}]" maxlength="3" max="999" min="1" /> &times; {{ $row->price() }} </div>
@ -158,7 +158,7 @@
@endforeach
</div>
<a href="{{route('card_delete')}}" class="btn btn-default margin-top-20 margin-right-10 pull-left"><i class="glyphicon glyphicon-remove"></i> Warenkorb löschen</a>
<a href="{{route(Util::getPostRoute().'card_delete', Util::addRoute())}}" class="btn btn-default margin-top-20 margin-right-10 pull-left"><i class="glyphicon glyphicon-remove"></i> Warenkorb löschen</a>
<button type="submit" class="btn btn-primary margin-top-20 pull-right"><i class="glyphicon glyphicon-refresh"></i> Warenkorb aktualisieren</button>
<div class="clearfix"></div>
@ -213,7 +213,7 @@
</span>
<a href="{{ route('card_checkout') }}" class="btn btn-primary btn-lg btn-block size-15 mt-4"><i class="fa fa-mail-forward"></i> zur Kasse</a>
<a href="{{ route(Util::getPostRoute().'card_checkout', Util::addRoute()) }}" class="btn btn-primary btn-lg btn-block size-15 mt-4"><i class="fa fa-mail-forward"></i> zur Kasse</a>
</div>
</div>
</div>

View file

@ -1,4 +1,4 @@
@extends('web.layouts.layout')
@extends($user_shop ?'web.user.layouts.layout' : 'web.layouts.layout')
@section('content')

View file

@ -1,4 +1,4 @@
@extends('web.layouts.layout')
@extends($user_shop ?'web.user.layouts.layout' : 'web.layouts.layout')
@section('content')
@ -103,7 +103,7 @@
<!-- CHECKOUT -->
<div class="">
{!! Form::open(['url' => route('card_checkout_final'), 'class' => 'row clearfix', 'id'=>'']) !!}
{!! Form::open(['url' => route(Util::getPostRoute().'card_checkout_final', Util::addRoute()), 'class' => 'row clearfix', 'id'=>'']) !!}

View file

@ -1,4 +1,4 @@
@extends('web.layouts.layout')
@extends($user_shop ?'web.user.layouts.layout' : 'web.layouts.layout')
@section('content')
<section>

View file

@ -1,4 +1,4 @@
@extends('web.layouts.layout')
@extends($user_shop ?'web.user.layouts.layout' : 'web.layouts.layout')
@section('content')

View file

@ -1,4 +1,4 @@
@extends('web.layouts.layout')
@extends($user_shop ?'web.user.layouts.layout' : 'web.layouts.layout')
@section('content')

View file

@ -1,4 +1,4 @@
@extends('web.layouts.layout')
@extends($user_shop ?'web.user.layouts.layout' : 'web.layouts.layout')
@section('content')
<section>

View file

@ -1,5 +1,5 @@
@extends('web.layouts.layout')
@extends($user_shop ?'web.user.layouts.layout' : 'web.layouts.layout')
@section('content')

View file

@ -1,4 +1,4 @@
@extends('web.layouts.layout')
@extends($user_shop ?'web.user.layouts.layout' : 'web.layouts.layout')
@section('content')

View file

@ -1,4 +1,4 @@
@extends('web.layouts.layout')
@extends($user_shop ?'web.user.layouts.layout' : 'web.layouts.layout')
@section('content')

View file

@ -1,4 +1,4 @@
@extends('web.layouts.layout')
@extends($user_shop ?'web.user.layouts.layout' : 'web.layouts.layout')
@section('content')
@ -117,7 +117,7 @@
</div>
<hr>
<div class="shop-item-price text-right">
{!! Form::open(['url' => route('card_add_post', [$product->id]), 'class' => 'mb-0', 'id'=>'']) !!}
{!! Form::open(['url' => route(Util::getPostRoute().'card_add_post', Util::addRoute([$product->id])), 'class' => 'mb-0', 'id'=>'']) !!}
<div class="qty float-left">
<input type="number" value="1" name="quantity" maxlength="3" max="999" min="1"><br>
</div>

View file

@ -1,4 +1,6 @@
@extends('web.layouts.layout')
@extends($user_shop ?'web.user.layouts.layout' : 'web.layouts.layout')
@section('content')
@ -103,7 +105,7 @@
<!-- buttons -->
<div class="shop-item-buttons text-left">
<a href="{{ route('card_add_get', [$product->id, 1, $product->slug]) }}" data-quantity="1" data-product_id="{{ $product->id }}" aria-label="{{ $product->getLang('name') }} zu deinem Warenkorb hinzufügen" class="btn btn-primary btn-xs" rel="nofollow">
<a href="{{ route(Util::getPostRoute().'card_add_get', Util::addRoute([$product->id, 1, $product->slug])) }}" data-quantity="1" data-product_id="{{ $product->id }}" aria-label="{{ $product->getLang('name') }} zu deinem Warenkorb hinzufügen" class="btn btn-primary btn-xs" rel="nofollow">
<i class="fa fa-cart-plus"></i> In den Warenkorb
</a>
<a class="float-right btn btn-primary btn-xs" href="{{ url('/produkte/'.$subsite.'/'.$product->slug) }}">

View file

@ -1,4 +1,4 @@
@extends('web.layouts.layout')
@extends($user_shop ?'web.user.layouts.layout' : 'web.layouts.layout')
@section('content')

View file

@ -1,4 +1,4 @@
@extends('web.layouts.layout')
@extends($user_shop ?'web.user.layouts.layout' : 'web.layouts.layout')
@section('content')

View file

@ -1,4 +1,4 @@
@extends('web.layouts.layout')
@extends($user_shop ?'web.user.layouts.layout' : 'web.layouts.layout')
@section('content')

View file

@ -0,0 +1,79 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>mivita care</title>
<meta name="description" content="" />
<meta name="Author" content="" />
<!-- mobile settings -->
<meta name="viewport" content="width=device-width, maximum-scale=1, initial-scale=1, user-scalable=0" />
<!--[if IE]><meta http-equiv='X-UA-Compatible' content='IE=edge,chrome=1'><![endif]-->
<!-- WEB FONTS : use %7C instead of | (pipe) -->
<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,600%7CRaleway:300,400,500,600,700%7CLato:300,400,400italic,600,700" rel="stylesheet" type="text/css" />
<!-- CORE CSS -->
<!-- REVOLUTION SLIDER -->
<link href="{{ asset('/assets/plugins/slider.revolution/css/extralayers.css') }}" rel="stylesheet" type="text/css" />
<link href="{{ asset('/assets/plugins/slider.revolution/css/settings.css') }}" rel="stylesheet" type="text/css" />
<link href="{{ asset('/assets/css/mystyle.css') }}" rel="stylesheet" type="text/css" />
<link href="{{ asset('/assets/css/custom-style.css') }}" rel="stylesheet" type="text/css" />
<link href="{{ asset('assets/css/custom-forms-v2.css') }}" rel="stylesheet" type="text/css" />
<style type="text/css">
.text-primary {
color:#a5d0a5 !important;
}
div.side-nav ul.list-group-bordered > li.list-group-item.active > a:hover{
color: #fff !important;
}
</style>
</head>
<body class="smoothscroll enable-animation">
@yield('layout-content')
<!-- SCROLL TO TOP -->
<a href="#" id="toTop"></a>
<!-- JAVASCRIPT FILES -->
<script type="text/javascript">var plugin_path = "{{ url('/assets/plugins/').'/' }}"</script>
<script type="text/javascript" src="{{ asset('/assets/plugins/jquery/jquery-2.2.3.min.js') }}"></script>
<script type="text/javascript" src="{{ asset('/assets/js/scripts.js') }}"></script>
<!-- <script type="text/javascript" src="{{ asset('/assets/js/jquery.contact-form.js') }}"></script> -->
<!-- REVOLUTION SLIDER -->
<script type="text/javascript" src="{{ asset('/assets/plugins/slider.revolution/js/jquery.themepunch.tools.min.js') }}"></script>
<script type="text/javascript" src="{{ asset('/assets/plugins/slider.revolution/js/jquery.themepunch.revolution.min.js') }}"></script>
<script type="text/javascript" src="{{ asset('/assets/js/view/demo.revolution_slider.js') }}"></script>
<script>
/** CHECKOUT
** *********************** **/
// New Account show|hide
jQuery("#accountswitch").bind("click", function() {
jQuery('#newaccount').slideToggle(200);
});
// Shipping Address show|hide
jQuery("#shipswitch").bind("click", function() {
jQuery('#shipping').slideToggle(200, function() {
// scroll down to shipping area.
if(jQuery('#shipping').is(":visible")) {
_scrollTo('#shipping', 150);
}
});
});
</script>
</body>
</html>

View file

@ -0,0 +1,62 @@
<div class="alert alert-success bordered-bottom nomargin">
<div class="container">
<div class="row">
<div class="col-md-12"><!-- left text -->
<p class="font-lato weight-400 size-20">
Du möchtest Kontakt aufnehmen?
</p>
{!! $user_shop->info !!}
</div><!-- /left text -->
</div>
</div>
</div>
<!-- /CALLOUT -->
<style>div.row > div img.img-responsive { width: auto } </style>
<!-- FOOTER -->
<footer id="footer">
<div class="container">
<div class="row">
<div class="col-xs-4">
<!-- Footer Logo -->
<img class="footer-logo img-responsive" src="{{asset('/assets/images/logo_mivita.png')}}" alt=""/>
</div>
<div class="col-xs-4">
<!-- Footer Logo -->
<img class="footer-logo img-responsive" src="{{asset('/assets/images/logo_bio.png')}}" alt=""/>
</div>
<div class="col-xs-4">
<!-- Footer Logo -->
<img class="footer-logo img-responsive" src="{{asset('/assets/images/logo_derma.png')}}" alt=""/>
</div>
</div>
</div>
<div class="copyright">
<div class="container">
<ul class="pull-right nomargin list-inline mobile-block">
<li class="{{ Request::is('data_protected') ? ' active' : '' }}"><a
href="{{ url('/data_protected') }}">Datenschutzerklärung</a></li>
<li>&bull;</li>
<li class="{{ Request::is('imprint') ? ' active' : '' }} "><a
href="{{ url('/imprint') }}">Impressum</a></li>
</ul>
&copy; All Rights Reserved, mivita.care
</div>
</div>
</footer>
<!-- /FOOTER -->

View file

@ -0,0 +1,135 @@
<div id="header" class="sticky clearfix">
<style>
#header li.quick-cart .quick-cart-box {
-webkit-box-shadow: 0px 2px 2px 0px rgba(0,0,0,0.3);
-moz-box-shadow: 0px 2px 2px 0px rgba(0,0,0,0.3);
box-shadow: 0px 2px 2px 0px rgba(0,0,0,0.3);
}
#header li.quick-cart .quick-cart-footer > span {
background-color: transparent;
}
.quick-cart-wrapper span.price {
color: #666666;
font-size: 1.1em;
}
.quick-cart-wrapper h5 {
margin-bottom: 5px;
}
#header li.quick-cart .quick-cart-footer {
padding: 10px 10px 10px 10px;
background-color: #ebebeb;
}
#header li.quick-cart .quick-cart-box {
padding-bottom: 0;
}
#header ul.nav-second-main {
margin-top: 25px;
}
@media only screen and (max-width: 992px){
#header ul.nav-second-main
{
margin-top: 0px;
}
}
#header.fixed ul.nav-second-main {
margin-top: 8px;
}
</style>
<!-- TOP NAV -->
<header id="topNav">
<div class="container">
<!-- Mobile Menu Button -->
<button class="btn btn-mobile" data-toggle="collapse" data-target=".nav-main-collapse">
<i class="fa fa-bars"></i>
</button>
<ul class="pull-right nav nav-pills nav-second-main has-topBar">
<!-- QUICK SHOP CART -->
<li class="quick-cart">
<a href="#" style="border: 1px solid #c3c3c3; padding: 10px;">
<span style="position: relative">
<span class="badge badge-success btn-xs badge-corner">{{ Yard::instance('shopping')->count() }}</span>
<i class="fa fa-shopping-cart"></i>
</span>
&nbsp;
@if(Yard::instance('shopping')->count())
<span class="">{{ \Yard::instance('shopping')->subtotal() }} </span>
@endif
</a>
<div class="quick-cart-box" style="display: none;">
<h4>Warenkorb</h4>
<div class="quick-cart-wrapper">
@foreach(Yard::instance('shopping')->content() as $row)
<a href="{{ url('/produkte/alle-produkte/'.$row->options->slug) }}"><!-- cart item -->
@if($row->options->has('image'))
<img src="{{ route('product_image', [$row->options->image]) }}" width="50" height="66" alt="">
@else
<img src="{{ asset('/assets/images/1x1.png') }}" width="50" height="66" alt="">
@endif
<h5>{{ $row->name }}</h5>
<span class="price">{{ $row->qty }}x <strong>{{ $row->price() }} </strong></span>
</a><!-- /cart item -->
@endforeach
</div>
<!-- quick cart footer -->
<div class="quick-cart-footer clearfix">
<div class="text-left">
<strong>Zwischensumme:</strong> <strong class="pull-right">{{ Yard::instance('shopping')->subtotal() }} </strong>
<br>
<em style="font-size: 0.9em">inkl. MwSt. zzgl. Versandkosten</em>
</div>
<a href="{{ route(Util::getPostRoute().'card_show', Util::addRoute()) }}" class="btn btn-primary btn-block mt-3">zum Warenkorb</a>
</div>
</div>
</li>
</ul>
<!-- Logo -->
<a class="logo pull-left" href="{{ url('/') }}">
<img class="fixed_top" src="/assets/images/logo_mivita.png" alt="mivita" />
<img class="fixed_scroll" src="/assets/images/logo_mivita_fixed.png" alt="mivita" />
</a>
<div class="navbar-collapse pull-right nav-main-collapse collapse">
<nav class="nav-main">
<ul id="topMain" class="nav nav-pills nav-main nav-onepage">
<li class="{{ Request::is('/') ? ' active' : '' }}">
<a href="/">
{{ $user_shop->name }} Shop
</a>
</li>
<li class="{{ Request::is('produkte/*') ? ' active' : '' }}">
<a href="{{url('/produkte/alle-produkte')}}/">
Produktwelt
</a>
</li>
</ul>
</nav>
</div>
</div>
</header>
<!-- /Top Nav -->
</div>

View file

@ -0,0 +1,23 @@
@extends('web.user.layouts.application')
@section('layout-content')
@include('web.user.layouts.includes.header')
<!-- wrapper -->
<div id="wrapper">
@yield('content')
<!-- /FOOTER -->
@include('web.user.layouts.includes.footer')
</div>
<!-- /wrapper -->
@endsection

View file

@ -0,0 +1,121 @@
@extends('web.user.layouts.layout')
@section('content')
<style type="text/css">
.tp-caption {
text-shadow: none;
}
</style>
<!-- -->
<section>
<div class="container">
<!-- BORN TO BE A WINNER -->
<article class="row">
<div class="col-md-6">
@if($user_shop->isImage())
<img class="img-responsive" src="{{ url($user_shop->getImage()) }}" alt="">
@else
<h2>{{ $user_shop->title }}</h2>
@endif
<!-- OWL SLIDER -->
<!-- /OWL SLIDER -->
</div>
<div class="col-md-6">
@if($user_shop->isImage())
<h2>{{ $user_shop->title }}</h2>
@endif
{!! $user_shop->copy !!}
</div>
</article>
<!-- /BORN TO BE A WINNER -->
</div>
</section>
<!-- / -->
<!-- -->
<section>
<div class="container">
<!-- FEATURED BOXES 3 -->
<div class="row">
<div class="col-md-4 col-xs-6">
<div class="text-center">
<h3 class="h3">Aloe Vera</h3>
<p class="">Mit höchstem Anspruch arbeiten wir gemeinsam mit der Aloe Vera Farm auf Mallorca
zusammen, die weltweite Qualität der Spitzenklasse garantiert.</p>
<a href="/aloevera">
Mehr
<!-- /word rotator -->
<span class="word-rotator" data-delay="2000">
<span class="items">
<span>lesen</span>
<span>JETZT</span>
</span>
</span><!-- /word rotator -->
<i class="glyphicon glyphicon-menu-right size-12"></i>
</a>
</div>
</div>
<div class="col-md-4 col-xs-6">
<div class="text-center">
<h3 class="h3">Produkte</h3>
<p class="">Hier findest Du einen Überblick über das komplette Premium-Produktsortiment von MIVITA.
Vom hochwertigen Aloe Saft bis zu wohltuender Kosmetik.</p>
<a href="/produkte">
Mehr
<!-- /word rotator -->
<span class="word-rotator" data-delay="2000">
<span class="items">
<span>lesen</span>
<span>JETZT</span>
</span>
</span><!-- /word rotator -->
<i class="glyphicon glyphicon-menu-right size-12"></i>
</a>
</div>
</div>
<div class="col-md-4 col-xs-6">
<div class="text-center">
<h3 class="h3">Vertriebspartner</h3>
<p class="">Werde auch Du ein Vertriebspartner von MIVITA und baue Dir Dein eigenes Geschäft mit
Qualitätsprodukten auf. Wenn Du magst, kannst Du sofort starten ...</p>
<a href="/geschaeftsmodell/karrierechancen">
Mehr
<!-- /word rotator -->
<span class="word-rotator" data-delay="2000">
<span class="items">
<span>lesen</span>
<span>JETZT</span>
</span>
</span><!-- /word rotator -->
<i class="glyphicon glyphicon-menu-right size-12"></i>
</a>
</div>
</div>
</div>
<!-- /FEATURED BOXES 3 -->
</div>
</section>
<!-- / -->
@endsection

312
routes/_web.php Executable file
View file

@ -0,0 +1,312 @@
<?php
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
/* ROUTING FOR CRM / CMS*/
//Route::group(['domain' => '{subdomain}.mivita.local', 'middleware' => 'subdomain'], $RoutesOnlyForExamp);
/* ROUTING the SUBDOMAINS*/
/*
Route::group(['domain' => '{subdomain}.mivita.local'], $RoutesOnlyForExamp);
Route::group(['domain' => 'mivita.local'], $RoutesOnlyForExamp);
*/
/*
*/
Route::get('/data_protected', 'HomeController@legalDataProtected')->name('data_protected');
Route::get('/imprint', 'HomeController@legalImprint')->name('imprint');
Route::get('storage/images/{from}/{slug}', function($from = null, $slug = null) {
if ($from == 'shop'){
$image = \App\Models\UserShop::where('filename', $slug)->first();
$path = storage_path('app/public').'/images/shop'.'/'.$image->filename;
}
if (file_exists($path)) {
return Response::file($path);
}
})->name('storage_images');
Route::domain('mivita.local')->group(function () {
Route::get('/', 'Web\SiteController@index')->name('/');
Route::get('/{site}/{subsite?}/{product_slug?}', 'Web\SiteController@site')->name('site');
Route::get('/card/add/{id}/{quantity?}/{product_slug?}', 'Web\CardController@addToCardGet')->name('card_add_get');
Route::post('/card/add/{id}', 'Web\CardController@addToCardPost')->name('card_add_post');
Route::get('/card/show', 'Web\CardController@showCard')->name('card_show');
Route::get('/card/checkout', 'Web\CardController@checkoutCard')->name('card_checkout');
Route::post('/card/checkout_final', 'Web\CardController@checkoutFinalCard')->name('card_checkout_final');
Route::post('/card/update', 'Web\CardController@updateCard')->name('card_update');
Route::get('/card/remove/{rowId}', 'Web\CardController@removeCard')->name('card_remove');
Route::get('/card/delete', 'Web\CardController@deleteCard')->name('card_delete');
Route::get('product/image/{slug}', function($slug = null)
{
$image = \App\Models\ProductImage::where('slug', $slug)->first();
$path = storage_path('app/public').'/images/product'.'/'.$image->product_id.'/'.$image->filename;
if (file_exists($path)) {
return Response::file($path);
}
})->name('product_image');
});
Route::domain('mein.mivita.local')->group(function () {
Auth::routes();
Route::get('/logout', function(){
Auth::logout();
return Redirect::to('login');
})->name('logout');
Route::get('locale/{locale}', function ($locale) {
\Session::put('locale', $locale);
if(Auth::check()){
$user = Auth::user();
$user->lang = $locale;
$user->save();
}
return redirect()->back();
})->name('locale');
Route::post('/loading/modal', 'HomeController@loadingModal')->name('loading_modal');
Route::get('/', 'HomeController@index')->name('home');
Route::get('/user/update_email_confirm/{token}', 'UserUpdateEmailController@activateMail')->name('user_update_email_confirm');
Route::post('/user/check/mail', 'HomeController@checkMail')->name('user_check_mail');
Route::get('/register/verify/{confirmationCode}', 'HomeController@verify')->name('register_verify');
Route::get('/status/register', 'HomeController@statusRegister')->name('status_register');
Route::get('/status/verify', 'HomeController@statusVerify')->name('status_verify');
Route::get('/status/error', 'HomeController@statusError')->name('status_error');
Route::get('/status/not/found', 'HomeController@notFound')->name('not_found');
Route::group(['middleware' => ['auth']], function()
{
Route::get('storage/{type?}/{file?}', function($type = null, $file = null)
{
if($type == 'xls'){
$path = storage_path("app/export/");
$filename = $file.'.xls';
}
if (file_exists($path.$filename)) {
return Response::download($path.$filename, $filename);
}
})->name('storage');
Route::get('/home', 'HomeController@show')->name('home');
/* Route::get('/user/edit', 'UserController@userEdit')->name('user_edit');
*/
Route::get('/user/edit', 'UserDataController@userEdit')->name('user_edit');
Route::post('/user/edit', 'UserDataController@userEditStore')->name('user_edit');
Route::post('/user/data/store', 'UserDataController@userDataStore')->name('user_data_store');
Route::get('/user/update_password', 'UserUpdatePasswordController@updatePassword')->name('user_update_password');
Route::post('/user/update_password', 'UserUpdatePasswordController@updatePasswordStore')->name('user_update_password');
Route::get('/user/update_password_first', 'UserUpdatePasswordController@updatePasswordFirst')->name('user_update_password_first');
Route::post('/user/update_password_first', 'UserUpdatePasswordController@updatePasswordFirstStore')->name('user_update_password_first');
Route::get('/user/update_email', 'UserUpdateEmailController@index')->name('user_update_email');
Route::post('/user/update_email', 'UserUpdateEmailController@update')->name('user_update_email');
Route::get('/user/delete_account', 'UserDeleteController@deleteAccount')->name('user_delete_account');
Route::post('/user/delete_account', 'UserDeleteController@deleteAccountAction')->name('user_delete_account');
Route::post('/user/data/accepted/form', 'UserDataController@userDataAcceptedForm')->name('user_data_accepted_form');
Route::get('/user/data/free', 'UserDataController@userDataFree')->name('user_data_free');
Route::post('/user/data/free/form', 'UserDataController@userDataFreeForm')->name('user_data_free_form');
Route::get('/user/shop', 'UserShopController@index')->name('user_shop');
Route::post('/user/shop/store', 'UserShopController@store')->name('user_shop_store');
Route::post('/user/shop/register/form', 'UserShopController@userShopRegisterForm')->name('user_shop_register_form');
Route::post('/user/shop/name/check', 'UserShopController@checkUserShopName')->name('user_shop_name_check');
Route::post('/user/shop/upload/image', 'UserShopController@uploadImage')->name('user_shop_upload_image');
Route::get('/user/shop/delete/image', 'UserShopController@deleteImage')->name('user_shop_delete_image');
});
Route::group(['middleware' => ['admin']], function()
{
//translate
Route::get('/admin/translate/all', 'TranslationController@index')->name('admin_translate_all');
Route::get('/admin/translate/all/edit/{lang}/{from?}', 'TranslationController@edit')->name('admin_translate_all_edit');
Route::post('/admin/translate/all/update/{lang}/{from?}', 'TranslationController@update')->name('admin_translate_all_update');
Route::get('/admin/translate/file', 'TranslationFileController@index')->name('admin_translate_file');
Route::get('/admin/translation/file/{file}/{language?}/{langsource?}/{show?}', 'TranslationFileController@edit')->name('admin_translate_file_edit');
Route::post('/admin/translation/file/{file}/{language?}/{langsource?}/{show?}', 'TranslationFileController@update')->name('admin_translate_file_update');
//products
Route::get('admin/product/show', 'ProductController@index')->name('admin_product_show');
Route::post('admin/product/store', 'ProductController@store')->name('admin_product_store');
Route::get('admin/product/edit/{id}', 'ProductController@edit')->name('admin_product_edit');
Route::get('admin/product/delete/{id}', 'ProductController@delete')->name('admin_product_delete');
//products images
Route::post('admin/product/upload/image', 'ProductController@uploadImage')->name('admin_product_upload_image');
Route::get('admin/product/{image_id}/{product_id}', 'ProductController@deleteImage')->name('admin_product_delete_image');
//products categories
Route::get('admin/product/categories', 'CategoryController@index')->name('admin_product_categories');
Route::post('admin/product/category/store', 'CategoryController@store')->name('admin_product_category_store');
Route::get('admin/product/category/delete/{id}', 'CategoryController@delete')->name('admin_product_category_delete');
//products attributes
Route::get('admin/product/attributes', 'AttributeController@index')->name('admin_product_attributes');
Route::post('admin/product/attribute/store', 'AttributeController@store')->name('admin_product_attribute_store');
Route::get('admin/product/attribute/delete/{id}', 'AttributeController@delete')->name('admin_product_attribute_delete');
//Route::get('/admin/products/import', 'ImportProductController@import')->name('admin_product_import');
//leads
Route::get('datatables/leads', 'DataTableController@getLeads')->name('datatables-leads');
Route::get('/admin/leads', 'LeadController@index')->name('admin_leads');
Route::get('/admin/lead/edit/{id}', 'LeadController@edit')->name('admin_lead_edit');
Route::get('/admin/lead/change_mail/{id}', 'UserUpdateEmailController@adminChangeMail')->name('admin_lead_change_mail');
Route::post('/admin/lead/change_mail/{id}', 'UserUpdateEmailController@adminUpdateMail')->name('admin_lead_change_mail');
Route::post('/admin/lead/store', 'LeadController@store')->name('admin_lead_store');
});
//login pages for superadmin
Route::group(['middleware' => ['superadmin']], function() {
//leads
Route::get('/admin/users', 'AdminUserController@index')->name('admin_users');
Route::get('/admin/user/edit/{user_id}', 'AdminUserController@edit')->name('admin_user_edit');
Route::post('/admin/user/store', 'AdminUserController@store')->name('admin_user_store');
Route::get('/admin/user/delete/{user_id}', 'AdminUserController@deleteUser')->name('admin_user_delete');
Route::get('data_table', 'DataTableController@datatable')->name('data_table');
// Route::get('datatables/leads', 'DataTableController@getLeads')->name('datatables-leads');
Route::get('data/table/users', 'DataTableController@getUsers')->name('data_table_users');
});
});
Route::domain('{subdomain}.mivita.local')->group(function () {
Route::group(['middleware' => ['subdomain']], function() {
});
});
/*
//Route::get('/', 'HomeController@index')->name('/');
/*Route::post('/register/data', 'HomeController@register')->name('register_data');
Route::post('/user/check/mail', 'HomeController@checkMail')->name('user_check_mail');
Route::get('/register/verify/{confirmationCode}', 'HomeController@verify')->name('register_verify');
Route::get('/status/register', 'HomeController@statusRegister')->name('status_register');
Route::get('/status/verify', 'HomeController@statusVerify')->name('status_verify');
Route::get('/status/error', 'HomeController@statusError')->name('status_error');
Route::get('/user/update_email_confirm/{token}', 'UpdateEmailController@activateMail')->name('user_update_email_confirm');
*/
/*Route::get('storage/{what}/{path}/{id}/{file_name}', function($what = null, $path = null, $id = null, $file_name = null)
{
$path = storage_path().'/app/'.$path.'/'.$id.'/images/'.$what.'/'.$file_name;
if (file_exists($path)) {
return Response::file($path);
}
});
Route::get('storage/{user_id}/{file_name}', function($user_id = null, $file_name = null)
{
$path = storage_path().'/'.'app'.'/user/' . $user_id . '/verification/' . $file_name;
if (file_exists($path)) {
return Response::file($path);
}
});
*/
/*
use App\Mail\MailResetPassword;
Route::get('/send_test_email', function(){
try {
// Mail::to('kevin.adametz@me.com')->send(new MailResetPassword('asdasd', Auth::user()));
Mail::raw('Sending emails with Mailgun and Laravel is easy!', function($message) {
$message->to('kevin.adametz@me.com', 'Kevin Adametz');
$message->subject('testing Networktrips');
});
} catch (\Exception $e) {
dd($e->getMessage());
}
$fail = Mail::failures();
if(!empty($fail)) throw new \Exception('Could not send message to '.$fail[0]);
});
*/

View file

@ -23,38 +23,29 @@ Route::get('storage/images/{from}/{slug}', function($from = null, $slug = null)
}
})->name('storage_images');
Route::get('product/image/{slug}', function($slug = null)
{
$image = \App\Models\ProductImage::where('slug', $slug)->first();
$path = storage_path('app/public').'/images/product'.'/'.$image->product_id.'/'.$image->filename;
if (file_exists($path)) {
return Response::file($path);
}
})->name('product_image');
Route::domain('mivita.local')->group(function () {
Route::get('/', 'Web\SiteController@index')->name('/');
Route::get('product/image/{slug}', function($slug = null)
{
$image = \App\Models\ProductImage::where('slug', $slug)->first();
$path = storage_path('app/public').'/images/product'.'/'.$image->product_id.'/'.$image->filename;
if (file_exists($path)) {
return Response::file($path);
}
})->name('product_image');
Route::get('/card/add/{id}/{quantity?}/{product_slug?}', 'Web\CardController@addToCardGet')->name('card_add_get');
Route::post('/card/add/{id}', 'Web\CardController@addToCardPost')->name('card_add_post');
Route::get('/card/show', 'Web\CardController@showCard')->name('card_show');
Route::get('/card/checkout', 'Web\CardController@checkoutCard')->name('card_checkout');
Route::post('/card/checkout_final', 'Web\CardController@checkoutFinalCard')->name('card_checkout_final');
Route::post('/card/update', 'Web\CardController@updateCard')->name('card_update');
Route::get('/card/remove/{rowId}', 'Web\CardController@removeCard')->name('card_remove');
Route::get('/card/delete', 'Web\CardController@deleteCard')->name('card_delete');
Route::get('/{site}/{subsite?}/{product_slug?}', 'Web\SiteController@site')->name('site');
Route::get('/card/add/{id}/{quantity?}/{product_slug?}', 'Web\CardController@addToCardGet')->name('base.card_add_get');
Route::post('/card/add/{id}', 'Web\CardController@addToCardPost')->name('base.card_add_post');
Route::get('/card/show', 'Web\CardController@showCard')->name('base.card_show');
Route::get('/card/checkout', 'Web\CardController@checkoutCard')->name('base.card_checkout');
Route::post('/card/checkout_final', 'Web\CardController@checkoutFinalCard')->name('base.card_checkout_final');
Route::post('/card/update', 'Web\CardController@updateCard')->name('base.card_update');
Route::get('/card/remove/{rowId}', 'Web\CardController@removeCard')->name('base.card_remove');
Route::get('/card/delete', 'Web\CardController@deleteCard')->name('base.card_delete');
Route::get('/{site}/{subsite?}/{product_slug?}', 'Web\SiteController@site')->name('base.site');
});
@ -185,11 +176,6 @@ Route::domain('mein.mivita.local')->group(function () {
Route::post('/admin/lead/store', 'LeadController@store')->name('admin_lead_store');
});
//login pages for superadmin
@ -200,13 +186,14 @@ Route::domain('mein.mivita.local')->group(function () {
Route::post('/admin/user/store', 'AdminUserController@store')->name('admin_user_store');
Route::get('/admin/user/delete/{user_id}', 'AdminUserController@deleteUser')->name('admin_user_delete');
Route::get('/admin/shippings', 'ShippingController@index')->name('admin_shippings');
Route::get('/admin/shipping/edit/{shipping_id}', 'ShippingController@edit')->name('admin_shipping_edit');
Route::post('/admin/shipping/store', 'ShippingController@store')->name('admin_shipping_store');
Route::get('/admin/shipping/delete/{shipping_id}', 'ShippingController@deleteUser')->name('admin_shipping_delete');
Route::get('data_table', 'DataTableController@datatable')->name('data_table');
// Route::get('datatables/leads', 'DataTableController@getLeads')->name('datatables-leads');
Route::get('data/table/users', 'DataTableController@getUsers')->name('data_table_users');
});
@ -215,12 +202,22 @@ Route::domain('mein.mivita.local')->group(function () {
/* ROUTING the SUBDOMAINS*/
Route::domain('{sub}.mivita.local')->group(function () {
Route::domain('{subdomain}.mivita.local')->group(function () {
Route::group(['middleware' => ['subdomain']], function() {
Route::get('/', function ($sub) {
die($sub);
});
Route::get('/', 'Web\SiteController@index')->name('');
Route::get('/card/add/{id}/{quantity?}/{product_slug?}', 'Web\CardController@addToCardGet')->name('user.card_add_get');
Route::post('/card/add/{id}', 'Web\CardController@addToCardPost')->name('user.card_add_post');
Route::get('/card/show', 'Web\CardController@showCard')->name('user.card_show');
Route::get('/card/checkout', 'Web\CardController@checkoutCard')->name('user.card_checkout');
Route::post('/card/checkout_final', 'Web\CardController@checkoutFinalCard')->name('user.card_checkout_final');
Route::post('/card/update', 'Web\CardController@updateCard')->name('user.card_update');
Route::get('/card/remove/{rowId}', 'Web\CardController@removeCard')->name('user.card_remove');
Route::get('/card/delete', 'Web\CardController@deleteCard')->name('user.card_delete');
Route::get('/{site}/{subsite?}/{product_slug?}', 'Web\SiteController@site')->name('user.site');
});
});