user shop sites

This commit is contained in:
Kevin Adametz 2019-02-07 17:25:43 +01:00
parent 22a2b4710a
commit dc857e88d5
37 changed files with 2044 additions and 869 deletions

3
.env
View file

@ -5,6 +5,9 @@ APP_KEY=base64:HrWQ9AV3Zt2TU0iq1OeUUpTUaXwNUdh8xHmx7RXTif4=
APP_URL=http://mivita.local/
APP_DOMAIN=mivita.local
APP_PROTOCOL=http://
APP_URL_MAIN=
#APP_URL_MAIN=dev.
APP_URL_CRM=mein.
LOG_CHANNEL=stack

930
.idea/workspace.xml generated

File diff suppressed because it is too large Load diff

View file

@ -4,6 +4,7 @@
namespace App\Http\Controllers;
use App\Http\Controllers\Api\KasController;
use App\Models\UserShop;
use App\Models\UserShopOnSite;
use App\Repositories\UserRepository;
use Auth;
use Input;
@ -25,6 +26,21 @@ class UserShopController extends Controller
public function index()
{
$user = Auth::user();
if ($user->shop && !$user->shop->set_defaults) {
if ($user->account) {
$user->shop->title = $user->account->first_name . " " . $user->account->last_name;
}
if ($user->account) {
$user->shop->contact = $this->generate_contact($user);
} else {
$user->shop->contact = "Deine Straße/Nr • Dein PLZ Ort\nFestnetz: Deine Festnetz-Nummer\nMobil: Deine Mobil-Nummer\nDeine E-Mail-Adresse";
}
$user->shop->accessibility = "Mo-Fr: 9.00 - 19.00 Uhr\nSa-So: 11.00 - 18.00 Uhr";
}
$data = [
'user' => $user,
];
@ -37,24 +53,46 @@ class UserShopController extends Controller
$user = Auth::user();
$data = Input::all();
if(!$user->shop){
if (!$user->shop) {
abort(404);
}
$user->shop->title = $data['title'];;
$user->shop->copy = $data['copy'];
$user->shop->info = $data['info'];
$user->shop->title = $data['title'];
$user->shop->contact = trim(preg_replace('/\s*\n+/',"\n", $data['contact']));
$user->shop->accessibility = trim(preg_replace('/\s*\n+/',"\n", $data['accessibility']));
$user->shop->about = trim(preg_replace('/\s+/', ' ',$data['about']));
$user->shop->active = isset($data['active']) ? true : false;
$user->shop->set_defaults = true;
$user->shop->save();
\Session()->flash('alert-save', true);
$data = [
'user' => $user,
];
return view('user.shop', $data);
return redirect(route('user_shop'));
}
private function generate_contact($user)
{
$ret = "";
$sep = "\n";
$ret = $user->account->street != "" ? $user->account->street : "Deine Straße/Nr";
$ret .= "";
$ret.= $user->account->postal_code != "" ? $user->account->postal_code." " : "Dein PLZ ";
$ret.= $user->account->city != "" ? $user->account->city : "Dein Ort";
$ret.= $sep;
$pre = $user->account->pre_phone_id != "" ? $user->account->pre_phone->phone." " : "";
$ret.= "Festnetz: ".($user->account->phone != "" ? $pre.$user->account->phone : "Deine Festnetz-Nummer");
$ret.= $sep;
$pre = $user->account->pre_mobil_id != "" ? $user->account->pre_mobil->phone." " : "";
$ret.= "Mobil: ".($user->account->mobil != "" ? $pre.$user->account->mobil : "Deine Mobil-Nummer");
$ret.= $sep;
$ret.= $user->email;
return $ret;
}
// Upload FILE -----------------------------------------------------------------------------------------------------------------------
@ -141,6 +179,86 @@ class UserShopController extends Controller
}
public function uploadOnSiteImage(){
$user = Auth::user();
$user_shop_id = Input::get('user_shop_id');
if(!$user->shop || $user->shop->id != $user_shop_id){
abort(404);
}
try {
$image = \App\Services\Slim::getImages('images')[0];
if ( isset($image['output']['data']) )
{
// Base64 of the image
$data = $image['output']['data'];
$file_ex = array( 'image/jpeg' => 'jpg', 'image/png' => 'png');
if (!isset($file_ex[$image['output']['type']])) {
\Session()->flash('alert-danger', 'File is not jpg or png!');
return redirect(route('user_shop'));
}
$ext = $file_ex[$image['output']['type']];
// Original file name
$name = $image['output']['name'];
$name = \App\Services\Slim::sanitizeFileName($name);
$name = uniqid() . '_' . $name;
$data = \Storage::disk('public')->put(
'images/user_shop/'.$user->shop->id.'/'.$name,
$data
);
UserShopOnSite::create([
'user_shop_id' => $user->shop->id,
'filename' => $name,
'original_name' => $image['output']['name'],
'ext' => $ext,
'mine' => $image['output']['type'],
'size' => $image['input']['size']
]);
\Session()->flash('alert-success', "Datei hochgeladen");
return redirect(route('user_shop'));
}
\Session()->flash('alert-danger', "Datei leer");
return redirect(route('user_shop'));
}
catch (Exception $e) {
\Session()->flash('alert-danger', "Fehler".$e);
return redirect(route('user_shop'));
}
}
public function deleteOnSiteImage($image_id, $user_shop_id){
$user = Auth::user();
if(!$user->shop || $user->shop->id != $user_shop_id){
abort(404);
}
$image = UserShopOnSite::findOrFail($image_id);
if($image->user_shop_id == $user_shop_id){
$file = 'images/user_shop/'.$user_shop_id.'/'.$image->filename;
\Storage::disk('public')->delete($file);
$image->delete();
\Session()->flash('alert-success', "Datei gelöscht");
return redirect(route('user_shop'));
}
\Session()->flash('alert-danger', "Datei nicht gefunden");
return redirect(route('user_shop'));
}

View file

@ -0,0 +1,106 @@
<?php
namespace App\Http\Controllers\Web;
use App\Http\Controllers\Controller;
use App\Mail\MailContact;
use GuzzleHttp\Client;
use Input;
use Illuminate\Support\Facades\Mail;
use Util;
use Validator;
class ContactController extends Controller
{
private $GOOGLE_ReCAPTCHA_KEY = "6LeeZosUAAAAAG907fMMqO4BFgsiR4ANDodd8FlU";
private $GOOGLE_ReCAPTCHA_SECRET = "6LeeZosUAAAAADIy2fyR4RG3EuM-Zdz7Pa2Qmb1J";
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
}
public function create()
{
$data = [
'GOOGLE_ReCAPTCHA_KEY' => $this->GOOGLE_ReCAPTCHA_KEY,
'user_shop' => Util::getUserShop(),
];
return view('web.templates.kontakt', $data);
}
public function store()
{
$user_shop = Util::getUserShop();
$rules = array(
'first_name'=>'required',
'last_name'=>'required',
'email'=>'required|email',
'message'=>'required',
'g-recaptcha-response'=>'required|recaptcha',
'accepted_data_protection' => 'required',
);
Validator::extend('recaptcha', function($attribute, $value, $parameters, $validator) {
return $this->reCaptcha_validate($attribute, $value, $parameters, $validator);
});
$validator = Validator::make(Input::all(), $rules);
if ($validator->fails()) {
return back()->withErrors($validator)->withErrors($validator)->withInput(Input::all());
}else{
$contact = [];
$contact['first_name'] = Input::get('first_name');
$contact['last_name'] = Input::get('last_name');
$contact['email'] = Input::get('email');
$contact['phone'] = Input::get('phone');
$contact['subject'] = Input::get('subject');
$contact['message'] = Input::get('message');
if($user_shop){
Mail::to($contact['email'])->bcc([$user_shop->user->email, 'k.adametz@kagado.de'])->send(new MailContact($contact));
}else{
Mail::to($contact['email'])->bcc('k.adametz@kagado.de')->send(new MailContact($contact));
}
$data = [
'user_shop' => Util::getUserShop(),
];
return view('web.templates.contact-final', $data);
}
}
private function reCaptcha_validate($attribute, $value, $parameters, $validator)
{
$client = new Client();
$response = $client->post(
'https://www.google.com/recaptcha/api/siteverify',
['form_params' =>
[
'secret' => $this->GOOGLE_ReCAPTCHA_SECRET,
'response' => $value
]
]
);
$body = json_decode((string)$response->getBody());
return $body->success;
}
}

View file

@ -23,8 +23,12 @@ class SiteController extends Controller
public function index()
{
$products = ['aloe-vera-gel-99', 'aloe-vera-saft-500-ml', 'aloe-vera-lippenbalsam'];
$set_products = ['aloe-vera-cleaner-set', 'aloe-vera-koerper-set', 'aloe-vera-repair-set'];
$data = [
'user_shop' => Util::getUserShop()
'products' => Product::whereIn('slug', $products)->get(),
'set_products' => Product::whereIn('slug', $set_products)->get(),
'user_shop' => Util::getUserShop(),
];
return view('web.index', $data);
}
@ -32,6 +36,8 @@ class SiteController extends Controller
public function site($site, $subsite = false, $product_slug = false)
{
$subsite = trim($subsite, '/');
$product_slug = trim($product_slug, '/');
if($product_slug){
$category = Category::where('slug', $subsite)->where('active', true)->first();

View file

@ -19,6 +19,7 @@ class Kernel extends HttpKernel
\App\Http\Middleware\TrimStrings::class,
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
\App\Http\Middleware\TrustProxies::class,
# \App\Http\Middleware\RemoveExcessWhitespaceMiddleware::class,
];
/**

View file

@ -0,0 +1,29 @@
<?php
namespace App\Http\Middleware;
use Closure;
class RemoveExcessWhitespaceMiddleware
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
$response = $next($request);
$output = $response->getOriginalContent();
$filters = array(
'/<!--([^\[|(<!)].*)/' => '', // Remove HTML Comments (breaks with HTML5 Boilerplate)
'/(?<!\S)\/\/\s*[^\r\n]*/' => '', // Remove comments in the form /* */
'/\s{2,}/' => ' ', // Shorten multiple white spaces
'/(\r?\n)/' => '', // Collapse new lines
'/(\>)\s*(\<)/m' => '$1$2', // Trim Final Whitespace from between html tags
);
$output = preg_replace(array_keys($filters), array_values($filters), $output);
$response->setContent($output);
return $response;
}
}

50
app/Mail/MailContact.php Normal file
View file

@ -0,0 +1,50 @@
<?php
namespace App\Mail;
use App\User;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
use Util;
class MailContact extends Mailable
{
use Queueable, SerializesModels;
public $user_shop;
public $subject;
public $data;
public function __construct($data)
{
$this->data = $data;
$this->user_shop = Util::getUserShop();
$this->subject = __('Anfrage von mivita.care');
if($this->user_shop){
$this->subject = __('Anfrage von '.$this->user_shop->slug.'.mivita.care');
}
}
public function build()
{
$salutation = __('Dear customer').",";
$copy1line = __('Deine Anfrage von mivita.care');
if($this->user_shop){
$copy1line = __('Deine Anfrage von '.$this->user_shop->slug.'.mivita.care');
}
return $this->view('emails.contact')->with([
'salutation' => $salutation,
'copy1line' => $copy1line,
'data' => $this->data,
'copy3line' => __('For further questions we are happy to help you.'),
'greetings' => __('Best regards'),
'sender' => __('your mivita.care team'),
]);
}
}

View file

@ -57,7 +57,6 @@ class ProductImage extends Model
];
}
public function product()
{
return $this->belongsTo('App\Models\Product', 'product_id');

View file

@ -14,11 +14,7 @@ class UserShop extends Model
protected $is_online = NULL;
protected $casts = [
'trans_title' => 'array',
'trans_copy' => 'array',
'trans_info' => 'array',
'featured' => 'array',
];
protected $fillable = [
@ -42,6 +38,10 @@ class UserShop extends Model
return $this->belongsTo('App\User', 'user_id');
}
public function on_sites(){
return $this->hasMany('App\Models\UserShopOnSite', 'user_shop_id', 'id');
}
public function getActiveDateFormat(){
if(!$this->attributes['active_date']){ return ""; }
return Carbon::parse($this->attributes['active_date'])->format(\Util::formatDateTimeDB());
@ -52,7 +52,6 @@ class UserShop extends Model
return Carbon::parse($this->attributes['active_date'])->format("d.m.Y");
}
public function getSubdomain()
{
return config('app.protocol').$this->attributes['slug'].".".config('app.domain');
@ -82,6 +81,28 @@ class UserShop extends Model
}
public function getSubdomainAvailable ()
{
$rCurlHandle = curl_init ( $this->attributes['slug'].".mivita.care" );
curl_setopt ( $rCurlHandle, CURLOPT_CONNECTTIMEOUT, 10 );
curl_setopt ( $rCurlHandle, CURLOPT_HEADER, TRUE );
curl_setopt ( $rCurlHandle, CURLOPT_NOBODY, TRUE );
curl_setopt ( $rCurlHandle, CURLOPT_RETURNTRANSFER, TRUE );
$strResponse = curl_exec ( $rCurlHandle );
curl_close ( $rCurlHandle );
if ( !$strResponse )
{
return FALSE;
}
return TRUE;
}
public function isImage(){
if(empty($this->attributes['filename']) || @$this->attributes['filename'] == null || @$this->attributes['filename'] == ""){

View file

@ -0,0 +1,65 @@
<?php
namespace App\Models;
use Cviebrock\EloquentSluggable\Sluggable;
use Illuminate\Database\Eloquent\Model;
class UserShopOnSite extends Model
{
use Sluggable;
protected $table = 'user_shop_on_sites';
protected $fillable = [
'user_shop_id', 'filename', 'original_name', 'ext', 'mine', 'size'
];
public function sluggable()
{
return [
'slug' => [
'source' => 'original_name'
]
];
}
public function product()
{
return $this->belongsTo('App\Models\UserShop', 'user_shop_id');
}
public function formatBytes($precision = 2)
{
$size = $this->size;
if ($size > 0) {
$size = (int) $size;
$base = log($size) / log(1024);
$suffixes = array(' bytes', ' KB', ' MB', ' GB', ' TB');
return round(pow(1024, $base - floor($base)), $precision) . $suffixes[floor($base)];
} else {
return $size;
}
}
public function isImage(){
if(empty($this->attributes['filename']) || @$this->attributes['filename'] == null || @$this->attributes['filename'] == ""){
return false;
}
if(!\Storage::disk('public')->has('images/shop/'.$this->filename)){
return false;
}
return true;
}
public function getImage(){
if($this->isImage()){
$link = 'images/shop/'.$this->filename;
return '/storage/'.$link.'?=lm='.\Storage::disk('public')->lastModified($link);
}
return false;
}
}

View file

@ -38,10 +38,10 @@ class HTMLHelper
}
public static function getRoleLabel($role_id = 0){
return '<span class="badge badge-pill '.self::getLable($role_id).'">'.self::$roles[$role_id].'</span>';
return '<span class="badge badge-pill '.self::getLabel($role_id).'">'.self::$roles[$role_id].'</span>';
}
public static function getLable($id){
public static function getLabel($id){
switch ($id) {
case 0:
return 'badge-default';

View file

@ -86,7 +86,7 @@ class User extends Authenticatable
* @var array
*/
protected $fillable = [
'name', 'email', 'password', 'token',
'email', 'password', 'token',
];
/**

View file

@ -55,6 +55,13 @@ return [
'url' => env('APP_URL', 'http://mivita.local/'),
'domain' => env('APP_DOMAIN', 'mivita.local'),
'protocol' => env('APP_PROTOCOL', 'http://'),
'pre_url_main' => env('APP_URL_MAIN', ''),
'pre_url_crm' => env('APP_URL_CRM', 'mein.'),
/* 'url_backend' => env('APP_URL', 'http://mivita.local/'),
'url_backend' => env('APP_URL', 'http://mivita.local/'),
'url_backend' => env('APP_URL', 'http://mivita.local/'),
*/
/*

View file

@ -21,16 +21,17 @@ class CreateUserShopsTable extends Migration
$table->string('slug', 40)->unique()->index();
$table->boolean('active')->default(false);
$table->boolean('set_defaults')->default(false);
$table->timestamp('active_date')->nullable();
$table->string('title')->nullable();
$table->text('trans_title')->nullable();
$table->text('copy')->nullable();
$table->mediumText('trans_copy')->nullable();
$table->string('contact')->nullable();
$table->text('info')->nullable();
$table->mediumText('trans_info')->nullable();
$table->string('accessibility')->nullable();
$table->string('about')->nullable();
$table->string('featured')->nullable();
@ -47,7 +48,6 @@ class CreateUserShopsTable extends Migration
->references('id')
->on('users')
->onDelete('cascade');
});
}

View file

@ -0,0 +1,47 @@
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateUserShopOnSitesTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('user_shop_on_sites', function (Blueprint $table) {
$table->increments('id');
$table->unsignedInteger('user_shop_id')->index();
$table->string('filename')->nullable();
$table->string('originalname')->nullable();
$table->string('ext')->nullable();
$table->string('mine')->nullable();
$table->unsignedInteger('size')->nullable();
$table->string('slug')->unique()->index();
$table->timestamps();
$table->foreign('user_shop_id')
->references('id')
->on('user_shops')
->onDelete('cascade');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('user_shop_on_sites');
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View file

@ -180,12 +180,14 @@
"shop_name_error_2":"Shop-Namen müssen 4 bis 20 Zeichen lang sein.",
"shop_name_description":"Dein Shop-Name wird in Deinem Shop angezeigt. Aus Deinem Shop-Namen wird die InternetAdresse (Domain) erstellt, mit der Dein Shop aufgerufen werden kann. Der Shop Name ist später nicht mehr änderbar.",
"save and continue":"speichern und fortfahren",
"shop_title": "Shop Titel",
"shop_title_help": "Gib Deinem Shop einen aussagekräftigen Titel.",
"shop_copy": "Shop Beschreibung",
"shop_copy_help": "Eine Beschreibnung über Dich und den Deinen Shop.",
"shop_info": "Shop Informationen",
"shop_info_help": "Informationen wie Erreichbarkeit",
"shop_title": "Shop Inhaber",
"shop_title_help": "Gib Deinen Namen zum Shop an.",
"shop_contact": "Shop Kontakt",
"shop_contac_help": "Vervollständige Deine Kontaktdaten die im Shop angezeigt werden.",
"shop_accessibility": "Shop Erreichbarkeit",
"shop_accessibility_help": "Gib Deine Erreichbarkeit an.",
"shop_about": "Shop persönlicher Text",
"shop_about_help": "Gib Deinen persönlicher Text über Dich an. (max. 190 Zeichen)",
"Shop details":"Shop Details",
"available":"erreichbar",
"not available":"nicht erreichbar",
@ -196,6 +198,8 @@
"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.",
"shop on site":"Für Dich vor Ort:",
"shop on site copy":"Warst du auf der Aloe Vera Farm auf Mallorca? Lade hier bis zu 6 Bilder von Dir hoch.",
"open your shop": "Eröffne Deinen eigenen mivita-Shop",
"settings your shop":"Deine Shop-Einstellungen",
"":""

View file

@ -12,5 +12,11 @@
'subject_reset' => 'Passwort zurücksetzen',
'booking_copy_1' => 'vielen Dank für Deine Buchung. Die Buchungsdaten kannst Du bereits unter „Meine Buchungen“ in Deinem Account aufrufen. Dort findest Du in den nächsten Tagen auch eine Reisebestätigung sowie eine Rechnung zum Download.',
'booking_copy_2' => 'Bitte beachte dort auch die Frist für die Restzahlung Deiner Reiseleistung. Nur wenn der Restbetrag fristgerecht beglichen wurde, können wir Dir Deinen Reise-Voucher ausstellen. Dazu wirst Du aber vorab nochmal rechtzeitig von uns per Mail informiert. Bis dahin - eine tolle Zeit ...',
'subject_booking' => 'Deine Buchung bei NETWORKTRIPS',
'first_name' => 'Vorname',
'last_name' => 'Nachname',
'email' => 'E-Mail',
'phone' => 'Telefon',
'subject' => 'Betreff',
'message' => 'Nachricht',
);

View file

@ -114,6 +114,8 @@ return [
'old_password' => 'Passwort ist nicht gültig',
'users_update_email' => 'Die E-Mail ist schon zur Änderung eingetragen',
'profanity' => ':attribute ist nicht zulässig',
'recaptcha' => 'google reCaptcha Fehler, bitte versuch es erneut!',
/*
|--------------------------------------------------------------------------
@ -159,6 +161,7 @@ return [
'age' => 'Alter',
'sex' => 'Geschlecht',
'gender' => 'Geschlecht',
'message' => 'Nachricht',
'day' => 'Tag',
'month' => 'Monat',
'year' => 'Jahr',
@ -175,6 +178,8 @@ return [
'size' => 'Größe',
'user_shop_name' => 'Shop Name',
'user_shop_active' => 'Nutzungsbedinungen',
'g-recaptcha-response' => 'google reCaptcha',
'accepted_data_protection' => 'Einwilligung Datenschutzerklärung'
],
];

View file

@ -25,15 +25,11 @@
{{-- @include('user.form') --}}
<div class="text-left mt-3">
<button type="submit" class="btn btn-submit">{{ __('save') }}</button>&nbsp;
<a href="{{ route('admin_users') }}" class="btn btn-default">{{ __('abort') }}</a>
</div>
{!! Form::close() !!}

View file

@ -211,7 +211,7 @@
bgcolor="#f8f8f8" style="margin: 0 auto">
<tr>
<td style="color:#7B7B7E; font-size:14px;">
<br>
<p>
mivita e.K. | Leinfeld 2 | 87755 Kirchhaslach<br>
Telefon: +49 (0) 8333 946 98 90 | Fax: +49 (0) 8333 7268<br>
E-Mail: info@mivita.care<br></p>

View file

@ -0,0 +1,236 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>mivita.care</title>
<style type="text/css">
@import url(https://fonts.googleapis.com/css?family=Roboto);
img {
max-width: 600px;
outline: none;
text-decoration: none;
-ms-interpolation-mode: bicubic;
}
a {
text-decoration: none;
border: 0;
outline: none;
color: #919f7a;
}
a:hover {
color: #b6b600;
}
a img {
border: none;
}
td, h1, h2, h3 {
font-family: "Roboto", Helvetica, Arial, sans-serif;
font-weight: 400;
}
td {
text-align: center;
}
body {
-webkit-font-smoothing: antialiased;
-webkit-text-size-adjust: none;
width: 100%;
height: 100%;
color: #37302d;
background: #ffffff;
font-size: 15px;
line-height: 26px
}
table {
border-collapse: collapse !important;
}
.headline {
color: #37302d;
font-size: 16px;
}
.force-full-width {
width: 100% !important;
}
</style>
<style type="text/css" media="screen">
@media screen {
/*Thanks Outlook 2013! http://goo.gl/XLxpyl*/
td, h1, h2, h3 {
font-family: 'Roboto', 'Helvetica Neue', 'Arial', 'sans-serif' !important;
}
}
</style>
<style type="text/css" media="only screen and (max-width: 480px)">
/* Mobile styles */
@media only screen and (max-width: 480px) {
table[class="w320"] {
width: 320px !important;
}
}
</style>
<!--[if mso]>
<style type="text/css">
body, table, td {
font-family: Helvetica, Arial, sans-serif !important;
}
</style>
<![endif]-->
</head>
<body class="body" style="padding:0; margin:0; display:block; background:#f8f8f8; -webkit-text-size-adjust:none" bgcolor="#f8f8f8">
<div style="display: none; mso-hide: all; width: 0px; height: 0px; max-width: 0px; max-height: 0px; font-size: 0px; line-height: 0px;">
{{ $copy1line }}
</div>
<table align="center" cellpadding="0" cellspacing="0" width="100%" height="100%">
<tr>
<td align="center" valign="top" bgcolor="#f8f8f8" width="100%">
<center>
<br>
<table style="margin: 0 auto;" cellpadding="0" cellspacing="0" width="700" class="w320">
<tr>
<td align="center" valign="top">
<table style="margin: 0 auto;" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td style=" text-align:center;">
<center>
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="">
<tbody class="">
<tr class="">
<td align="center" valign="top" style="font-size: 0px;" class="">
<picture class="">
<img src="https://mein.mivita.care/images/logo_mivita.png" alt="mivita.care" style="border:none" width="230">
</picture>
</td>
</tr>
<tr>
<td><br></td>
</tr>
</tbody>
</table>
</center>
</td>
</tr>
</table>
<table style="margin: 0 auto;" cellpadding="0" cellspacing="0" width="100%"
bgcolor="#ffffff">
<tr>
<td class="headline">
<br><br>
<b>{{ $salutation }} </b>
</td>
</tr>
<tr>
<td>
<center>
<table style="margin: 0 auto;" cellpadding="0" cellspacing="0" width="90%">
<tr>
<td style="color:#37302d;">
<br>
{{ $copy1line }}
<br>
<br>
</td>
</tr>
</table>
</center>
</td>
</tr>
<tr>
<td style="color:#37302d;font-size: 14px;">
<center>
<table style="margin: 0 auto;" cellpadding="0" cellspacing="0" width="90%">
@foreach($data as $key=>$value)
<tr>
<td style="color:#37302d; width: 30%; text-align: right; vertical-align: top;">
{{__('email.'.$key)}}: &nbsp;
</td>
<td style="color:#37302d; text-align: left; vertical-align: top;">
{!! nl2br($value) !!}
</td>
</tr>
@endforeach
</table>
</center>
</td>
</tr>
<tr>
<td style="color:#37302d;font-size: 14px;">
<center>
<table style="margin: 0 auto;" cellpadding="0" cellspacing="0" width="90%">
<tr>
<td style="color:#37302d;">
<br><br>
{{ $copy3line }}
<br><br>
{{ $greetings }} <br><b>{{ $sender }}</b>
<br>
</td>
</tr>
<tr>
<td><br></td>
</tr>
</table>
</center>
</td>
</tr>
</table>
<table style="margin: 0 auto;" cellpadding="0" cellspacing="0" class="force-full-width"
bgcolor="#f8f8f8" style="margin: 0 auto">
<tr>
<td style="color:#7B7B7E; font-size:14px;">
<p>
mivita e.K. | Leinfeld 2 | 87755 Kirchhaslach<br>
Telefon: +49 (0) 8333 946 98 90 | Fax: +49 (0) 8333 7268<br>
E-Mail: info@mivita.care<br></p>
<br>
<a href="https://www.mivita.care" style="color: #7B7B7E; text-decoration: underline;">www.mivita.care</a>
<br>
</td>
</tr>
<tr>
<td style="color:#bbbbbb; font-size:12px;">
<p>Geschäftsinhaber: Alois Ried | Registergericht: Memmingen<br>
Registernummer: HRA 12236 | USt-ID-Nr.: DE 244162340</p>
<a href="{{route('data_protected')}}">Datenschutzerklärung</a> <br>
© 2018 All Rights Reserved <br>
<br>
</td>
</tr>
</table>
</td>
</tr>
</table>
</center>
</td>
</tr>
</table>
</body>
</html>

View file

@ -17,15 +17,21 @@
</div>
<div class="form-group">
<label class="form-label" for="copy">{{ __('shop_copy') }}</label>
{{ Form::textarea('copy', $user->shop->copy , array('placeholder'=>__('shop_copy'), 'class'=>'form-control summernote-small', 'id'=>'copy')) }}
<small class="form-text text-muted">{{ __('shop_copy_help') }}</small>
<label class="form-label" for="contact">{{ __('shop_contact') }}</label>
{{ Form::textarea('contact', $user->shop->contact , array('placeholder'=>__('shop_contact'), 'class'=>'form-control', 'id'=>'contact', 'rows'=>4)) }}
<small class="form-text text-muted">{{ __('shop_contact_help') }}</small>
</div>
<div class="form-group">
<label class="form-label" for="info">{{ __('shop_info') }}</label>
{{ Form::textarea('info', $user->shop->info , array('placeholder'=>__('shop_info'), 'class'=>'form-control summernote-small', 'id'=>'info')) }}
<small class="form-text text-muted">{{ __('shop_info_help') }}</small>
<label class="form-label" for="accessibility">{{ __('shop_accessibility') }}</label>
{{ Form::textarea('accessibility', $user->shop->accessibility , array('placeholder'=>__('shop_accessibility'), 'class'=>'form-control', 'id'=>'accessibility', 'rows'=>2)) }}
<small class="form-text text-muted">{{ __('shop_accessibility_help') }}</small>
</div>
<div class="form-group">
<label class="form-label" for="about">{{ __('shop_about') }}</label>
{{ Form::textarea('about', $user->shop->about , array('placeholder'=>'', 'class'=>'form-control', 'id'=>'about', 'rows'=>2)) }}
<small class="form-text text-muted">{{ __('shop_about_help') }}</small>
</div>
<div class="text-left mt-0 mb-2">
@ -36,13 +42,6 @@
</div>
</div>
<!-- / Description -->
<!-- image files -->
<div class="card mb-4">
@include('user.components.user_shop_image')
</div>
<!-- / image files -->
</div>
<div class="col-md-5 col-xl-4 order-1 order-md-2">
@ -65,16 +64,22 @@
</li>
<li class="list-group-item d-flex justify-content-between align-items-center">
<div class="text-muted">{{ __('Status') }}</div>
<div>
<div class="text-right">
@if($user->shop->getSubdomainStatus())
<span class="badge badge-pill badge-success"><i class="far fa-check"> {{ __('available') }} </i></span>
<span class="badge badge-pill badge-success"><i class="far fa-check"> {{ __('available') }} </i> DNS</span>
@else
<span class="badge badge-pill badge-danger"><i class="far fa-times"> {{ __('not available') }} </i></span>
<span class="badge badge-pill badge-danger"><i class="far fa-times"> {{ __('not available') }} </i> DNS</span>
@endif
@if($user->shop->getSubdomainAvailable())
<span class="badge badge-pill badge-success"><i class="far fa-check"> {{ __('available') }} </i> HTTP</span>
@else
<span class="badge badge-pill badge-danger"><i class="far fa-times"> {{ __('not available') }} </i> HTTP</span>
@endif
</div>
</li>
@if(!$user->shop->getSubdomainStatus())
@if(!$user->shop->getSubdomainStatus() || !$user->shop->getSubdomainAvailable())
<li class="list-group-item d-flex justify-content-between align-items-center">
<small>{{ __('not available copy') }}
<a href="" class="btn icon-btn btn-xs btn-outline-primary">
@ -99,4 +104,24 @@
</div>
</div>
<div class="row">
<div class="col-12">
<div class="card mb-4">
@include('user.components.user_shop_image')
</div>
</div>
</div>
<div class="row">
<div class="col-12">
<div class="card mb-4">
@include('user.components.user_shop_on_site')
</div>
</div>
</div>
<!-- / image files -->

View file

@ -34,7 +34,7 @@
<div class="slim" style="margin:20px auto;"
data-label='<span class="text-green">Foto-Upload</span><br>(Datei suchen oder Drag & Drop)'
data-fetcher="fetch.php"
data-size="550,550"
data-size="400,400"
data-min-size="200,200"
data-max-file-size="10"
data-status-image-too-small="Bild zu klein<br>min. $0 Pixel"

View file

@ -0,0 +1,83 @@
<h6 class="card-header">{{ __('shop on site') }}<br><small>{{ __('shop on site copy') }}</small>
</h6>
<div class="card-body p-3">
<style>
.dz-message {
margin: 2rem 0;
}
.default-style .dz-message {
font-size: 1.1em;
}
</style>
<div class="row">
@if(count($user->shop->on_sites) <= 5)
<div class="col-md-8 col-sm-6">
<div class="row">
@foreach($user->shop->on_sites as $image)
<div class="col-6 col-md-4 text-center" style="border: 1px solid #eee;">
<img class="img-fluid" alt="" src="{{ route('user_shop_image', [$image->slug]) }}">
<br>
<a href="{{ route('user_shop_on_site_delete_image', [$image->id, $user->shop->id]) }}" class="btn btn-sm btn-primary mt-2 mb-2" onclick="return confirm('Bild wirklich löschen?');">Bild löschen</a>
</div>
@endforeach
</div>
</div>
<div class="col-md-4 col-sm-6">
<div class="card">
<div class="card-body">
<form method="POST" action="{{ route('user_shop_on_site_upload_image') }}" accept-charset="UTF-8" class="avatar" enctype="multipart/form-data">
@csrf
<input type="hidden" name="user_shop_id" value="{{$user->shop->id}}">
<div class="slim_holder text-center">
<div class="slim" style="margin:20px auto;"
data-label='<span class="text-green">Foto-Upload</span><br>(Datei suchen oder Drag & Drop)'
data-fetcher="fetch.php"
data-size="600,800"
data-min-size="200,200"
data-max-file-size="10"
data-status-image-too-small="Bild zu klein<br>min. $0 Pixel"
data-status-file-type="Ungültige Datei<br>bitte nur: $0"
data-status-file-size="Die Datei ist zu groß<br>max. $0 MB"
data-button-confirm-label="bestätigen"
data-button-cancel-label="abbrechen"
data-button-confirm-title="bestätigen"
data-button-cancel-title="abbrechen"
data-button-rotate-title="drehen"
data-ratio="3:4">
<input type="file" name="images[]" required />
</div>
<br>
<button class="btn btn-primary" type="submit">Bild speichern</button>
</div>
</form>
</div>
</div>
@else
<div class="col-12">
<div class="row">
@foreach($user->shop->on_sites as $image)
<div class="col-6 col-md-4 text-center" style="border: 1px solid #eee;">
<img class="img-fluid" alt="" src="{{ route('user_shop_image', [$image->slug]) }}">
<br>
<a href="{{ route('user_shop_on_site_delete_image', [$image->id, $user->shop->id]) }}" class="btn btn-sm btn-primary mt-2 mb-2" onclick="return confirm('Bild wirklich löschen?');">Bild löschen</a>
</div>
@endforeach
</div>
</div>
@endif
</div>
</div>
</div>

View file

@ -85,11 +85,11 @@
<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 class="{{ Request::is('datenschutz') ? ' active' : '' }}"><a
href="{{ url('/datenschutz') }}">Datenschutzerklärung</a></li>
<li>&bull;</li>
<li class="{{ Request::is('imprint') ? ' active' : '' }} "><a
href="{{ url('/imprint') }}">Impressum</a></li>
<li class="{{ Request::is('impressum') ? ' active' : '' }} "><a
href="{{ url('/impressum') }}">Impressum</a></li>
</ul>
&copy; All Rights Reserved, mivita.care
</div>

View file

@ -117,7 +117,6 @@
Start
</a>
</li>
<li class="{{ Request::is('aloevera') ? ' active' : '' }}">
<a href="{{url('/aloevera')}}">
Aloe Vera
@ -134,12 +133,11 @@
</a>
</li>
<li class="{{ Request::is('kontakt') ? ' active' : '' }}">
<a href="{{url('/kontakt')}}">
<a href="{{ url('kontakt') }}">
Kontakt
</a>
</li>
</ul>
</nav>
</div>

View file

@ -0,0 +1,119 @@
@extends($user_shop ?'web.user.layouts.layout' : 'web.layouts.layout')
@section('content')
<section class="page-header page-header-xlg parallax parallax-3"
style="background-image:url('/assets/images/vision-min.jpg')">
<div class="overlay dark-1"><!-- dark overlay [1 to 9 opacity] --></div>
<div class="container">
</div>
</section>
<!-- /PAGE HEADER -->
<style>
div.shop-item {
margin-bottom:30px;
border: 1px solid #ddd;
}
div.shop-item > .thumbnail, .thumbnail {
border: none;
}
div.shop-item-summary {
padding: 8px;
}
div.shop-item-summary h2 a {
color: #9aa983;
font-size: 1.2em;
margin: 0 0 10px 0;
}
div.shop-item-buttons {
padding: 0 8px 10px 8px;
}
div.shop-item-buttons .btn-xs{
padding: 4px;
}
.cartContent a.remove_item {
background: transparent;
}
.cartContent .product_name {
font-size: 1.15em;
}
.cartContent .product_name > small {
line-height: 20px;
}
@media only screen and (max-width: 1200px) {
.cartContent .product_name {
padding-bottom: 0;
min-height: 60px;
width: 60%;
}
.cartContent .remove_item {
clear: right;
}
.cartContent .total_price {
width: auto;
padding-top: 30px;
clear: right;
}
.cartContent .item .qty {
float: left;
text-align: left;
}
.cartContent .item.head {
display: none;
}
}
@media only screen and (min-width: 768px) {
.cartContent .total_price {
padding-top: 10px;
}
}
@media only screen and (min-width: 992px) {
.cartContent .total_price {
padding-top: 30px;
}
}
@media only screen and (min-width: 1200px) {
.cartContent .total_price {
padding-top: 10px;
}
}
</style>
<!-- -->
<!-- -->
<section>
<div class="container">
<!-- CHECKOUT FINAL MESSAGE -->
<div class="panel panel-default">
<div class="panel-body">
<h3>Vielen Dank für Deine Anfrage</h3>
<p>
Wir werden uns umgehend bei Dir melden.
</p>
<hr />
<p>
Beste Grüße
<br />
<strong>Dein mivita.care Team </strong>
</p>
</div>
</div>
<!-- /CHECKOUT FINAL MESSAGE -->
</div>
</section>
<!-- / -->
@endsection

View file

@ -12,24 +12,50 @@
</section>
<style>
.plugin-contact-form-error {
background-color: #e68080;
padding: 14px;
border-radius: 8px;
border: 1px solid #da7171;
color: #fff;
.checkbox.error{
color:#b92c28 !important;
}
#plugin-contact-form-success {
background-color: #abbd8b;
padding: 14px;
border-radius: 8px;
border: 1px solid #9eb17e;
color: #fff;
}
</style>
<style type="text/css">
.tp-caption {
text-shadow: none;
}
div.shop-item {
margin-bottom: 30px;
border: 1px solid #ddd;
}
div.shop-item > .thumbnail, .thumbnail {
border: none;
}
div.shop-item-summary {
padding: 8px;
}
div.shop-item-summary h2 a {
color: #9aa983;
font-size: 1.2em;
margin: 0 0 10px 0;
}
div.shop-item-buttons {
padding: 0 8px 10px 8px;
}
div.shop-item-buttons .btn-xs {
padding: 4px;
}
img.avatar {
width: 75%;
max-width: 200px;
border: 6px solid #bbccab;
margin-bottom: 10px;
}
</style>
<!-- /PAGE HEADER -->
<script src='https://www.google.com/recaptcha/api.js'></script>
<!-- -->
<section>
@ -40,109 +66,137 @@
<!-- FORM -->
<div class="col-md-9 col-sm-8">
<h1>Schreibe uns!</strong></h1>
<h1>Schreibe uns!</h1>
<p>Du interessierst Dich für unser Geschäft oder hast Fragen zu den Produkten? Dann freuen wir uns auf eine Nachricht von Dir. Wir werden uns im Anschluss sobald wie möglich bei Dir zurückmelden.</p>
<form role="form" action="contact_form_ajax.php" data-load="submit" method="post"
id="plugin-contact-form">
{!! Form::open(['url' => '/kontakt']) !!}
<div class="row contact-row">
<div class="col-md-6">
<input type="text" class="form-control" id="sender_firstname" name="sender_firstname"
placeholder="Vorname" required>
<div id="error-sender_firstname-required"
class="alert alert-danger plugin-contact-form-error" style="display: none;">
<button type="button" class="close" data-dismiss="alert">×</button>
Bitte geben Sie Ihren Vornamen an.
<div class="form-group">
{!! Form::label('first_name', __('First name').'*') !!}
{!! Form::text('first_name', null, ['class' => 'form-control '.($errors->has('first_name') ? 'error' : ''), 'placeholder'=>__('First name'), 'required']) !!}
</div>
@if ($errors->has('first_name'))
<label for="first_name" class="error text-danger small" style="display: block;">{{ $errors->first('first_name') }}</label>
@endif
</div>
<div class="col-md-6">
<input type="text" class="form-control" id="sender_name" name="sender_name"
placeholder="Nachname" required>
<div id="error-sender_name-required"
class="alert alert-danger plugin-contact-form-error" style="display: none;">
<button type="button" class="close" data-dismiss="alert">×</button>
Bitte geben Sie Ihren Nachnamen an.
</div>
</div>
</div>
<div class="row contact-row">
<div class="col-md-6">
<input type="email" class="form-control" id="sender_email" name="sender_email"
placeholder="E-Mail" required>
<div id="error-sender_email-required"
class="alert alert-danger plugin-contact-form-error" style="display: none;">
<button type="button" class="close" data-dismiss="alert">×</button>
Bitte geben Sie Ihre E-Mail an.
<div class="form-group">
{!! Form::label('last_name', __('Last Name').'*') !!}
{!! Form::text('last_name', null, ['class' => 'form-control '.($errors->has('last_name') ? 'error' : ''), 'placeholder'=>__('Last Name'), 'required']) !!}
</div>
@if ($errors->has('last_name'))
<label for="last_name" class="error text-danger small" style="display: block;">{{ $errors->first('last_name') }}</label>
@endif
</div>
<div class="col-md-6">
<input type="email" class="form-control" id="sender_email_repeat"
name="sender_email_repeat" placeholder="E-Mail wiederholen" required>
<div id="error-sender_email_repeat-required"
class="alert alert-danger plugin-contact-form-error" style="display: none;">
<button type="button" class="close" data-dismiss="alert">×</button>
Bitte geben Sie Ihre E-Mail erneut an.
<div class="form-group">
{!! Form::label('email', __('E-Mail').'*') !!}
{!! Form::email('email', null, ['class' => 'form-control '.($errors->has('email') ? 'error' : ''), 'placeholder'=>__('E-Mail'), 'required']) !!}
</div>
@if ($errors->has('email'))
<label for="last_name" class="error text-danger small" style="display: block;">{{ $errors->first('email') }}</label>
@endif
</div>
<div class="col-md-6">
<div class="form-group">
{!! Form::label('phone', __('Phone')) !!}
{!! Form::text('phone', null, ['class' => 'form-control', 'placeholder'=>__('Phone')]) !!}
</div>
</div>
</div>
<div class="row contact-row">
<div class="col-md-12">
<input type="text" class="form-control" id="sender_subject" name="sender_subject"
placeholder="Betreff" required>
<div id="error-sender_subject-required"
class="alert alert-danger plugin-contact-form-error" style="display: none;">
<button type="button" class="close" data-dismiss="alert">×</button>
Bitte geben Sie einen Betreff an.
<div class="form-group">
{!! Form::label('subject', __('Betreff')) !!}
{!! Form::text('subject', null, ['class' => 'form-control', 'placeholder'=>__('Betreff')]) !!}
</div>
</div>
<div class="col-md-12">
<br>
<textarea class="form-control" name="message" id="message" placeholder="Ihre Nachticht"
rows="6"></textarea>
<div id="error-message-required" class="alert alert-danger plugin-contact-form-error"
style="display: none;">
<button type="button" class="close" data-dismiss="alert">×</button>
Bitte geben Sie eine Nachricht an.
<div class="form-group">
{!! Form::label('message', __('Nachricht*')) !!}
{!! Form::textarea('message', null, ['class' => 'form-control '.($errors->has('message') ? 'error' : ''), 'placeholder'=>__('Ihre Nachticht'), 'required']) !!}
@if ($errors->has('message'))
<label for="last_name" class="error text-danger small" style="display: block;">{{ $errors->first('message') }}</label>
@endif
</div>
</div>
<div class="col-md-12" style="margin-bottom: 10px; margin-top: 10px;">
<label class="checkbox" for="accepted_data_protection">
<input type="checkbox" name="accepted_data_protection"
id="accepted_data_protection">
<i></i> Hiermit willige ich in die im Rahmen der <a target="_blank" href="/datenschutz">Datenschutzerklärung</a>
<div class="col-md-12" style="margin-bottom: 8px; margin-top: 10px;">
<em class="small">* Pflichtpfelder</em>
</div>
<div class="col-md-12" style="margin-bottom: 8px; margin-top: 8px;">
<label class="checkbox {{ ($errors->has('accepted_data_protection') ? 'error' : '') }}" for="accepted_data_protection">
{!! Form::checkbox('accepted_data_protection', 1, false, ['id'=>'accepted_data_protection', 'class' => 'form-control '.($errors->has('accepted_data_protection') ? 'error' : ''), 'required']) !!}
<i></i> Hiermit willige ich in die im Rahmen der <a target="_blank" href="{{ url('datenschutz') }}">Datenschutzerklärung</a>
genannte Datenverarbeitung ein.
</label>
<div id="error-accepted_data_protection-required"
class="alert alert-danger plugin-contact-form-error" style="display: none;">
<button type="button" class="close" data-dismiss="alert">×</button>
Bitte akzeptieren Sie unsere Datenschutzerklärung.
</div>
@if ($errors->has('accepted_data_protection'))
<label for="last_name" class="error text-danger small" style="display: block;">{{ $errors->first('accepted_data_protection') }}</label>
@endif
</div>
</div>
<input type="hidden" id="required" name="required"
value="message,sender_firstname,sender_name,sender_email,sender_email_repeat,sender_subject,accepted_data_protection">
<input type="hidden" id="sender_token" name="sender_token" value="">
<button type="submit" class="btn btn-primary"><i class="fa fa-check"></i> Nachricht senden
<div class="row contact-row">
<div class="col-md-12">
<div class="g-recaptcha" data-sitekey="{{$GOOGLE_ReCAPTCHA_KEY}}"></div>
@if ($errors->has('g-recaptcha-response'))
<label for="recaptcha" class="error text-danger small" style="display: block;">{{ $errors->first('g-recaptcha-response') }}</label>
@endif
</div>
</div>
<button type="submit" class="btn btn-primary"><i class="fa fa-check"></i> Nachricht senden
</button>
</form>
{!! Form::close() !!}
</div> <!-- end col -->
<!-- /FORM -->
<!-- INFO -->
<div class="col-md-3 col-sm-4">
<div class="col-md-3 col-sm-4" style="border-left: 1px solid #ddd;">
@if($user_shop)
<h2 class="text-center">Kontakt</h2>
<p class="text-center">Ich freue mich über Deinen Besuch in meinem MIVITA Onlineshop. Ich bin Deine persönliche Beratung rund um die Produkte und ihrer Anwendung.</p>
<div class="text-center">
@if($user_shop->isImage())
<img class="img-responsive rounded avatar" src="{{ url($user_shop->getImage()) }}" alt="">
@else
<img class="img-responsive rounded avatar" src="{{ asset('assets/images/avatar.png') }}" alt="">
@endif
</div>
<p class="text-center">
@if($user_shop->title)
<strong style="color: #97b085; font-size: 1.1em;">{{ $user_shop->title }}</strong><br>
@endif
@if($user_shop->contact)
{!! nl2br($user_shop->contact) !!}
@endif
<br>
{{ $user_shop->getSubdomain() }}
</p>
@if($user_shop->accessibility)
<p class="text-center">
<strong>Meine Erreichbarkeit:</strong><br>
{!! nl2br($user_shop->accessibility) !!}
</p>
@endif
@else
<h2>Kontakt</h2>
<hr/>
<p>
<span class="block"><strong><i class="fa fa-map-marker"></i> Adresse:<br></strong> mivita e.K.<br>
<span class="block"><strong><i class="fa fa-map-marker"></i> Adresse:<br></strong> mivita e.K.<br>
Leinfeld 2<br>
87755 Kirchhaslach</span>
<span class="block"><strong><i class="fa fa-phone"></i> Telefon:</strong> <a
@ -158,9 +212,11 @@
<span class="block"><strong>Mo. - Fr.:</strong> 9-12 Uhr u. 13-16 Uhr</span>
</p>
</div>
<!-- /INFO -->
@endif
</div>
<!-- /INFO -->
</div>
</div>

View file

@ -0,0 +1,79 @@
<div class="shop-item">
<div class="thumbnail">
<!-- product image(s) -->
<a class="shop-item-image"
href="{{ url('/produkte/'.$subsite.'/'.$product->slug) }}">
@php ($set = 'first')
@foreach($product->images as $image)
@if($image->slug)
@if($set == 'hover')
<img class="img-responsive"
src="{{ route('shop_product_image', [$image->slug]) }}"
alt="{{ $product->getLang('name') }}"/>
@php($set = 'done')
@endif
@if($set == 'first')
<img class="img-responsive"
src="{{ route('shop_product_image', [$image->slug]) }}"
alt="{{ $product->getLang('name') }}"/>
@php($set = 'hover')
@endif
@endif
@endforeach
</a>
<!-- /product image(s) -->
<!-- hover buttons -->
{{--
<div class="shop-option-over">
<a class="btn btn-default add-wishlist" href="#" data-item-id="4" data-toggle="tooltip" title="" data-original-title="Auf die Wunschliste"><i class="fa fa-heart nopadding"></i></a>
</div>
--}}
<!-- /hover buttons -->
<!-- product more info -->
{{-- <div class="shop-item-info">
<span class="label label-success">NEW</span>
</div>--}}
<!-- /product more info -->
</div>
<div class="shop-item-summary text-center ">
<h2 class=""><a
href="{{ url('/produkte/'.$subsite.'/'.$product->slug) }}">{{ $product->getLang('name') }}</a>
</h2>
<!-- rating -->
<div class="shop-item-rating-line">
<div class="rating rating-5 size-13"><!-- rating-0 ... rating-5 --></div>
</div>
<!-- /rating -->
<!-- price -->
<div class="shop-item-price">
{{ $product->getFormattedPrice() }}
</div>
<!-- /price -->
</div>
<!-- buttons -->
<div class="shop-item-buttons text-left">
<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) }}">
<i class="fa fa-list"></i> Details
</a>
</div>
<!-- /buttons -->
</div>

View file

@ -6,22 +6,25 @@
div.shop-item-price > span {
padding: 0;
}
hr {
margin-top: 10px;
margin-bottom: 10px;
}
p {
margin-bottom: 15px;
}
.qty input {
padding: 3px;
margin: 0;
border: #ccc 1px solid;
width: 60px;
margin-right: 3px;
text-align: center;
font-size: 16px;
}
.qty input {
padding: 3px;
margin: 0;
border: #ccc 1px solid;
width: 60px;
margin-right: 3px;
text-align: center;
font-size: 16px;
}
</style>
<section class="page-header page-header-xlg parallax parallax-3"
style="background-image:url('/assets/images/vision-min.jpg')">
@ -31,7 +34,6 @@
</section>
<!-- /PAGE HEADER -->
<!-- -->
<section>
<div class="container">
@ -47,53 +49,38 @@
<div class="col-lg-6 col-sm-6">
@if($product->images->count())
<div class="thumbnail relative margin-bottom-3">
<!--
IMAGE ZOOM
<div class="thumbnail relative margin-bottom-3">
<!-- IMAGE ZOOM data-mode="mouseover|grab|click|toggle" -->
<figure id="zoom-primary" class="zoom" data-mode="mouseover">
<!-- zoom buttton positions available: .bottom-right .bottom-left .top-right .top-left -->
<a class="lightbox bottom-right"
href="{{ route('product_image', [$product->images->first()->slug]) }}"
data-plugin-options='{"type":"image"}'><i
class="glyphicon glyphicon-search"></i></a>
data-mode="mouseover|grab|click|toggle"
-->
<figure id="zoom-primary" class="zoom" data-mode="mouseover">
<!--
zoom buttton
<!-- image Extra: add .image-bw class to force black and white! -->
<img class="img-responsive"
src="{{ route('product_image', [$product->images->first()->slug]) }}"
width="1000" height="1500" alt="{{ $product->getLang('name') }}">
</figure>
positions available:
.bottom-right
.bottom-left
.top-right
.top-left
-->
<a class="lightbox bottom-right"
href="{{ route('product_image', [$product->images->first()->slug]) }}"
data-plugin-options='{"type":"image"}'><i class="glyphicon glyphicon-search"></i></a>
</div>
<!--
image
<!-- Thumbnails (required height:100px) -->
<div data-for="zoom-primary" class="zoom-more owl-carousel owl-padding-3 featured"
data-plugin-options='{"singleItem": false, "autoPlay": false, "navigation": true, "pagination": false}'>
@php ($activ = 'active')
@foreach($product->images as $image)
<a class="thumbnail {{ $activ }}"
href="{{ route('product_image', [$image->slug]) }}">
<img src="{{ route('product_image', [$image->slug]) }}"
height="100" alt=""/>
</a>
@php ($activ = '')
@endforeach
Extra: add .image-bw class to force black and white!
-->
<img class="img-responsive"
src="{{ route('product_image', [$product->images->first()->slug]) }}"
width="1000" height="1500" alt="{{ $product->getLang('name') }}">
</figure>
</div>
<!-- Thumbnails (required height:100px) -->
<div data-for="zoom-primary" class="zoom-more owl-carousel owl-padding-3 featured"
data-plugin-options='{"singleItem": false, "autoPlay": false, "navigation": true, "pagination": false}'>
@php ($activ = 'active')
@foreach($product->images as $image)
<a class="thumbnail {{ $activ }}"
href="{{ route('product_image', [$image->slug]) }}">
<img src="{{ route('product_image', [$image->slug]) }}"
height="100" alt="" />
</a>
@php ($activ = '')
@endforeach
</div>
<!-- /Thumbnails -->
</div>
<!-- /Thumbnails -->
@endif
@ -102,9 +89,11 @@
<!-- ITEM DESC -->
<div class="col-lg-6 col-sm-6">
<!--<div class="pull-right">
{{--
<div class="pull-right">
<a class="btn btn-default add-wishlist" href="#" data-item-id="1" data-toggle="tooltip" title="" data-original-title="Add To Wishlist"><i class="fa fa-heart nopadding"></i></a>
</div>-->
</div>
--}}
<h1 class="small-h1">{{ $product->getLang('name') }}</h1>
{!! $product->getLang('copy') !!}
@ -121,7 +110,8 @@
<div class="qty float-left">
<input type="number" value="1" name="quantity" maxlength="3" max="999" min="1"><br>
</div>
<button class="btn btn-primary">In den Warenkorb</button><br>
<button class="btn btn-primary">In den Warenkorb</button>
<br>
<span style="font-size: 0.7em; color:#999; font-weight: 400;"><em>Lieferzeit: 1-3 Werktage</em></span>
{!! Form::close() !!}
</div>
@ -143,7 +133,7 @@
</small>
</div>
<!-- /ITEM DESC -->
<!-- /ITEM DESC -->
</div>
@ -151,7 +141,8 @@
<div class="col-lg-12 col-sm-12">
<ul id="myTab" class="nav nav-tabs nav-top-border margin-top-40" role="tablist">
<li role="presentation" class="active"><a href="#description" role="tab" data-toggle="tab">Beschreibung</a>
<li role="presentation" class="active"><a href="#description" role="tab"
data-toggle="tab">Beschreibung</a>
</li>
<li role="presentation"><a href="#usage" role="tab" data-toggle="tab">Anwendung</a></li>
<li role="presentation"><a href="#ingredients" role="tab" data-toggle="tab">Inhaltsstoffe</a>
@ -188,7 +179,7 @@
</div>
<!-- /RIGHT COLUMNS -->
</div>
</div>
</div>
</section>
<!-- / -->

View file

@ -1,4 +1,3 @@
@extends($user_shop ?'web.user.layouts.layout' : 'web.layouts.layout')
@ -15,24 +14,29 @@
<style>
div.shop-item {
margin-bottom:30px;
margin-bottom: 30px;
border: 1px solid #ddd;
}
div.shop-item > .thumbnail, .thumbnail {
border: none;
}
div.shop-item-summary {
padding: 8px;
}
div.shop-item-summary h2 a {
color: #9aa983;
font-size: 1.2em;
margin: 0 0 10px 0;
}
div.shop-item-buttons {
padding: 0 8px 10px 8px;
}
div.shop-item-buttons .btn-xs{
div.shop-item-buttons .btn-xs {
padding: 4px;
}
</style>
@ -46,78 +50,13 @@
<div class="col-md-9 col-sm-9 col-md-push-3 col-sm-push-3">
<h1>Produktwelt</h1>
<ul class="shop-item-list row list-inline nomargin">
@foreach($products as $product)
<!-- ITEM -->
<li class="col-lg-4 col-sm-4">
<div class="shop-item">
<div class="thumbnail">
<!-- product image(s) -->
<a class="shop-item-image" href="{{ url('/produkte/'.$subsite.'/'.$product->slug) }}">
@php ($set = 'first')
@foreach($product->images as $image)
@if($set == 'hover')
<img class="img-responsive" src="{{ route('product_image', [$image->slug]) }}" alt="{{ $product->getLang('name') }}"/>
@php($set = 'done')
@endif
@if($set == 'first')
<img class="img-responsive" src="{{ route('product_image', [$image->slug]) }}" alt="{{ $product->getLang('name') }}"/>
@php($set = 'hover')
@endif
@endforeach
</a>
<!-- /product image(s) -->
<!-- hover buttons -->
<!-- <div class="shop-option-over">
<a class="btn btn-default add-wishlist" href="#" data-item-id="4" data-toggle="tooltip" title="" data-original-title="Auf die Wunschliste"><i class="fa fa-heart nopadding"></i></a>
</div>
<!-- /hover buttons -->
<!-- product more info -->
<!-- <div class="shop-item-info">
<span class="label label-success">NEW</span>
</div>
-->
<!-- /product more info -->
</div>
<div class="shop-item-summary text-center ">
<h2 class=""><a href="{{ url('/produkte/'.$subsite.'/'.$product->slug) }}">{{ $product->getLang('name') }}</a></h2>
<!-- rating -->
<div class="shop-item-rating-line">
<div class="rating rating-5 size-13"><!-- rating-0 ... rating-5 --></div>
</div>
<!-- /rating -->
<!-- price -->
<div class="shop-item-price">
{{ $product->getFormattedPrice() }}
</div>
<!-- /price -->
</div>
<!-- buttons -->
<div class="shop-item-buttons text-left">
<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) }}">
<i class="fa fa-list"></i> Details
</a>
</div>
<!-- /buttons -->
</div>
</li>
<!-- /ITEM -->
<!-- ITEM -->
<li class="col-lg-4 col-sm-4">
@include('web.templates.produkte-item')
</li>
<!-- /ITEM -->
@endforeach
</ul>

View file

@ -4,42 +4,86 @@
<div class="row">
<div class="col-md-12"><!-- left text -->
<div class="col-12"><!-- left text -->
<p class="font-lato weight-400 size-20">
Du möchtest Kontakt aufnehmen?
<p class="font-lato weight-300 size-20 nomargin-bottom">
Du möchtest Vertriebspartner werden oder hast Fragen zu unseren Produkten?
</p>
{!! $user_shop->info !!}
<h3>Jetzt Kontakt aufnehmen: <a href="{{url('/kontakt')}}" rel="nofollow" class="btn btn-primary btn-lg">zum Kontakt</a>
</h3>
</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">
<div class="col-md-4">
<!-- Footer Logo -->
<img class="footer-logo img-responsive" src="{{asset('/assets/images/logo_mivita.png')}}" alt=""/>
<img class="footer-logo" src="{{asset('/assets/images/logo_dark.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 class="col-md-4">
<!-- Contact Address -->
<br>
<address>
<ul class="list-unstyled">
@if($user_shop->title)
<li class="footer-sprite title">
<strong style="color: #97b085; font-size: 1.1em;">{{ $user_shop->title }}</strong>
</li>
@endif
@if($user_shop->contact)
<li class="footer-sprite address">
{!! nl2br($user_shop->contact) !!}
</li>
@endif
<li class="footer-sprite">
{{ $user_shop->getSubdomain() }}
</li>
</ul>
</address>
<!-- /Contact Address -->
</div>
<div class="col-xs-4">
<!-- Footer Logo -->
<img class="footer-logo img-responsive" src="{{asset('/assets/images/logo_derma.png')}}" alt=""/>
<div class="col-md-4">
<!-- Links -->
<h4 class="letter-spacing-1">Inhalte</h4>
<ul class="footer-links list-unstyled">
<li class="{{ Request::is('/') ? ' active' : '' }}"><a
href="{{ url('/') }}">Start</a></li>
<li class="{{ Request::is('aloevera') ? ' active' : '' }}"><a
href="{{url('/aloevera')}}">Aloe Vera</a></li>
<li class="{{ Request::is('produkte/*') ? ' active' : '' }}"><a
href="{{url('/produkte/alle-produkte')}}">Produktwelt</a></li>
<li class="{{ Request::is('geschaeftsmodell/*') ? ' active' : '' }}"><a
href="{{url('/geschaeftsmodell/karrierechancen')}}">Karrierechancen</a></li>
<li class="{{ Request::is('kontakt') ? ' active' : '' }}"><a
href="{{url('/kontakt')}}">Kontakt</a></li>
<li class="{{ Request::is('partner') ? ' active' : '' }}"><a
href="{{url('/partner')}}">Partner</a></li>
</ul>
<!-- /Links -->
</div>
</div>
@ -49,11 +93,11 @@
<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 class="{{ Request::is('datenschutz') ? ' active' : '' }}"><a
href="{{ url('/datenschutz') }}">Datenschutzerklärung</a></li>
<li>&bull;</li>
<li class="{{ Request::is('imprint') ? ' active' : '' }} "><a
href="{{ url('/imprint') }}">Impressum</a></li>
<li class="{{ Request::is('impressum') ? ' active' : '' }} "><a
href="{{ url('/impressum') }}">Impressum</a></li>
</ul>
&copy; All Rights Reserved, mivita.care
</div>

View file

@ -107,24 +107,35 @@
<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
Start
</a>
</li>
<li class="{{ Request::is('aloevera') ? ' active' : '' }}">
<a href="{{url('/aloevera')}}">
Aloe Vera
</a>
</li>
<li class="{{ Request::is('produkte/*') ? ' active' : '' }}">
<a href="{{url('/produkte/alle-produkte')}}/">
Produktwelt
</a>
</li>
<li class="{{ Request::is('geschaeftsmodell/*') ? ' active' : '' }}">
<a href="{{url('/geschaeftsmodell/karrierechancen')}} ">
Karrierechancen
</a>
</li>
<li class="{{ Request::is('kontakt') ? ' active' : '' }}">
<a href="{{ url('kontakt') }}">
Kontakt
</a>
</li>
</ul>
</nav>
</div>

View file

@ -7,41 +7,247 @@
.tp-caption {
text-shadow: none;
}
div.shop-item {
margin-bottom: 30px;
border: 1px solid #ddd;
}
div.shop-item > .thumbnail, .thumbnail {
border: none;
}
div.shop-item-summary {
padding: 8px;
}
div.shop-item-summary h2 a {
color: #9aa983;
font-size: 1.2em;
margin: 0 0 10px 0;
}
div.shop-item-buttons {
padding: 0 8px 10px 8px;
}
div.shop-item-buttons .btn-xs {
padding: 4px;
}
img.avatar {
width: 75%;
max-width: 200px;
border: 6px solid #bbccab;
margin-bottom: 10px;
}
</style>
<section class="page-header page-header-xlg parallax parallax-3"
style="background-image:url('assets/images/vision-min.jpg')">
<div class="overlay dark-1"><!-- dark overlay [1 to 9 opacity] --></div>
<div class="container">
<h1>{{ $user_shop->name }} mivita online Shop</h1>
<!-- 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">
<div class="row">
<div class="col-md-9">
<h1>Produktwelt</h1>
<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>
<ul class="shop-item-list row list-inline nomargin">
@foreach($products as $product)
<!-- ITEM -->
<li class="col-lg-4 col-sm-4">
@include('web.templates.produkte-item', ['subsite' => 'alle-produkte'])
</li>
<!-- /ITEM -->
@endforeach
</ul>
<div class="text-center">
<a href="{{url('/produkte')}}" class="btn btn-lg btn-primary ">Alle Produkte anzeigen</a>
</div>
<div class="divider divider-center divider-color"><!-- divider -->
<i class="fa fa-chevron-down"></i>
</div>
<h1>Sparen Sie mit Sets</h1>
<ul class="shop-item-list row list-inline nomargin">
@foreach($set_products as $product)
<!-- ITEM -->
<li class="col-lg-4 col-sm-4">
@include('web.templates.produkte-item', ['subsite' => 'alle-produkte'])
</li>
<!-- /ITEM -->
@endforeach
</ul>
<div class="text-center">
<a href="{{url('/produkte/aktions-sets')}}" class="btn btn-lg btn-primary ">Alle Sets anzeigen</a>
</div>
</div>
<div class="divider divider-center divider-color visible-xs visible-sm"><!-- divider -->
<i class="fa fa-chevron-down"></i>
</div>
<div class="col-md-3" style="border-left: 1px solid #ddd;">
<h2 class="text-center">Willkommen</h2>
<p class="text-center">Ich freue mich über Deinen Besuch in meinem MIVITA Onlineshop. Ich bin Deine persönliche Beratung rund um die Produkte und ihrer Anwendung.</p>
<div class="text-center">
@if($user_shop->isImage())
<img class="img-responsive rounded avatar" src="{{ url($user_shop->getImage()) }}" alt="">
@else
<img class="img-responsive rounded avatar" src="{{ asset('assets/images/avatar.png') }}" alt="">
@endif
</div>
<p class="text-center">
@if($user_shop->title)
<strong style="color: #97b085; font-size: 1.1em;">{{ $user_shop->title }}</strong><br>
@endif
@if($user_shop->contact)
{!! nl2br($user_shop->contact) !!}
@endif
<br>
{{ $user_shop->getSubdomain() }}
</p>
@if($user_shop->accessibility)
<p class="text-center">
<strong>Meine Erreichbarkeit:</strong><br>
{!! nl2br($user_shop->accessibility) !!}
</p>
@endif
@if($user_shop->about)
<div class="divider divider-center divider-color" style="margin: 10px 0;"><!-- divider -->
<i class="fa fa-chevron-down"></i>
</div>
<p class="text-center" style="color: #97b085;">
<em>
{{ $user_shop->about }}
</em>
</p>
@endif
@if($user_shop->on_sites)
<div class="divider divider-center divider-color" style="margin: 10px 0;"><!-- divider -->
<i class="fa fa-chevron-down"></i>
</div>
<h3 class="text-center">Für Dich vor Ort:</h3>
<p class="text-center">Wir waren für Dich vor Ort auf der Aloe Vera Farm auf Mallorca, denn Transparenz ist uns wichtig. So weißt Du genau, wo Deine Produkte herkommen und wie sie produziert werden. Echte Qualität eben.</p>
<div class="clearfix lightbox" data-img-big="1" data-plugin-options='{"delegate": "a", "gallery": {"enabled": true}}'>
@foreach($user_shop->on_sites as $image)
<div class="col-xs-6 col-sm-4 col-md-6" style="padding: 2px;">
<a class="image-hover" href="{{ route('user_shop_image', [$image->slug]) }}">
<img src="{{ route('user_shop_image', [$image->slug]) }}" alt="..." class="img-responsive">
</a>
</div>
@endforeach
</div>
@endif
</div>
</div>
<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">
@if($user_shop->isImage())
<img class="img-responsive" src="{{ url($user_shop->getImage()) }}" alt="">
@else
<h2>{{ $user_shop->title }}</h2>
@endif
<!-- 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">
@if($user_shop->isImage())
<h2>{{ $user_shop->title }}</h2>
@endif
{!! $user_shop->copy !!}
<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 -->
@ -125,4 +331,41 @@
</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

@ -23,7 +23,7 @@ Route::get('storage/images/{from}/{slug}', function($from = null, $slug = null)
}
})->name('storage_images');
Route::get('product/image/{slug}', function($slug = null)
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;
@ -32,9 +32,32 @@ Route::get('product/image/{slug}', function($slug = null)
}
})->name('product_image');
Route::get('/user_shop/image/{slug}', function($slug = null)
{
$image = \App\Models\UserShopOnSite::where('slug', $slug)->first();
$path = storage_path('app/public').'/images/user_shop'.'/'.$image->user_shop_id.'/'.$image->filename;
if (file_exists($path)) {
return Response::file($path);
}
})->name('user_shop_image');
Route::get('/shop/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('shop_product_image');
Route::domain('mivita.local')->group(function () {
//main site
Route::domain(config('app.pre_url_main').config('app.domain'))->group(function () {
Route::get('/datenschutz', 'HomeController@legalDataProtected')->name('datenschutz');
Route::get('/impressum', 'HomeController@legalImprint')->name('impressum');
Route::get('/kontakt', 'Web\ContactController@create')->name('contact_create');
Route::post('/kontakt', 'Web\ContactController@store')->name('contact_store');
Route::get('/', 'Web\SiteController@index')->name('/');
Route::get('/card/add/{id}/{quantity?}/{product_slug?}', 'Web\CardController@addToCardGet')->name('base.card_add_get');
@ -49,8 +72,9 @@ Route::domain('mivita.local')->group(function () {
});
/* ROUTING FOR CRM / CMS*/
Route::domain('mein.mivita.local')->group(function () {
Route::domain(config('app.pre_url_crm').config('app.domain'))->group(function () {
Auth::routes();
Route::get('/logout', function(){
@ -132,6 +156,10 @@ Route::domain('mein.mivita.local')->group(function () {
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');
//products images
Route::post('/user/shop_on_site/upload/image', 'UserShopController@uploadOnSiteImage')->name('user_shop_on_site_upload_image');
Route::get('/user/shop_on_site/{image_id}/{user_shop_id}', 'UserShopController@deleteOnSiteImage')->name('user_shop_on_site_delete_image');
});
Route::group(['middleware' => ['admin']], function()
@ -146,21 +174,21 @@ Route::domain('mein.mivita.local')->group(function () {
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');
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');
Route::post('/admin/product/upload/image', 'ProductController@uploadImage')->name('admin_product_upload_image');
Route::get('/admin/product/upload/delete/{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');
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/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');
@ -193,22 +221,23 @@ Route::domain('mein.mivita.local')->group(function () {
Route::get('/admin/shipping/price/delete/{price_id}', 'ShippingController@deletePrice')->name('admin_shipping_price_delete');
Route::get('/admin/shipping/country/delete/{price_id}', 'ShippingController@deleteCountry')->name('admin_shipping_country_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');
});
});
/* ROUTING the SUBDOMAINS*/
Route::domain('{subdomain}.mivita.local')->group(function () {
Route::domain('{subdomain}.'.config('app.domain'))->group(function () {
Route::group(['middleware' => ['subdomain']], function() {
Route::get('/datenschutz', 'HomeController@legalDataProtected')->name('datenschutz');
Route::get('/impressum', 'HomeController@legalImprint')->name('impressum');
Route::get('/kontakt', 'Web\ContactController@create')->name('contact_create');
Route::post('/kontakt', 'Web\ContactController@store')->name('contact_store');
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');
@ -221,7 +250,6 @@ Route::domain('{subdomain}.mivita.local')->group(function () {
Route::get('/{site}/{subsite?}/{product_slug?}', 'Web\SiteController@site')->name('user.site');
});
});