Tree Travel Guide

This commit is contained in:
Kevin Adametz 2019-07-20 15:55:00 +02:00
parent a1ca534f55
commit 1f340e96fa
78 changed files with 4133 additions and 1027 deletions

8
.env
View file

@ -53,6 +53,7 @@ MAIL_BBC=kevin@adametz.media
MAIL_FEWO_EMPLOYEE=kevin@adametz.media
#MAIL_FEWO_EMPLOYEE=katrin.nikolai@stern-tours.de,gerda.fritsch@stern-tours.de
#MAIL_BBC=kontakt@stern-tours.de,thomas.stern@stern-tours.de
MAIL_FROM_ADDRESS=info@mein.sterntours.de
MAIL_DRIVER=smtp
MAIL_HOST=mail.your-server.de
MAIL_PORT=587
@ -60,6 +61,13 @@ MAIL_USERNAME=info@mein.sterntours.de
MAIL_PASSWORD=B7f8Ojt98v6tMz8W
MAIL_ENCRYPTION=TLS
#MAIL_FROM_ADDRESS=stern@stern-tours.de
#MAIL_HOST=zimbra.managedemail.de
#MAIL_PORT=587
#MAIL_USERNAME=stern@stern-tours.de
#MAIL_PASSWORD=bMzG8aYHjTCN0IsKCp
#MAIL_ENCRYPTION=TLS
PUSHER_APP_ID=
PUSHER_APP_KEY=

1077
.idea/workspace.xml generated

File diff suppressed because it is too large Load diff

View file

@ -5,7 +5,7 @@ namespace PHPSTORM_META {
/**
* PhpStorm Meta file, to provide autocomplete information for PhpStorm
* Generated on 2019-06-13 19:39:51.
* Generated on 2019-07-19 16:17:57.
*
* @author Barry vd. Heuvel <barryvdh@gmail.com>
* @see https://github.com/barryvdh/laravel-ide-helper

View file

@ -3,7 +3,7 @@
/**
* A helper file for Laravel 5, to provide autocomplete information to your IDE
* Generated for Laravel 5.6.39 on 2019-06-13 19:39:50.
* Generated for Laravel 5.6.39 on 2019-07-19 16:17:36.
*
* This file should not be included in your code, only analyzed by your IDE!
*

View file

@ -313,7 +313,7 @@ namespace App\Models{
* @property string $equipment
* @property string $adress1
* @property string $adress2
* @property string $zip_code
* @property string $zipcode
* @property string $city
* @property int $maximum_persons
* @property float $deposit
@ -328,6 +328,7 @@ namespace App\Models{
* @package App\Models
* @mixin \Eloquent
* @property string|null $single_name
* @property string $zip_code
* @property int|null $maximum_adults
* @property int|null $maximum_childs
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoLodging newModelQuery()
@ -391,6 +392,7 @@ namespace App\Models{
* @property int|null $tree_root
* @property int|null $parent_id
* @property string|null $real_url_path
* @property int|null $travel_guide_content_id
* @property string|null $box_body
* @property string|null $box_image_url
* @property string|null $box_star
@ -441,6 +443,7 @@ namespace App\Models{
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelPageGuide whereTemplate($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelPageGuide whereTextRight($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelPageGuide whereTitle($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelPageGuide whereTravelGuideContentId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelPageGuide whereTravelProgram($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelPageGuide whereTreeRoot($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelPageGuide whereUpdatedAt($value)
@ -448,6 +451,54 @@ namespace App\Models{
class TravelPageGuide extends \Eloquent {}
}
namespace App\Models{
/**
* App\Models\IQContentTreeNode
*
* @property int $id
* @property int $tree_id
* @property int|null $parent_id
* @property int $lvl
* @property string $name
* @property string $identifier
* @property string $slug
* @property string|null $description
* @property array|null $settings
* @property int $pos
* @property int $active
* @property \Illuminate\Support\Carbon|null $created_at
* @property \Illuminate\Support\Carbon|null $updated_at
* @property \Illuminate\Support\Carbon|null $deleted_at
* @property-read \App\Models\IQContentTree $iq_content_tree
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\IQContentTreeNode[] $iq_content_tree_node_childs
* @property-read \App\Models\IQContentTreeNode|null $iq_content_tree_node_parent
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTreeNode findSimilarSlugs($attribute, $config, $slug)
* @method static bool|null forceDelete()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTreeNode newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTreeNode newQuery()
* @method static \Illuminate\Database\Query\Builder|\App\Models\IQContentTreeNode onlyTrashed()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTreeNode query()
* @method static bool|null restore()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTreeNode whereActive($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTreeNode whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTreeNode whereDeletedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTreeNode whereDescription($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTreeNode whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTreeNode whereIdentifier($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTreeNode whereLvl($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTreeNode whereName($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTreeNode whereParentId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTreeNode wherePos($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTreeNode whereSettings($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTreeNode whereSlug($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTreeNode whereTreeId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTreeNode whereUpdatedAt($value)
* @method static \Illuminate\Database\Query\Builder|\App\Models\IQContentTreeNode withTrashed()
* @method static \Illuminate\Database\Query\Builder|\App\Models\IQContentTreeNode withoutTrashed()
*/
class IQContentTreeNode extends \Eloquent {}
}
namespace App\Models{
/**
* App\Models\TravelNationalityRequirement
@ -1078,9 +1129,11 @@ namespace App\Models{
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page whereTreeRoot($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page whereUpdatedAt($value)
* @mixin \Eloquent
* @property int|null $travel_guide_content_id
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page query()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page whereTravelGuideContentId($value)
*/
class Page extends \Eloquent {}
}
@ -1403,9 +1456,11 @@ namespace App\Models{
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Feedback whereTreeRoot($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Feedback whereUpdatedAt($value)
* @mixin \Eloquent
* @property int|null $travel_guide_content_id
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Feedback newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Feedback newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Feedback query()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Feedback whereTravelGuideContentId($value)
*/
class Feedback extends \Eloquent {}
}
@ -1601,6 +1656,46 @@ namespace App\Models{
class TravelUser extends \Eloquent {}
}
namespace App\Models{
/**
* App\Models\IQContentTree
*
* @property int $id
* @property string $name
* @property string $identifier
* @property string $slug
* @property string|null $description
* @property array|null $settings
* @property int $pos
* @property int $active
* @property \Illuminate\Support\Carbon|null $created_at
* @property \Illuminate\Support\Carbon|null $updated_at
* @property \Illuminate\Support\Carbon|null $deleted_at
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\IQContentTreeNode[] $iq_content_tree_nodes
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTree findSimilarSlugs($attribute, $config, $slug)
* @method static bool|null forceDelete()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTree newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTree newQuery()
* @method static \Illuminate\Database\Query\Builder|\App\Models\IQContentTree onlyTrashed()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTree query()
* @method static bool|null restore()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTree whereActive($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTree whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTree whereDeletedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTree whereDescription($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTree whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTree whereIdentifier($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTree whereName($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTree wherePos($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTree whereSettings($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTree whereSlug($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTree whereUpdatedAt($value)
* @method static \Illuminate\Database\Query\Builder|\App\Models\IQContentTree withTrashed()
* @method static \Illuminate\Database\Query\Builder|\App\Models\IQContentTree withoutTrashed()
*/
class IQContentTree extends \Eloquent {}
}
namespace App\Models{
/**
* App\Models\SfGuardUser

View file

@ -4,6 +4,8 @@ namespace App\Http\Controllers\CMS;
use App\Http\Controllers\Controller;
use App\Models\IQContentTree;
use App\Models\IQContentTreeNode;
use App\Models\TravelGuide;
use App\Models\TravelPageGuide;
use AppBundle\Util;
@ -47,12 +49,16 @@ class CMSTravelGuideController extends Controller
public function page()
{
//make tree
$data = [
'travel_guide_pages' => TravelPageGuide::getPageGuides(),
];
return view('cms.travel_guide.page', $data);
}
public function detail($id)
{
if($id == "new") {
@ -78,7 +84,6 @@ class CMSTravelGuideController extends Controller
}
public function cleanHTML($html)
{

View file

@ -0,0 +1,274 @@
<?php
namespace App\Http\Controllers\IQ;
use App\Http\Controllers\Controller;
use App\Models\IQContentArea;
use App\Models\IQContentAreaSection;
use App\Models\IQContentModel;
use App\Models\IQContentModelField;
use App\Models\IQContentSite;
use App\Models\IQContentTree;
use App\Models\IQContentTreeNode;
use Illuminate\Database\Eloquent\Collection;
use Request;
use Input;
class ContentModalController extends Controller
{
/**
* ContentSiteController constructor.
*/
public function __construct()
{
// $this->middleware('auth');
}
/**
* @return \Illuminate\Http\JsonResponse
* @throws \Throwable
* data = id, model, action, request
*/
public function load()
{
if(\Request::ajax()){
$data = Input::all();
$ret = "";
if(isset($data['model']) && isset($data['id']) ){
switch ($data['model']){
case 'model' :
$ret = $this->loadModal($data);
break;
case 'area' :
$ret = $this->loadModal($data);
break;
case 'media' :
break;
case 'site' :
$ret = $this->loadModal($data);
break;
case 'tree' :
$ret = $this->loadModal($data);
break;
}
}
return response()->json(['response' => $data, 'html'=>$ret]);
}
}
private function loadModal($data)
{
if(isset($data['action'])){
switch ($data['action']){
case 'model-content' :
return $this->actionModelContent($data);
break;
case 'model-field' :
return $this->actionModelField($data);
break;
case 'model-field-details' :
return $this->actionModelFieldDetail($data);
break;
case 'area-content' :
return $this->actionArea($data);
break;
case 'area-section' :
return $this->actionAreaSection($data);
break;
case 'site-content' :
return $this->actionSiteContent($data);
break;
case 'tree-content' :
return $this->actionTreeContent($data);
break;
case 'tree-node' :
return $this->actionTreeNode($data);
break;
case 'tree-site-content' :
return $this->actionTreeSiteContent($data);
break;
}
}
}
/*
* Model
*/
private function actionModelContent($data)
{
if($data['id'] == "add"){
$value = new IQContentModel();
$value->id = "add";
$value->active = true;
$data['title'] = "Add Model";
}else {
$value = IQContentModel::findOrFail($data['id']);
$data['title'] = "Edit Model: ".$value->name;
}
$url = route('iq_content_model_detail', [$value->id]);
return view("iq.modal.content", compact('data','value', 'url') )->render();
}
private function actionModelField($data)
{
$value = new Collection();
$value->id = $data['id'];
if(isset($data['request']['model_id'])){
$model = IQContentModel::findOrFail($data['request']['model_id']);
return view("iq.modal.model-field", compact('data','value', 'model') )->render();
}
return view("iq.modal.model-field", compact('data','value') )->render();
}
private function actionModelFieldDetail($data)
{
if(!isset($data['request']['model_id'])){
//need 404 error page
}
$model = IQContentModel::findOrFail($data['request']['model_id']);
$data['field'] = '';
switch ($data['request']['field']){
case 'text' :
$data['field'] = 'Long Text';
//return $this->actionContent($data);
break;
case 'string' :
$data['field'] = 'Short Text';
//return $this->actionField($data);
break;
case 'media' :
$data['field'] = 'Media';
//return $this->actionFieldDetail($data);
break;
}
if($data['id'] == "add"){
$value = new IQContentModelField();
$value->id = "add";
$value->active = true;
}else {
$value = IQContentModelField::findOrFail($data['id']);
}
return view("iq.modal.model-field-detail", compact('data','value', 'model') )->render();
}
/*
* Area
*/
private function actionArea($data)
{
if($data['id'] == "add"){
$value = new IQContentArea();
$value->id = "add";
$value->active = true;
$data['title'] = "Add Area";
}else {
$value = IQContentArea::findOrFail($data['id']);
$data['title'] = "Edit Area: ".$value->name;
}
$url = route('iq_content_area_detail', [$value->id]);
return view("iq.modal.content", compact('data','value', 'url') )->render();
}
private function actionAreaSection($data)
{
$model = IQContentArea::findOrFail($data['request']['area_id']);
if($data['id'] == "add"){
$value = new IQContentAreaSection();
$value->id = "add";
$value->active = true;
$data['title'] = "Add Section";
}else {
$value = IQContentAreaSection::findOrFail($data['id']);
$data['title'] = "Edit Section: ".$value->name;
}
$url = route('iq_content_area_detail', [$value->id]);
return view("iq.modal.area-section", compact('data','value', 'url', 'model') )->render();
}
/*
* site
*/
private function actionSiteContent($data)
{
if($data['id'] == "add"){
$value = new IQContentSite();
$value->id = "add";
$value->active = true;
$data['title'] = "Add Site";
}else {
$value = IQContentSite::findOrFail($data['id']);
$data['title'] = "Edit Site: ".$value->name;
}
$url = route('iq_content_site_detail', [$value->id]);
return view("iq.modal.site", compact('data','value', 'url') )->render();
}
/*
* tree
*/
private function actionTreeContent($data)
{
if($data['id'] == "add"){
$value = new IQContentTree();
$value->id = "add";
$value->active = true;
$data['title'] = "Add Tree";
}else {
$value = IQContentTree::findOrFail($data['id']);
$data['title'] = "Edit Tree: ".$value->name;
}
$url = route('iq_content_tree_detail', [$value->id]);
return view("iq.modal.content", compact('data','value', 'url') )->render();
}
private function actionTreeNode($data)
{
$model = IQContentTree::findOrFail($data['request']['tree_id']);
if($data['id'] == "add"){
$value = new IQContentTreeNode();
$value->id = "add";
$value->active = true;
$data['title'] = "Add Node";
}else {
$value = IQContentTreeNode::findOrFail($data['id']);
$data['title'] = "Edit Node: ".$value->name;
}
$url = route('iq_content_tree_detail', [$model->id]);
return view("iq.modal.tree-node", compact('data','value', 'url', 'model') )->render();
}
private function actionTreeSiteContent($data)
{
if($data['id'] == "add"){
$value = new Collection();
$value->active = true;
$value->id = 'add';
$data['title'] = "Seite hinzufügen";
}else {
$value = new Collection();
$data['title'] = "Edit Site: ".$value->name;
}
$url = route('iq_content_tree_detail', [$data['request']['tree_id'], $data['request']['tree_node_id']]);
$data['request'] = false;
return view("iq.modal.site", compact('data','value', 'url') )->render();
}
}

View file

@ -0,0 +1,257 @@
<?php
namespace App\Http\Controllers\IQ;
use App\Http\Controllers\Controller;
use App\Models\IQContentTree;
use App\Models\IQContentTreeNode;
use App\Models\TravelGuide;
use App\Models\TravelPageGuide;
use App\Repositories\IQ\ContentSiteRepository;
use Illuminate\Http\Request;
use Input;
use Validator;
class ContentTreeController extends Controller
{
protected $contentSiteRepo;
/**
* ContentSiteController constructor.
*/
public function __construct(ContentSiteRepository $contentSiteRepo)
{
$this->middleware('admin');
$this->contentSiteRepo = $contentSiteRepo;
}
/**
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
*/
public function index()
{
$data = [
'models' => IQContentTree::all(),
];
return view('cms.travel_guide.tree', $data);
}
public function detail($id, $node_id = false, $area_section_id = false)
{
$model = IQContentTree::findOrFail($id);
$tree_node = IQContentTreeNode::find($node_id);
$area_section = false;
$site_fields = false;
if($area_section_id){
/*
* $area_section = IQContentAreaSection::findOrFail($area_section_id);
$site_fields = $this->contentSiteRepo->siteFieldPrepare($tree_node->iq_content_site, $area_section);
*/
}
$data = [
'model' => $model,
'area_section' => $area_section,
'site_fields' => $site_fields,
'tree_node' => $tree_node,
'id' => $id,
];
return view('cms.travel_guide.tree-detail', $data);
}
public function repair($id=1){
$model = IQContentTree::findOrFail($id);
$travel_guide_pages = TravelPageGuide::getPageGuides($model->root_id);
$page_parent_id = [];
$pos = 1;
$tree_node = new IQContentTreeNode();
foreach ($travel_guide_pages as $guide_page){
$slug = $guide_page->slug;
if(TravelGuide::whereSlug($slug)->count()){
$slug = "";
}
//make travel Guide
$description = substr($guide_page->description, 0, 255);
$description = substr($guide_page->description, 0, strrpos($description, " "));
$keywords = substr($guide_page->keywords, 0, 255);
$keywords = substr($guide_page->keywords, 0, strrpos($keywords, " "));
$data = [
'active' => $guide_page->status ? true : false,
'scope' => false,
'name' => $guide_page->title,
'slug' => $slug,
'text' => "page_id:".$guide_page->id,
'full_text' => $guide_page->content_new,
'keyword' => $guide_page->keyword,
'meta_title' => $guide_page->pagetitle,
'meta_description' => $description,
'meta_keywords' => $keywords,
];
$TravelGuide = TravelGuide::create($data);
if(!isset($page_parent_id[$guide_page->parent_id])){
$page_parent_id[$guide_page->parent_id] = $tree_node->id;
}
if($guide_page->lvl == 1){
$pos = 0;
$parent_id = null;
}else{
$pos++;
$parent_id = $page_parent_id[$guide_page->parent_id];
}
$lvl = $guide_page->lvl-1;
//make tree node
$tree_data = [
'tree_id' => $model->id,
'parent_id' => $parent_id,
'lvl' => $lvl,
'name' => $guide_page->title,
'identifier' => $guide_page->slug,
'settings' => "page_id:".$guide_page->id,
'pos' => $pos,
'active' => $guide_page->status ? true : false,
];
$tree_node = IQContentTreeNode::create($tree_data);
$TravelGuide->tree_node_id = $tree_node->id;
$TravelGuide->save();
if($guide_page->travel_guide_content_id > 0){
$TravelGuide = TravelGuide::find($guide_page->travel_guide_content_id);
if($TravelGuide){
$TravelGuide->tree_node_id = $tree_node->id;
$TravelGuide->save();
}
}
}
die("--");
}
public function store($id, $node_id = false, $area_section_id = false)
{
$data = Input::all();
//new sort
if(isset($data['nestable-output'])){
$model = IQContentTree::findOrFail($id);
$model->updated_at = now();
$model->save();
$this->saveNestableOutput($model, json_decode($data['nestable-output']));
\Session()->flash('alert-save', '1');
return redirect(route('iq_content_tree_detail', [$model->id]));
}
if(isset($data['iq_content_site_field']) && is_array($data['iq_content_site_field'])){
$model = IQContentTree::findOrFail($id);
$model->updated_at = now();
$model->save();
$this->contentSiteRepo->storeContentSideFields($data['iq_content_site_field']);
\Session()->flash('alert-save', '1');
return redirect(route('iq_content_tree_detail', [$model->id, $node_id, $area_section_id]));
}
$rules = array(
'name' => 'required',
);
$validator = Validator::make(Input::all(), $rules);
if ($validator->fails()) {
return back()->withErrors($validator);
}
$data['user_id'] = \Auth::user()->id;
$data['active'] = isset($data['active']) ? true : false;
$data['search'] = isset($data['search']) ? true : false;
if (isset($data['action'])) {
switch ($data['action']) {
case 'tree-content' :
if($data['id'] == 0){
$model = IQContentTree::create($data);
}else{
$model = IQContentTree::find($data['id']);
$model->fill($data);
$model->save();
}
\Session()->flash('alert-save', '1');
return redirect(route('iq_content_tree_detail', [$model->id]));
break;
case 'tree-node' :
$model = IQContentTree::findOrFail($id);
$model->updated_at = now();
$model->save();
if($data['id'] == 0){
$tree_node = IQContentTreeNode::create($data);
}else{
$tree_node = IQContentTreeNode::find($data['id']);
$tree_node->fill($data);
$tree_node->save();
}
\Session()->flash('alert-save', '1');
return redirect(route('iq_content_tree_detail', [$model->id, $tree_node->id]));
break;
case 'tree-site-content' :
/* if($data['id'] == 0){
$contentSite = IQContentSite::create($data);
}else{
$contentSite = IQContentSite::find($data['id']);
$contentSite->fill($data);
$contentSite->save();
}*/
$model = IQContentTree::findOrFail($id);
$model->updated_at = now();
$model->save();
$tree_node = IQContentTreeNode::findOrFail($node_id);
// $tree_node->site_id = $contentSite->id;
$tree_node->save();
$travel_guide = TravelGuide::findOrFail($data['travel_guide_id']);
$travel_guide->tree_node_id = $tree_node->id;
$travel_guide->save();
\Session()->flash('alert-save', '1');
return redirect(route('iq_content_tree_detail', [$id, $node_id]));
break;
}
}
}
public function remove($id, $node_id, $travel_guide_id){
$model = IQContentTree::findOrFail($id);
$tree_node = IQContentTreeNode::findOrFail($node_id);
$tavel_guide = TravelGuide::findOrFail($travel_guide_id);
$tavel_guide->tree_node_id = null;
$tavel_guide->save();
\Session()->flash('alert-success', __('Seite aus Tree entfernt.'));
return redirect(route('iq_content_tree_detail', [$id, $node_id]));
}
private function saveNestableOutput(IQContentTree $contentTree, $list, $pos=0, $lvl = 0, $parent_id = null){
foreach ($list as $item){
$tree_node = IQContentTreeNode::find($item->id);
$tree_node->lvl = $lvl;
$tree_node->parent_id = $parent_id;
$tree_node->pos = $pos++;
$tree_node->save();
if(isset($item->children)) {
$this->saveNestableOutput($contentTree, $item->children, $pos, $lvl + 1, $tree_node->id);
}
}
}
}

View file

@ -22,6 +22,9 @@ use Illuminate\Database\Eloquent\SoftDeletes;
* @method static \Illuminate\Database\Query\Builder|\App\Models\Account withTrashed()
* @method static \Illuminate\Database\Query\Builder|\App\Models\Account withoutTrashed()
* @mixin \Eloquent
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Account newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Account newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Account query()
*/
class Account extends Model
{

View file

@ -83,6 +83,9 @@ use Illuminate\Database\Eloquent\Model;
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereUpdatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking whereWebsiteId($value)
* @mixin \Eloquent
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Booking query()
*/
class Booking extends Model
{

View file

@ -60,6 +60,9 @@ use Illuminate\Database\Eloquent\Model;
* @property-read \App\Models\Booking $booking
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingDraftItem whereFewoLodgingId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingDraftItem wherePrice($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingDraftItem newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingDraftItem newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\BookingDraftItem query()
*/
class BookingDraftItem extends Model
{

View file

@ -30,6 +30,9 @@ use Illuminate\Database\Eloquent\Model;
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CMSContent whereText($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CMSContent whereUpdatedAt($value)
* @mixin \Eloquent
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CMSContent newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CMSContent newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\CMSContent query()
*/
class CMSContent extends Model
{

View file

@ -27,6 +27,9 @@ use PHPUnit\Framework\Constraint\Count;
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Country wherePhone($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Country whereRu($value)
* @mixin \Eloquent
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Country newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Country newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Country query()
*/
class Country extends Model
{

View file

@ -20,6 +20,9 @@ use Illuminate\Database\Eloquent\Model;
* @mixin \Eloquent
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\DraftItem[] $draft_items
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\TravelProgramDraft[] $travel_program_drafts
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Draft newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Draft newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Draft query()
*/
class Draft extends Model
{

View file

@ -46,6 +46,9 @@ use Illuminate\Database\Eloquent\Model;
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\DraftItem whereService($value)
* @property float|null $price
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\DraftItem wherePrice($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\DraftItem newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\DraftItem newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\DraftItem query()
*/
class DraftItem extends Model
{

View file

@ -21,6 +21,9 @@ use Illuminate\Database\Eloquent\Model;
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\DraftItem[] $draft_items
* @property string|null $color
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\DraftType whereColor($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\DraftType newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\DraftType newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\DraftType query()
*/
class DraftType extends Model
{

View file

@ -95,6 +95,11 @@ use HTMLHelper;
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Feedback whereTreeRoot($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Feedback whereUpdatedAt($value)
* @mixin \Eloquent
* @property int|null $travel_guide_content_id
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Feedback newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Feedback newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Feedback query()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Feedback whereTravelGuideContentId($value)
*/
class Feedback extends Page
{

View file

@ -21,7 +21,7 @@ use Reliese\Database\Eloquent\Model as Eloquent;
* @property string $equipment
* @property string $adress1
* @property string $adress2
* @property string $zip_code
* @property string $zipcode
* @property string $city
* @property int $maximum_persons
* @property float $deposit
@ -35,6 +35,29 @@ use Reliese\Database\Eloquent\Model as Eloquent;
* @property \Illuminate\Database\Eloquent\Collection $travel_user_booking_fewos
* @package App\Models
* @mixin \Eloquent
* @property string|null $single_name
* @property string $zip_code
* @property int|null $maximum_adults
* @property int|null $maximum_childs
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoLodging newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoLodging newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoLodging query()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoLodging whereAdress1($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoLodging whereAdress2($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoLodging whereCalendarVisible($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoLodging whereCity($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoLodging whereDeposit($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoLodging whereDescription($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoLodging whereEquipment($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoLodging whereGroupId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoLodging whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoLodging whereMaximumAdults($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoLodging whereMaximumChilds($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoLodging whereMaximumPersons($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoLodging whereName($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoLodging whereSingleName($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoLodging whereTypeId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoLodging whereZipCode($value)
*/
class FewoLodging extends Model
{
@ -60,7 +83,7 @@ class FewoLodging extends Model
'equipment',
'adress1',
'adress2',
'zip_code',
'zipcode',
'city',
'maximum_persons',
'deposit',

View file

@ -18,6 +18,11 @@ use Illuminate\Database\Eloquent\Model;
* @property \Illuminate\Database\Eloquent\Collection $fewo_lodging_group_images
* @package App\Models
* @mixin \Eloquent
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoLodgingGroup newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoLodgingGroup newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoLodgingGroup query()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoLodgingGroup whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoLodgingGroup whereName($value)
*/
class FewoLodgingGroup extends Model
{

View file

@ -22,6 +22,16 @@ use Illuminate\Database\Eloquent\Model;
* @property \App\Models\FewoLodgingGroup $fewo_lodging_group
* @package App\Models
* @mixin \Eloquent
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoLodgingGroupImage newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoLodgingGroupImage newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoLodgingGroupImage query()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoLodgingGroupImage whereComp($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoLodgingGroupImage whereDescription($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoLodgingGroupImage whereFileName($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoLodgingGroupImage whereFullFileName($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoLodgingGroupImage whereGroupId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoLodgingGroupImage whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoLodgingGroupImage wherePos($value)
*/
class FewoLodgingGroupImage extends Model
{

View file

@ -21,6 +21,15 @@ use Illuminate\Database\Eloquent\Model;
* @property \App\Models\FewoLodging $fewo_lodging
* @package App\Models
* @mixin \Eloquent
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoLodgingImage newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoLodgingImage newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoLodgingImage query()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoLodgingImage whereDescription($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoLodgingImage whereFileName($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoLodgingImage whereFullFileName($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoLodgingImage whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoLodgingImage whereLodgingId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoLodgingImage wherePos($value)
*/
class FewoLodgingImage extends Model
{

View file

@ -17,6 +17,11 @@ use Illuminate\Database\Eloquent\Model;
* @property \Illuminate\Database\Eloquent\Collection $fewo_lodgings
* @package App\Models
* @mixin \Eloquent
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoLodgingType newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoLodgingType newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoLodgingType query()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoLodgingType whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoLodgingType whereName($value)
*/
class FewoLodgingType extends Model
{

View file

@ -21,6 +21,14 @@ use Illuminate\Database\Eloquent\Model;
* @property \App\Models\FewoLodging $fewo_lodging
* @package App\Models
* @mixin \Eloquent
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoPrice newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoPrice newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoPrice query()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoPrice whereFlatPrice($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoPrice whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoPrice whereLodgingId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoPrice wherePerNight($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoPrice whereSeasonId($value)
*/
class FewoPrice extends Model
{

View file

@ -21,6 +21,15 @@ use Illuminate\Database\Eloquent\Model;
* @property \App\Models\FewoLodging $fewo_lodging
* @package App\Models
* @mixin \Eloquent
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoReservation newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoReservation newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoReservation query()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoReservation whereFromDate($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoReservation whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoReservation whereLodgingId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoReservation whereStatus($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoReservation whereToDate($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoReservation whereType($value)
*/
class FewoReservation extends Model
{

View file

@ -22,6 +22,16 @@ use Illuminate\Database\Eloquent\Model;
* @property \Illuminate\Database\Eloquent\Collection $fewo_prices
* @package App\Models
* @mixin \Eloquent
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoSeason newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoSeason newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoSeason query()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoSeason whereDescription($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoSeason whereFromDate($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoSeason whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoSeason whereMinimumStay($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoSeason whereName($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoSeason whereOnlyWeekday($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\FewoSeason whereToDate($value)
*/
class FewoSeason extends Model
{

View file

@ -0,0 +1,86 @@
<?php
namespace App\Models;
use Cviebrock\EloquentSluggable\Sluggable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Support\Str;
/**
* App\Models\IQContentTree
*
* @property int $id
* @property string $name
* @property string $identifier
* @property string $slug
* @property string|null $description
* @property array|null $settings
* @property int $pos
* @property int $active
* @property \Illuminate\Support\Carbon|null $created_at
* @property \Illuminate\Support\Carbon|null $updated_at
* @property \Illuminate\Support\Carbon|null $deleted_at
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\IQContentTreeNode[] $iq_content_tree_nodes
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTree findSimilarSlugs($attribute, $config, $slug)
* @method static bool|null forceDelete()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTree newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTree newQuery()
* @method static \Illuminate\Database\Query\Builder|\App\Models\IQContentTree onlyTrashed()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTree query()
* @method static bool|null restore()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTree whereActive($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTree whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTree whereDeletedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTree whereDescription($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTree whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTree whereIdentifier($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTree whereName($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTree wherePos($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTree whereSettings($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTree whereSlug($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTree whereUpdatedAt($value)
* @method static \Illuminate\Database\Query\Builder|\App\Models\IQContentTree withTrashed()
* @method static \Illuminate\Database\Query\Builder|\App\Models\IQContentTree withoutTrashed()
* @mixin \Eloquent
*/
class IQContentTree extends Model
{
use Sluggable;
use SoftDeletes;
protected $connection = 'mysql_stern';
protected $dates = ['deleted_at'];
protected $table = 'i_q_content_trees';
protected $fillable = [
'name', 'identifier', 'description', 'settings', 'pos', 'active',
];
protected $casts = ['settings' => 'array'];
public function sluggable()
{
return [
'slug' => [
'source' => 'name'
]
];
}
public function iq_content_tree_nodes()
{
return $this->hasMany('App\Models\IQContentTreeNode', 'tree_id', 'id')->orderBy('pos');
}
public function setIdentifierAttribute( $value ) {
if(!isset($value) || $value == ""){
$this->attributes['identifier'] = Str::slug(pre_slug($this->name), '-');
}else{
$this->attributes['identifier'] = Str::slug(pre_slug($value), '-');
}
}
}

View file

@ -0,0 +1,127 @@
<?php
namespace App\Models;
use Cviebrock\EloquentSluggable\Sluggable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Support\Str;
/**
* App\Models\IQContentTreeNode
*
* @property int $id
* @property int $tree_id
* @property int|null $parent_id
* @property int $lvl
* @property string $name
* @property string $identifier
* @property string $slug
* @property string|null $description
* @property array|null $settings
* @property int $pos
* @property int $active
* @property \Illuminate\Support\Carbon|null $created_at
* @property \Illuminate\Support\Carbon|null $updated_at
* @property \Illuminate\Support\Carbon|null $deleted_at
* @property-read \App\Models\IQContentTree $iq_content_tree
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\IQContentTreeNode[] $iq_content_tree_node_childs
* @property-read \App\Models\IQContentTreeNode|null $iq_content_tree_node_parent
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTreeNode findSimilarSlugs($attribute, $config, $slug)
* @method static bool|null forceDelete()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTreeNode newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTreeNode newQuery()
* @method static \Illuminate\Database\Query\Builder|\App\Models\IQContentTreeNode onlyTrashed()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTreeNode query()
* @method static bool|null restore()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTreeNode whereActive($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTreeNode whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTreeNode whereDeletedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTreeNode whereDescription($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTreeNode whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTreeNode whereIdentifier($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTreeNode whereLvl($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTreeNode whereName($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTreeNode whereParentId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTreeNode wherePos($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTreeNode whereSettings($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTreeNode whereSlug($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTreeNode whereTreeId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\IQContentTreeNode whereUpdatedAt($value)
* @method static \Illuminate\Database\Query\Builder|\App\Models\IQContentTreeNode withTrashed()
* @method static \Illuminate\Database\Query\Builder|\App\Models\IQContentTreeNode withoutTrashed()
* @mixin \Eloquent
*/
class IQContentTreeNode extends Model
{
use Sluggable;
use SoftDeletes;
protected $connection = 'mysql_stern';
protected $dates = ['deleted_at'];
protected $table = 'i_q_content_tree_nodes';
protected $fillable = [
'tree_id', 'parent_id', 'lvl', 'name', 'identifier', 'description', 'settings', 'pos', 'active',
];
protected $casts = ['settings' => 'array'];
public function sluggable()
{
return [
'slug' => [
'source' => 'name'
]
];
}
public function iq_content_tree()
{
return $this->belongsTo('App\Models\IQContentTree', 'tree_id');
}
public function iq_content_tree_node_parent()
{
return $this->belongsTo('App\Models\IQContentTreeNode', 'parent_id');
}
public function iq_content_tree_node_childs()
{
return $this->hasMany('App\Models\IQContentTreeNode', 'parent_id', 'id');
}
public function travel_guides()
{
return $this->hasMany('App\Models\TravelGuide', 'tree_node_id', 'id');
}
public function setIdentifierAttribute( $value ) {
if(!isset($value) || $value == ""){
$this->attributes['identifier'] = Str::slug(pre_slug($this->name), '-');
}else{
$this->attributes['identifier'] = Str::slug(pre_slug($value), '-');
}
}
public function getUri(){
$root = $this->iq_content_tree->identifier."/";
$ret = $this->getParentIdentifier();
return $root.$ret.$this->identifier."/";
}
public function getParentIdentifier(){
if($node_parent = $this->iq_content_tree_node_parent){
$ret = $node_parent->getParentIdentifier();
return $ret.$node_parent->identifier."/";
}
}
//
}

View file

@ -62,6 +62,9 @@ use Illuminate\Database\Eloquent\Model;
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Lead whereUpdatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Lead whereWebsiteId($value)
* @mixin \Eloquent
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Lead newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Lead newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Lead query()
*/
class Lead extends Model
{

View file

@ -92,6 +92,11 @@ use Illuminate\Database\Eloquent\Model;
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page whereTreeRoot($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page whereUpdatedAt($value)
* @mixin \Eloquent
* @property int|null $travel_guide_content_id
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page query()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Page whereTravelGuideContentId($value)
*/
class Page extends Model
{

View file

@ -49,6 +49,9 @@ use Illuminate\Database\Eloquent\Model;
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\SfGuardUser whereUserId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\SfGuardUser whereUsername($value)
* @mixin \Eloquent
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\SfGuardUser newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\SfGuardUser newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\SfGuardUser query()
*/
class SfGuardUser extends Model
{

View file

@ -26,6 +26,9 @@ use Illuminate\Database\Eloquent\Model;
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\SidebarWidget whereShowAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\SidebarWidget whereUpdatedAt($value)
* @mixin \Eloquent
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\SidebarWidget newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\SidebarWidget newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\SidebarWidget query()
*/
class SidebarWidget extends Model
{

View file

@ -17,6 +17,9 @@ use Illuminate\Database\Eloquent\Model;
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Status whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Status whereName($value)
* @mixin \Eloquent
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Status newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Status newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Status query()
*/
class Status extends Model
{

View file

@ -31,6 +31,9 @@ use Illuminate\Database\Eloquent\Model;
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Sym\Arrangement whereTypeS($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Sym\Arrangement whereViewPosition($value)
* @mixin \Eloquent
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Sym\Arrangement newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Sym\Arrangement newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Sym\Arrangement query()
*/
class Arrangement extends Model
{

View file

@ -14,6 +14,9 @@ use Illuminate\Database\Eloquent\Model;
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Sym\ArrangementTemplate whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Sym\ArrangementTemplate whereTitle($value)
* @mixin \Eloquent
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Sym\ArrangementTemplate newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Sym\ArrangementTemplate newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Sym\ArrangementTemplate query()
*/
class ArrangementTemplate extends Model
{

View file

@ -17,6 +17,9 @@ use Illuminate\Database\Eloquent\Model;
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Sym\TravelCountry whereIsCustomerCountry($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Sym\TravelCountry whereName($value)
* @mixin \Eloquent
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Sym\TravelCountry newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Sym\TravelCountry newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Sym\TravelCountry query()
*/
class TravelCountry extends Model
{

View file

@ -18,6 +18,9 @@ use Illuminate\Database\Eloquent\Model;
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelAgenda whereName($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelAgenda whereTravelcountryId($value)
* @mixin \Eloquent
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelAgenda newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelAgenda newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelAgenda query()
*/
class TravelAgenda extends Model
{

View file

@ -19,6 +19,13 @@ use Illuminate\Database\Eloquent\Model;
* @property \Illuminate\Database\Eloquent\Collection $travel_user_booking_fewos
* @package App\Models
* @mixin \Eloquent
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelBookingFewoChannel newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelBookingFewoChannel newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelBookingFewoChannel query()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelBookingFewoChannel whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelBookingFewoChannel whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelBookingFewoChannel whereName($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelBookingFewoChannel whereUpdatedAt($value)
*/
class TravelBookingFewoChannel extends Model
{

View file

@ -25,6 +25,9 @@ use Illuminate\Database\Eloquent\Model;
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelClass whereUpdatedAt($value)
* @mixin \Eloquent
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\TravelProgramDraft[] $travel_program_drafts
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelClass newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelClass newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelClass query()
*/
class TravelClass extends Model
{

View file

@ -33,6 +33,9 @@ use Illuminate\Database\Eloquent\Model;
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelCountry whereName($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelCountry whereUpdatedAt($value)
* @mixin \Eloquent
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelCountry newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelCountry newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelCountry query()
*/
class TravelCountry extends Model
{

View file

@ -36,6 +36,9 @@ use Illuminate\Database\Eloquent\Model;
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelGuide whereText($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelGuide whereUpdatedAt($value)
* @mixin \Eloquent
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelGuide newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelGuide newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelGuide query()
*/
class TravelGuide extends Model
{
@ -55,9 +58,10 @@ class TravelGuide extends Model
];
protected $fillable = [
'name', 'slug', 'text', 'full_text', 'meta_title', 'meta_description', 'meta_keywords', 'pos', 'scope', 'active',
'tree_node_id', 'name', 'slug', 'text', 'full_text', 'keyword', 'meta_title', 'meta_description', 'meta_keywords', 'pos', 'scope', 'active',
];
public function sluggable()
{
return [
@ -67,6 +71,13 @@ class TravelGuide extends Model
];
}
public function iq_content_tree_node()
{
return $this->belongsTo('App\Models\IQContentTreeNode', 'tree_node_id');
}
public static function getScopeOptions($setKey = false){
$options = self::$scopes;
$ret = "";
@ -82,5 +93,29 @@ class TravelGuide extends Model
}
public static function getSiteOptions($id = false, $html = true, $choose = true) {
$values = [];
$ret = "";
$models = TravelGuide::where('active', 1)->get();
if($html) {
if($choose){
$ret .= '<option value="">Bitte wählen</option>\n';
}
foreach ($models as $model) {
$attr = ($model->id == $id) ? ' selected="selected"' : '';
$ret .= '<option value="' . $model->id . '"' . $attr . '>' . $model->name . ' ('.$model->getScopeName($model->scope).')</option>\n';
}
return $ret;
}else{
foreach ($models as $model) {
$values[$model->id] = $model->name;
}
return $values;
}
return false;
}
}

View file

@ -14,6 +14,9 @@ use Illuminate\Database\Eloquent\Model;
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelNationality whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelNationality whereName($value)
* @mixin \Eloquent
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelNationality newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelNationality newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelNationality query()
*/
class TravelNationality extends Model
{

View file

@ -18,6 +18,9 @@ use Illuminate\Database\Eloquent\Model;
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelNationalityRequirement whereTravelCountryId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelNationalityRequirement whereTravelNationalityId($value)
* @mixin \Eloquent
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelNationalityRequirement newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelNationalityRequirement newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelNationalityRequirement query()
*/
class TravelNationalityRequirement extends Model
{

View file

@ -4,6 +4,100 @@ namespace App\Models;
use Illuminate\Database\Eloquent\Model;
/**
* App\Models\TravelPageGuide
*
* @property int $id
* @property int|null $owner
* @property string|null $model
* @property int|null $lvl
* @property int $owner_second
* @property int|null $catalog_id
* @property int|null $catalog_index
* @property string|null $slug
* @property int|null $travel_program
* @property int|null $status
* @property int|null $show_in_navi
* @property int|null $order
* @property string|null $title
* @property string|null $pagetitle
* @property string|null $description
* @property string|null $keywords
* @property string|null $content
* @property string|null $content_new
* @property string|null $buma_destination
* @property int|null $OLD_CatalogID
* @property int|null $OLD_OwnerID
* @property int|null $buma_gjr
* @property string $date
* @property int $price-tags
* @property string|null $text_right
* @property string|null $keyword
* @property string|null $canonical_url
* @property int|null $country_id
* @property string|null $template
* @property int|null $lft
* @property int|null $rgt
* @property int|null $tree_root
* @property int|null $parent_id
* @property string|null $real_url_path
* @property int|null $travel_guide_content_id
* @property string|null $box_body
* @property string|null $box_image_url
* @property string|null $box_star
* @property string|null $box_discount
* @property string|null $cms_settings
* @property int|null $fewo_lodging
* @property \Illuminate\Support\Carbon|null $created_at
* @property \Illuminate\Support\Carbon|null $updated_at
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelPageGuide newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelPageGuide newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelPageGuide query()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelPageGuide whereBoxBody($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelPageGuide whereBoxDiscount($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelPageGuide whereBoxImageUrl($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelPageGuide whereBoxStar($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelPageGuide whereBumaDestination($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelPageGuide whereBumaGjr($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelPageGuide whereCanonicalUrl($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelPageGuide whereCatalogId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelPageGuide whereCatalogIndex($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelPageGuide whereCmsSettings($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelPageGuide whereContent($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelPageGuide whereContentNew($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelPageGuide whereCountryId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelPageGuide whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelPageGuide whereDate($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelPageGuide whereDescription($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelPageGuide whereFewoLodging($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelPageGuide whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelPageGuide whereKeyword($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelPageGuide whereKeywords($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelPageGuide whereLft($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelPageGuide whereLvl($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelPageGuide whereModel($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelPageGuide whereOLDCatalogID($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelPageGuide whereOLDOwnerID($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelPageGuide whereOrder($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelPageGuide whereOwner($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelPageGuide whereOwnerSecond($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelPageGuide wherePagetitle($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelPageGuide whereParentId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelPageGuide wherePriceTags($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelPageGuide whereRealUrlPath($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelPageGuide whereRgt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelPageGuide whereShowInNavi($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelPageGuide whereSlug($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelPageGuide whereStatus($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelPageGuide whereTemplate($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelPageGuide whereTextRight($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelPageGuide whereTitle($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelPageGuide whereTravelGuideContentId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelPageGuide whereTravelProgram($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelPageGuide whereTreeRoot($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelPageGuide whereUpdatedAt($value)
* @mixin \Eloquent
*/
class TravelPageGuide extends Model
{
protected $connection = 'mysql_stern';
@ -26,8 +120,13 @@ class TravelPageGuide extends Model
private static $pages = [];
public static function getPageGuides($setKey = false){
$values = self::where('model', 'travel_guide')->where('lvl', 1)->orderBy('order')->get();
public static function getPageGuides($root_id = false){
if($root_id){
$values = self::where('tree_root', $root_id)->where('model', 'travel_guide')->where('lvl', 1)->orderBy('order')->get();
}else{
$values = self::where('model', 'travel_guide')->where('lvl', 1)->orderBy('order')->get();
}
foreach ($values as $value){
self::$pages[] = $value;

View file

@ -106,6 +106,9 @@ use Illuminate\Database\Eloquent\Model;
* @property int|null $insurance_4
* @property-read \App\Models\TravelProgramCountry $travel_program_country
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelProgram whereInsurance4($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelProgram newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelProgram newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelProgram query()
*/
class TravelProgram extends Model
{

View file

@ -15,6 +15,9 @@ use Illuminate\Database\Eloquent\Model;
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelProgramCountry whereCountryId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelProgramCountry whereProgramId($value)
* @mixin \Eloquent
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelProgramCountry newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelProgramCountry newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelProgramCountry query()
*/
class TravelProgramCountry extends Model
{

View file

@ -25,6 +25,9 @@ use Illuminate\Database\Eloquent\Model;
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelProgramDraft whereUpdatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelProgramDraft whereWeekdays($value)
* @mixin \Eloquent
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelProgramDraft newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelProgramDraft newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelProgramDraft query()
*/
class TravelProgramDraft extends Model
{

View file

@ -43,6 +43,29 @@ use Illuminate\Database\Eloquent\Model;
* @method static \Illuminate\Database\Query\Builder|\App\Models\TravelUser withTrashed()
* @method static \Illuminate\Database\Query\Builder|\App\Models\TravelUser withoutTrashed()
* @mixin \Eloquent
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUser newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUser newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUser query()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUser whereBirthday($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUser whereCity($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUser whereCompany($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUser whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUser whereDeletedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUser whereEmail($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUser whereFax($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUser whereFirstName($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUser whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUser whereLastName($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUser whereLastUserData($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUser whereMobil($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUser wherePassword($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUser wherePhone($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUser whereSalutationId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUser whereStreet($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUser whereTitle($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUser whereTravelNationalityId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUser whereUpdatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUser whereZipcode($value)
*/
class TravelUser extends Model
{

View file

@ -48,6 +48,54 @@ use App\Services\Util;
* @method static \Illuminate\Database\Query\Builder|\App\Models\TravelUserBookingFewo withTrashed()
* @method static \Illuminate\Database\Query\Builder|\App\Models\TravelUserBookingFewo withoutTrashed()
* @mixin \Eloquent
* @property int|null $fewo_reservation_id
* @property float|null $price_balance
* @property float|null $price_extra
* @property float|null $price_travel_total
* @property string|null $status_text
* @property array|null $send_user_mail
* @property array|null $send_service_mail
* @property array|null $send_info_mail
* @property array|null $send_employee_mail
* @property string|null $info_mail_text
* @property-read \App\Models\FewoReservation|null $fewo_reservation
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFewo newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFewo newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFewo query()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFewo whereAdults($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFewo whereBookingDate($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFewo whereChildren($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFewo whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFewo whereDailyPrices($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFewo whereDeletedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFewo whereFewoLodgingId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFewo whereFewoReservationId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFewo whereFromDate($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFewo whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFewo whereInfoMailText($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFewo whereInvoiceNumber($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFewo whereIsCalendarFewoDirect($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFewo whereIsCalendarHrs($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFewo whereIsCalendarSternTours($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFewo whereNotice($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFewo wherePersons($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFewo wherePriceBalance($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFewo wherePriceDeposit($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFewo wherePriceExtra($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFewo wherePriceService($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFewo wherePriceTotal($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFewo wherePriceTravel($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFewo wherePriceTravelTotal($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFewo whereSendEmployeeMail($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFewo whereSendInfoMail($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFewo whereSendServiceMail($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFewo whereSendUserMail($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFewo whereStatus($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFewo whereStatusText($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFewo whereToDate($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFewo whereTravelBookingFewoChannelId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFewo whereTravelUserId($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\TravelUserBookingFewo whereUpdatedAt($value)
*/
class TravelUserBookingFewo extends Model
{
@ -545,7 +593,7 @@ class TravelUserBookingFewo extends Model
$company = $this->travel_user->company ? $this->travel_user->company ."\n" : "";
$title = $this->travel_user->title ? $this->travel_user->title."\n" : "";
$nationality = $this->travel_user->travel_nationality_id ? "\n".$this->travel_user->travel_nationality->name : "";
return $company.$title.$this->travel_user->first_name." ".$this->travel_user->last_name."\n".$this->travel_user->street."\n".$this->travel_user->zip_code." ".$this->travel_user->city.$nationality;
return $company.$title.$this->travel_user->first_name." ".$this->travel_user->last_name."\n".$this->travel_user->street."\n".$this->travel_user->zipcode." ".$this->travel_user->city.$nationality;
}
return "";
}
@ -555,7 +603,7 @@ class TravelUserBookingFewo extends Model
$name = trim($this->fewo_lodging->single_name).$sep;
$address = trim($this->fewo_lodging->adress1);
$address .= $this->fewo_lodging->adress2 ? " ".$this->fewo_lodging->adress2.$sep : ", ";
$city = trim($this->fewo_lodging->zip_code)." ".trim($this->fewo_lodging->city);
$city = trim($this->fewo_lodging->zipcode)." ".trim($this->fewo_lodging->city);
return $name.$address.$city;
}
return "";

View file

@ -9,6 +9,17 @@ use Illuminate\Database\Eloquent\Model;
*
* @property-read \App\User $user
* @mixin \Eloquent
* @property int $user_id
* @property string $email
* @property string $token
* @property \Illuminate\Support\Carbon $created_at
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserUpdateEmail newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserUpdateEmail newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserUpdateEmail query()
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserUpdateEmail whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserUpdateEmail whereEmail($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserUpdateEmail whereToken($value)
* @method static \Illuminate\Database\Eloquent\Builder|\App\Models\UserUpdateEmail whereUserId($value)
*/
class UserUpdateEmail extends Model
{

View file

@ -0,0 +1,103 @@
<?php
namespace App\Repositories\IQ;
use App\Repositories\BaseRepository;
class ContentSiteRepository extends BaseRepository {
public function __construct()
{
//IQContentSite $model
$this->model = false;
}
/**
* refresh.
*/
public function update($data)
{
/*
if($data['user_id'] == "new"){
$this->model = User::create([
'email' => $data['email'],
'password' => env('APP_KEY'),
]);
}
else{
$this->model = $this->getById($data['user_id']);
}
*/
return;
}
public function siteFieldPrepare($contentSite, $area_section){
$ret = [];
foreach($area_section->iq_content_model->iq_content_model_fields as $model_field){
$site_field = false;
// $site_field = IQContentSiteField::getSiteFieldOrNew($contentSite->id, $model_field->id);
//new
if(!$site_field->id){
$site_field->site_id = $contentSite->id;
$site_field->model_field_id = $model_field->id;
$site_field->field = $model_field->field;
$site_field->pos = $model_field->pos;
$site_field->settings = $model_field->settings;
$site_field->active = true;
$site_field->search = $model_field->search;
}else{
}
$ret[] = $site_field;
}
$sort = [];
foreach ($ret as $key => $site_field) {
$sort[$key] = $site_field->pos;
}
array_multisort($sort, SORT_ASC, $ret);
return $ret;
}
public function storeContentSideFields($contentFields){
$pos = 0;
foreach ($contentFields as $data){
$data['user_id'] = \Auth::user()->id;
$data['active'] = isset($data['active']) ? true : false;
$data['search'] = isset($data['search']) ? true : false;
$data['pos'] = $pos++;
if(isset($data['settings'])){
$data['settings'] = json_decode($data['settings']);
}
/*if($data['id'] == null || $data['id'] == 0){
$site_field = IQContentSiteField::create($data);
}else {
$site_field = IQContentSiteField::find($data['id']);
$site_field->fill($data);
$site_field->save();
}
if(isset($data['content'])){
$site_field->setContent($data['content']);
$site_field->save();
}*/
}
}
}

View file

@ -0,0 +1,189 @@
<?php
namespace App\Services;
use App\Models\IQContentSiteField;
use App\Models\IQContentTree;
use App\Models\IQContentTreeNode;
class HTMLTreeHelper
{
private static $uri = null;
/**
* @param $feature
* @return string
*/
/*public static function makeAttrArray($array = array())
{
if(is_array($array)){
return htmlspecialchars(json_encode($array), ENT_QUOTES, 'UTF-8');
}
return "";
}*/
public static function makeNestableList(IQContentTree $iq_content_tree, $tree_node_id, $lvl = 0, $parent_id = false)
{
if ($parent_id) {
//where('active', true)
$tree_nodes = IQContentTreeNode::where('tree_id', $iq_content_tree->id)->where('lvl', $lvl)->where('parent_id', $parent_id)->orderBy('pos', 'ASC')->get();
} else {
$tree_nodes = IQContentTreeNode::where('tree_id', $iq_content_tree->id)->where('lvl', $lvl)->orderBy('pos', 'ASC')->get();
}
$out = "";
foreach ($tree_nodes as $node) {
$children = IQContentTreeNode::where('tree_id', $iq_content_tree->id)->where('lvl', $lvl + 1)->where('parent_id', $node->id)->count();
$out .= '<li class="dd-item dd-custom-drag-handle" data-id="' . $node->id . '">
<div class="dd-handle">
<span class="ion ion-md-expand text-secondary"></span>
</div>
<div class="dd-content">
<a href="' . route('iq_content_tree_detail', [$iq_content_tree->id, $node->id]) . '">
<div class="dd-content-link">
' . ($tree_node_id == $node->id ? '<strong> <i class="fa fa-chevron-right"></i> ' : '') . $node->name . ($tree_node_id == $node->id ? '</strong>' : '') . '
</div>
<div class="float-right">
' . ($node->site_id ? '<span class="far fa-check fa-xs text-light"></span>' : '') . '
<span class="far fa-edit"></span>
' . ($node->active ? '<i class="fa fa-eye text-success"></i>' : '<i class="fa fa-eye-slash text-danger"></i>') . '
</div>
</a>
</div>';
if ($children) {
$out .= self::makeNestableList($iq_content_tree, $tree_node_id, $lvl + 1, $node->id);
}
$out .= '</li>';
}
return '<ol class="dd-list">' . $out . '</ol>';
}
public static function getUri()
{
if (strpos($_SERVER['REQUEST_URI'], "/") !== false) {
$uri = explode("/", $_SERVER['REQUEST_URI']);
$uri = array_filter($uri);
return $uri;
}
return false;
}
public static function makeFrontendList(IQContentTree $iq_content_tree, $lvl = 0, $parent_id = false, $url = "", $categories = "")
{
if (self::$uri === null) {
self::$uri = self::getUri();
}
$link = false;
if (!empty(self::$uri[$lvl + 2])) {
$link = (self::$uri[$lvl + 2]);
}
if ($parent_id) {
//where('active', true)
$tree_nodes = IQContentTreeNode::where('tree_id', $iq_content_tree->id)->where('lvl', $lvl)->where('active', true)->where('parent_id', $parent_id)->orderBy('pos', 'ASC')->get();
} else {
$url = "/" . $iq_content_tree->identifier . "/";
$tree_nodes = IQContentTreeNode::where('tree_id', $iq_content_tree->id)->where('lvl', $lvl)->where('active', true)->orderBy('pos', 'ASC')->get();
}
$out = "";
$class = (!$link) ? 'active' : '';
foreach ($tree_nodes as $node) {
if($node->settings['show_in_navi'] == 'off'){
continue;
}
$children = IQContentTreeNode::where('tree_id', $iq_content_tree->id)->where('lvl', $lvl + 1)->where('active', true)->where('parent_id', $node->id)->count();
$class = ($link == $node->identifier) ? 'active' : '';
if ($lvl == 0) {
$out .= '<li class="nav-item mega-dropdown ' . $class . '">
<a class="nav-link dropdown-toggle px-md-3 px-lg-4" href="' . url($url . $node->identifier) . '" data-toggle="mega-dropdown" data-trigger="hover">' . $node->name . '</a>
<div class="dropdown-menu p-0 mt-2 overflow-hidden">
<div class="row no-gutters row-bordered">
<div class="col-12 p-4">
<h6 class="small font-weight-bold text-expanded text-uppercase">'.$categories.'</h6>';
} else {
$site_field = IQContentSiteField::findSiteField($node, 'main-navi', 'menu-navi-image');
$img_src = (isset($site_field->content) ? $site_field->content : '/images/navi_images-assets/titelbild.jpg');
$out .= ' <a href="' .url($url . $node->identifier). '" class="media align-items-center ui-bordered text-body py-2 px-2 mb-2 img-thumbnail-shadow ' . $class . '">
<img src="'.$img_src.'" alt="" class="d-block ui-w-60">
<span class="media-body font-weight-semibold ml-2">' . ($link == $node->identifier ? '<strong>' : '') . $node->name . '</span>' . ($link == $node->identifier ? '</strong>' : '') . '
</a>';
}
if ($children && $lvl == 0) {
$out .= self::makeFrontendList($iq_content_tree, $lvl + 1, $node->id, $url . $node->identifier . "/", $categories);
}
if ($lvl == 0) {
$out .= ' </div>
</div>
</div>
</li>';
}
}
return $out;
}
public static function makeFrontendListFooter(IQContentTree $iq_content_tree, $lvl = 0, $parent_id = false, $url = "")
{
if (self::$uri === null) {
self::$uri = self::getUri();
}
$link = false;
if (!empty(self::$uri[$lvl + 2])) {
$link = (self::$uri[$lvl + 2]);
}
if ($parent_id) {
//where('active', true)
$tree_nodes = IQContentTreeNode::where('tree_id', $iq_content_tree->id)->where('lvl', $lvl)->where('active', true)->where('parent_id', $parent_id)->orderBy('pos', 'ASC')->get();
} else {
$url = "/" . $iq_content_tree->identifier . "/";
$tree_nodes = IQContentTreeNode::where('tree_id', $iq_content_tree->id)->where('lvl', $lvl)->where('active', true)->orderBy('pos', 'ASC')->get();
}
$out = "";
$class = (!$link) ? 'active' : '';
foreach ($tree_nodes as $node) {
if($node->settings['show_in_navi'] == 'off'){
continue;
}
$children = IQContentTreeNode::where('tree_id', $iq_content_tree->id)->where('lvl', $lvl + 1)->where('active', true)->where('parent_id', $node->id)->count();
$class = ($link == $node->identifier) ? 'active' : '';
if ($lvl == 0) {
$out .= '<div class="col-12 col-sm-3 col-md pb-4 border-left-white">
<div class="footer-text small font-weight-bold mb-3 text-uppercase">' . $node->name . '</div>';
} else {
$out .= '<a href="' . url($url . $node->identifier) . '" class="footer-link d-block pb-2">' . ($link == $node->identifier ? '<strong>' : '') . $node->name . '</span>' . ($link == $node->identifier ? '</strong>' : '') . '</a>';
}
if ($children && $lvl == 0) {
$out .= self::makeFrontendListFooter($iq_content_tree, $lvl + 1, $node->id, $url . $node->identifier . "/");
}
if ($lvl == 0) {
$out .= '</div>';
}
}
return $out;
}
}

View file

@ -67,6 +67,11 @@ use Laravel\Passport\HasApiTokens;
* @method static \Illuminate\Database\Query\Builder|\App\User withoutTrashed()
* @property-read \Illuminate\Database\Eloquent\Collection|\Laravel\Passport\Client[] $clients
* @property-read \Illuminate\Database\Eloquent\Collection|\Laravel\Passport\Token[] $tokens
* @property array|null $permissions
* @method static \Illuminate\Database\Eloquent\Builder|\App\User newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\User newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|\App\User query()
* @method static \Illuminate\Database\Eloquent\Builder|\App\User wherePermissions($value)
*/
class User extends Authenticatable
{

View file

@ -15,4 +15,64 @@ if (! function_exists('make_v2_url')) {
$path = trim($path, "/");
return config('app.url_v2')."/".$path;
}
}
if (! function_exists('array_to_json')) {
function array_to_json($value)
{
return htmlspecialchars(json_encode($value));
}
}
if (! function_exists('last_array_element')) {
function last_array_element($value)
{
$e = explode("/", $value);
if(is_array($e)){
return end($e);
}
return $e;
}
}
if (! function_exists('pre_slug')) {
function pre_slug($value)
{
return strtr($value, ["Ä" => "ae", "Ö" => "oe", "Ü" => "ue", "ä" => "ae", "ö" => "oe", "ü" => "ue", "ß"=>"ss"]);
}
}
if (! function_exists('get_active_badge')) {
function get_active_badge($active)
{
return $active ? '<span class="badge badge-pill badge-success"><i class="far fa-check"></i></span>' : '<span class="badge badge-pill badge-danger"><i class="far fa-times"></i></span>';
}
}
if (! function_exists('get_switcher_input')) {
function get_switcher_input($active = false, $name = "", $label = "")
{
return '<label class="switcher">
<input type="checkbox" name="'.$name.'" class="switcher-input" '.($active ? 'checked="checked"' : '').'>
<span class="switcher-indicator">
<span class="switcher-yes"></span>
<span class="switcher-no"></span>
</span>
<span class="switcher-label">'.$label.'</span>
</label>';
}
}
if (! function_exists('get_file_last_time')) {
function get_file_last_time($value)
{
if (file_exists($value)) {
return filemtime($value);
}
return date("Ymd-i", time());
}
}

View file

@ -29,7 +29,7 @@ return [
|
*/
'host' => env('MAIL_HOST', 'mail.your-server.de'),
'host' => env('MAIL_HOST', 'zimbra.managedemail.de'),
/*
|--------------------------------------------------------------------------
@ -56,7 +56,7 @@ return [
*/
'from' => [
'address' => env('MAIL_FROM_ADDRESS', 'info@mein.sterntours.de'),
'address' => env('MAIL_FROM_ADDRESS', 'stern@stern-tours.de'),
'name' => env('MAIL_FROM_NAME', 'Mein Stern-Tours'),
],
'mail_bbc' => explode(',', env('MAIL_BBC', 'kontakt@stern-tours.de')),

View file

@ -16,11 +16,16 @@ class CreateTravelGuidesTable extends Migration
Schema::connection('mysql_stern')->create('travel_guides', function (Blueprint $table) {
$table->increments('id');
$table->unsignedBigInteger('tree_node_id');
$table->string('name');
$table->string('slug')->index()->unique();
$table->string('text')->nullable();
$table->text('full_text')->nullable();
$table->string('keyword')->nullable();
$table->string('meta_title')->nullable();
$table->string('meta_description')->nullable();
@ -31,6 +36,11 @@ class CreateTravelGuidesTable extends Migration
$table->boolean('active')->default(true);
$table->timestamps();
$table->foreign('tree_node_id')
->references('id')
->on('i_q_content_tree_nodes');
});
}

View file

@ -0,0 +1,46 @@
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateIQContentTreesTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql_stern')->create('i_q_content_trees', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name', 64)->index();
$table->string('identifier', 80)->index();
$table->string('slug', 80)->index()->unique();
$table->string('description')->nullable();
$table->text('settings')->nullable();
$table->unsignedTinyInteger('pos')->default(0);
$table->boolean('active')->default(true);
$table->timestamps();
$table->softDeletes();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql_stern')->dropIfExists('i_q_content_trees');
}
}

View file

@ -0,0 +1,67 @@
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateIQContentTreeNodesTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::connection('mysql_stern')->create('i_q_content_tree_nodes', function (Blueprint $table) {
$table->bigIncrements('id');
//from tree
$table->unsignedBigInteger('tree_id');
//parent node
$table->unsignedBigInteger('parent_id')->index()->nullable();
$table->unsignedTinyInteger('lvl')->index()->default(0);
//used site
// $table->unsignedBigInteger('site_id');
$table->string('name', 64)->index();
$table->string('identifier', 80)->index();
$table->string('slug', 80)->index()->unique();
$table->string('description')->nullable();
$table->text('settings')->nullable();
$table->unsignedTinyInteger('pos')->default(0);
$table->boolean('active')->default(true);
$table->timestamps();
$table->softDeletes();
$table->foreign('tree_id')
->references('id')
->on('i_q_content_trees');
$table->foreign('parent_id')
->references('id')
->on('i_q_content_tree_nodes');
/*$table->foreign('site_id')
->references('id')
->on('i_q_content_sites');
*/
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::connection('mysql_stern')->dropIfExists('i_q_content_tree_nodes');
}
}

View file

@ -97,4 +97,106 @@
margin: 0;
}
/* Custom drag handle */
.dd-custom-drag-handle .dd-handle {
border: 0;
float: left;
margin: 1px;
font-size: 0.9rem;
line-height: 1.25rem;
}
.dd-custom-drag-handle .dd-handle>* {
vertical-align: middle;
}
[dir=rtl] .dd-custom-drag-handle .dd-handle {
float: right;
}
.dd-item > button:before {
content: '\f284';
}
.dd-item > button[data-action="collapse"]:before {
content: '\f280';
}
.dd-item > button {
display: inline-block;
font-size: 1.4rem;
text-transform: none;
font-weight: normal;
font-style: normal;
font-variant: normal;
font-family: "Ionicons";
line-height: 1;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
speak: none;
text-rendering: auto
}
.alert ul {
margin-bottom: 0;
}
.dragula-example {
margin-bottom: 6px;
border: 1px dotted #d6d6d6;
}
.sortable-example {
margin: 0;
padding: 0;
}
.sortable-example li {
padding: 6px 10px;
margin-bottom: 8px;
list-style: none;
}
.sortable-example-inline li {
margin-right: 8px;
display: inline-block;
}
[dir=rtl] .sortable-example-inline li {
margin-right: 0;
margin-left: 8px;
}
#sortable-3 {
width: 220px;
}
#sortable-3 img {
margin-right: 8px;
margin-bottom: 8px;
width: 100px;
height: 100px;
border-radius: 999px;
display: block;
float: left;
}
.card-header {
border-bottom: 1px solid rgba(115, 113, 150, 0.50);
}
.modal-header {
padding-bottom: 10px;
border-bottom: 1px solid rgba(115, 113, 150, 0.50);
}
.modal-footer {
padding-top: 10px;
border-top: 1px solid rgba(115, 113, 150, 0.50);
}
@media (min-width: 768px) {
.default-style .messages-sidebox.large {
-ms-flex-preferred-size: 23rem;
flex-basis: 23rem;
}
}

View file

@ -1,6 +1,129 @@
// Nestable
$('.iq-save-bar').closest('form').find(':input, select, textarea').change(function() {
showIqSaveBar($(this).closest('form'));
});
$('.iq-save-bar').closest('form').find(':input, select, textarea').keydown(function() {
showIqSaveBar($(this).closest('form'));
});
function showIqSaveBar(form){
if(!$(form).data('save-bar')){
$(form).find('.iq-save-bar').show(300);
$(form).data('save-bar', 1)
}
}
$(function() {
if($('#netstable-content-tree').length){
function updateNetstableOutput(e) {
var list = e.length ? e : $(e.target);
var output = list.data('output');
output.val(window.JSON ? window.JSON.stringify(list.nestable('serialize')) :
'JSON browser support required for this demo.');
};
$('#netstable-content-tree').nestable();
$('#netstable-content-tree').nestable().on('change', function(){
showIqSaveBar($('#netstable-content-tree').closest('form'));
updateNetstableOutput($('#netstable-content-tree'));
});
// output initial serialised data
updateNetstableOutput($('#netstable-content-tree').data('output', $('#nestable-output')));
$('#nestable-menu-collapse').on('click', function(e) {
$('.dd').nestable('collapseAll');
});
$('#nestable-menu-expand').on('click', function(e) {
$('.dd').nestable('expandAll');
});
}
});
$(function() {
// Drag handle
dragula([$('#dragula-drag-handles')[0]], {
moves: function (el, container, handle) {
showIqSaveBar(el.closest('form'));
return handle.classList.contains('handle');
},
});
});
$(function () {
// $('.selectpicker').selectpicker();
// $('[data-toggle="tooltip"]').tooltip();
function initModalInner() {
$('[data-toggle="reloadModal"]').off().on('click', function(event) {
event.preventDefault();
button = $(this);
var data = {};
data.id = button.data('id');
data.model = button.data('model');
data.action = button.data('action');
data.request = button.data('request');
data.route = button.data('route');
data.target = button.data('target');
console.log(data);
loadModalInner(this, data);
});
}
function loadModalInner(self, data){
var url = data.route,
contentType = 'application/x-www-form-urlencoded; charset=UTF-8';
$.ajax({
url: url,
data: data,
type: "POST",
dataType: "json",
cache: false,
contentType: contentType,
encode: true,
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
success: function(data) {
console.log(data);
$(data.response.target).find('.modal-dialog').html(data.html);
$('.selectpicker').selectpicker('refresh');
initModalInner();
},
error: function(xhr, status, errorThrown) {
console.log(xhr);
console.log(xhr.responseText);
console.log(errorThrown);
console.log("Sorry, there was a problem!");
}
});
return false;
}
$('#modals-load-content').on('show.bs.modal', function (event) {
var button = $(event.relatedTarget);
if (!button.data('id')) {
return;
}
var data = {};
data.id = button.data('id');
data.model = button.data('model');
data.action = button.data('action');
data.request = button.data('request');
data.route = button.data('route');
data.target = button.data('target');
console.log(data);
loadModalInner(this, data);
});
});
function update_modal_data_show(e, $ele) {
@ -115,171 +238,3 @@ $(function() {
});
});
/*
$(function() {
$('.select2-main').each(function() {
$(this)
.wrap('<div class="position-relative"></div>')
.select2({
placeholder: 'Bitte wählen',
dropdownParent: $(this).parent(),
});
})
$('.select2-sub').each(function() {
$(this)
.wrap('<div class="position-relative"></div>')
.select2({
placeholder: 'Bitte wählen',
dropdownParent: $(this).parent(),
closeOnSelect: false
});
})
});
*/
/*
jQuery(document).ready(function() {
$('.main-branch').on('change', function () {
target = $(this).data('target');
if ($(this).is(':checked')) {
$(target).stop().show('slow');
} else {
$(target).stop().hide('slow');
$(target).find('.custom-control-input').prop('checked', false);
}
});
var $form = $('#lead-form-validation');
if($form.find('#company_country_id').length){
$form.find('#company_country_id').on('change', function(){
$form.find('#company_pre_phone_id').val($(this).val());
$form.find('#company_pre_phone_id').selectpicker('refresh');
});
}
if($form.find('#country_id').length){
$form.find('#country_id').on('change', function(){
$form.find('#pre_phone_id').val($(this).val());
$form.find('#pre_phone_id').selectpicker('refresh');
$form.find('#pre_mobil_id').val($(this).val());
$form.find('#pre_mobil_id').selectpicker('refresh');
});
}
});
*/
/*
function trigger_company($ele, $speed){
if($ele.val() == 1){
$('.show_company_holder').show($speed);
$('.show_company_holder').find('#company_name').prop('required', true);
$('.show_company_holder').find('#company_country_id').prop('required', true);
}else{
$('.show_company_holder').hide($speed);
$('.show_company_holder').find('#company_name').prop('required', false);
$('.show_company_holder').find('#company_country_id').prop('required', false);
}
}
$( document ).ready(function() {
// With validation
var $form = $('#lead-form-validation');
$form.find('#company').on('change', function () {
trigger_company($(this), 'slow');
});
trigger_company($form.find('#company'), 0);
// Set up validator
$form.validate({
rules: {
'email': {
required: true,
email: true,
remote:
{
url: "{{ route('user_check_mail') }}",
type: "post",
data:
{
user_id: function()
{
return $('#lead-form-validation :input[name="user_id"]').val();
},
email: function()
{
return $('#lead-form-validation :input[name="email"]').val();
}
},
encode: true,
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
}
},
'email-confirm': {
required: true,
equalTo: "#email"
},
'accepted_data_protection': {
required: true
},
},
errorPlacement: function errorPlacement(error, element) {
$(element).parents('.form-group').append(
error.addClass('invalid-feedback small d-block')
)
},
highlight: function (element) {
if ($(element).hasClass('selectpicker')) {
$(element).parent().addClass('is-invalid');
}
$(element).addClass('is-invalid');
},
unhighlight: function (element) {
$(element).removeClass('is-invalid');
$(element).parents('.form-group').find('.is-invalid').removeClass('is-invalid');
},
messages : {
required: "{{__('This field is required.')}}",
company_country_id : {
required: "{{__('This field is required.')}}",
},
accepted_data_protection : {
required: "{{__('This field is required.')}}",
},
salutation : {
required: "{{__('This field is required.')}}",
},
company_name : {
required: "{{__('This field is required.')}}",
},
last_name : {
required: "{{__('This field is required.')}}",
},
equalTo : "{{__('Please enter the same value again.')}}",
'email-confirm' : {
equalTo : "{{__('Please enter the same value again.')}}",
required: "{{__('This field is required.')}}",
},
email: {
required : "{{__('This field is required.')}}",
email: "{{ __('Please enter a valid email address.') }}",
remote : "{{ __('This E-mail is already in use.') }}"
},
},
onkeyup: false
});
});
*/

View file

@ -74,6 +74,10 @@
<div class="form-row">
<div class="form-group col-md-12">
<label class="form-label" for="travel_guide_keyword">{{ __('Keyword (optional | Verlinkung im Text)') }}</label>
{{ Form::text('keyword', $travel_guide->keyword, array('placeholder'=>__('Keyword'), 'class'=>'form-control', 'id'=>'travel_guide_keyword')) }}
</div>
<div class="form-group col-md-12">
<label class="form-label" for="travel_guide_meta_title">{{ __('META-Titel (optional)') }}</label>
{{ Form::text('meta_title', $travel_guide->meta_title, array('placeholder'=>__('meta_title'), 'class'=>'form-control', 'id'=>'travel_guide_meta_title')) }}

View file

@ -0,0 +1,276 @@
@extends('layouts.layout-2')
@section('content')
<style>
.alert ul {
margin-bottom: 0;
}
</style>
@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-3 mb-1">
Reiseführer Tree @if($id == "new") <span class="text-primary">anlegen</span> @else {{"(".$model->name.")"}} verwalten @endif
<div class="float-right">
<a href="{{route('iq_content_tree_repair', [$model->id])}}" class="btn btn-default btn-sm">{{ __('repair') }}</a>
</div>
</h4>
<div class="clearfix"></div>
<input type="hidden" name="id" id="id" value="{{$id}}">
<div class="card messages-card">
<div class="row no-gutters">
<!-- sidebox -->
<div class="messages-sidebox large messages-scroll col">
<div class="card-body py-3">
<div class="media align-items-center">
<div class="media-body">
<button type="button" class="btn btn-primary btn-block" data-toggle="modal" data-target="#modals-load-content"
data-id="add"
data-model="tree"
data-action="tree-node"
data-request="{!! array_to_json(['tree_id'=>$model->id]) !!}"
data-route="{{ route('iq_content_modal_load') }}"><i class="ion ion-ios-add-circle"></i> Add node</button>
</div>
<a href="javascript:void(0)" class="messages-sidebox-toggler d-lg-none d-block text-muted text-large font-weight-light pl-4">&times;</a>
</div>
</div>
<hr class="border-light m-0">
<div class="card-body pt-3">
{!! Form::open(['url' => route('iq_content_tree_detail', [$model->id]), 'class' => '']) !!}
<input type="hidden" id="nestable-output" name="nestable-output" value="">
<input type="hidden" name="tree_id" value="{{$model->id}}">
<div class="mb-2" style="height: 35px">
<div class="float-right">
<button type="button" class="btn btn-default btn-sm" data-action="expand-all" id="nestable-menu-expand"><i class="ion ion-ios-arrow-down"></i></button>
<button type="button" class="btn btn-default btn-sm" data-action="collapse-all" id="nestable-menu-collapse"><i class="ion ion-ios-arrow-up"></i></button>
</div>
<div class="iq-save-bar" style="display: none">
<a href="" class="btn btn-warning btn-md icon-btn messages-tooltip text-white mr-2" title="Refresh"><i class="ion ion-md-refresh"></i></a>
<button type="submit" class="btn btn-success btn-md icon-btn messages-tooltip text-white" title="Save"><i class="ion ion-md-save"></i></button>
</div>
</div>
<div>
<div class="badge badge-outline-primary btn-block py-2 px-3 text-left "> <span class="far fa-globe"></span> {{$model->name}}
<a href="" class="float-right" data-toggle="modal" data-target="#modals-load-content"
data-id="{{$model->id}}"
data-model="tree"
data-action="tree-content"
data-request=""
data-route="{{ route('iq_content_modal_load') }}"><span class="far fa-edit"></span></a>
</div>
<div class="dd" id="netstable-content-tree">
{!! \App\Services\HTMLTreeHelper::makeNestableList($model, ($tree_node ? $tree_node->id : false)) !!}
</div>
</div>
{!! Form::close() !!}
</div>
</div>
<!-- / sidebox -->
<div class="col">
@if($tree_node)
<!-- Controls -->
{!! Form::open(['url' => route('iq_content_tree_detail', [$model->id, $tree_node->id, ($area_section? $area_section->id : '')]), 'class' => '']) !!}
<div class="media flex-wrap align-items-center py-2 px-2">
<div class="media-body d-flex flex-wrap flex-basis-100 flex-basis-sm-auto">
<button type="button" class="btn btn-default borderless md-btn-flat icon-btn messages-sidebox-toggler d-lg-none d-block text-muted text-large mr-2"><i class="ion ion-md-more"></i></button>
<div style="height: 35px"></div>
<div class="iq-save-bar" style="display: none">
<a href="" class="btn btn-warning btn-md icon-btn messages-tooltip text-white mr-2" title="Refresh"><i class="ion ion-md-refresh"></i></a>
<button type="submit" class="btn btn-success btn-md icon-btn messages-tooltip text-white" title="Save"><i class="ion ion-md-save"></i></button>
</div>
</div>
</div>
<div class="col-12">
<div class="nav-responsive-md">
<ul class="nav nav-pills nav-fill">
<li class="nav-item">
<a href="{{route('iq_content_tree_detail', [$model->id, $tree_node->id])}}" class="nav-link @if(!$area_section) active1 @endif">{{$tree_node->name}}
</a>
</li>
@if($tree_node->iq_content_site)
@foreach($tree_node->iq_content_site->iq_content_area->iq_content_area_sections as $sections)
<li class="nav-item">
<a href="{{route('iq_content_tree_detail', [$model->id, $tree_node->id,$sections->id])}}" class="nav-link @if($area_section && $area_section->id == $sections->id) active @endif">{{ $sections->name }}
{{-- <span class="badge badge-primary">22</span> --}}
</a>
</li>
@endforeach
@endif
</ul>
</div>
@if(!$site_fields)
<div class="card-body">
<input type="hidden" name="id" value="{{$tree_node->id}}">
<input type="hidden" name="model" value="tree">
<input type="hidden" name="action" value="tree-node">
<input type="hidden" name="tree_id" value="{{$model->id}}">
<div class="input-group mb-4">
<div class="input-group-prepend">
<span class="input-group-text"><span class="far fa-link mr-2 text-primary"></span></span>
</div>
{{ Form::text('uri', $tree_node->getUri(), array('readonly'=>true, 'class'=>'form-control')) }}
</div>
<div class="form-row mb-2">
<div class="form-group col">
<label class="custom-control custom-checkbox float-right">
{!! Form::checkbox('active', 1, $tree_node->active, ['class'=>'custom-control-input']) !!}
<span class="custom-control-label">{{__('aktiv')}}</span>
</label>
<label for="name" class="form-label">Name (required)</label>
{{ Form::text('name', $tree_node->name, array('placeholder'=>'', 'class'=>'form-control', 'required'=>'true')) }}
</div>
</div>
<div class="form-row mb-2">
<div class="form-group col">
<button type="button" class="btn btn-primary btn-sm float-right mb-2" data-toggle="modal" data-target="#modals-load-content"
data-id="add"
data-model="tree"
data-action="tree-site-content"
data-request="{!! array_to_json(['tree_id'=>$model->id,'tree_node_id'=>$tree_node->id]) !!}"
data-route="{{ route('iq_content_modal_load') }}"><i class="ion ion-ios-add-circle"></i> Seite hinzufügen</button>
<label for="site_id" class="form-label">Seiten</label>
@if($tree_node->travel_guides)
<table class="table table-striped border-bottom">
<thead>
<tr>
<th style="max-width: 60px;">&nbsp;</th>
<th>{{__('Name')}}</th>
<th>{{__('Keyword')}}</th>
<th>{{__('Langer Text')}}</th>
<th>{{__('sichtbar')}}</th>
<th>#</th>
</tr>
</thead>
<tbody>
@foreach($tree_node->travel_guides as $travel_guide)
<tr>
<td style="width: 5%;">
<a href="{{ route('cms_travel_guide_detail', [$travel_guide->id]) }}" class="btn icon-btn btn-sm btn-primary">
<span class="far fa-edit"></span>
</a>
</td>
<td>{{$travel_guide->name}}</td>
<td>{{$travel_guide->keyword}}</td>
<td> @if($travel_guide->scope)
<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>
@if($travel_guide->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('iq_content_tree_detail_remove', [$model->id, $tree_node->id, $travel_guide->id]) }}" onclick="return confirm('{{__('Seite aus Tree entfernen?')}}');"><i class="far fa-reply"></i></a>
</td>
</tr>
@endforeach
</tbody>
</table>
@endif
{{--<select class="selectpicker" name="site_id" id="site_id"
data-style="btn-light" data-live-search="true" data-container="body">
{!! \App\Models\IQContentSite::getSiteOptions($tree_node->site_id) !!}
</select>--}}
</div>
</div>
<div class="form-row mb-2">
<div class="form-group col">
<label for="identifier" class="form-label">Slug</label>
{{ Form::text('identifier', $tree_node->identifier, array('placeholder'=>'', 'class'=>'form-control')) }}
</div>
</div>
<div class="form-group mb-2">
<label class="form-label" for="description">Description</label>
{{ Form::textarea('description', $tree_node->description, array('class'=>'form-control', 'rows'=>2)) }}
</div>
</div>
@else
<div id="dragula-drag-handles" class="mt-2">
@foreach($site_fields as $key => $site_field)
<div class="dragula-example card card-condenced">
<input type="hidden" name="iq_content_site_field[{{$key}}][id]" value="{{ $site_field->id }}">
<input type="hidden" name="iq_content_site_field[{{$key}}][site_id]" value="{{$site_field->site_id}}">
<input type="hidden" name="iq_content_site_field[{{$key}}][model_field_id]" value="{{$site_field->model_field_id}}">
<input type="hidden" name="iq_content_site_field[{{$key}}][field]" value="{{$site_field->field}}">
<input type="hidden" name="iq_content_site_field[{{$key}}][settings]" value="{{ json_encode($site_field->settings) }}">
<div class="card-body">
<span class="handle fa fa-grip-vertical d-inline-block bg-light text-info p-2 mr-2 mb-1"></span>
<i class="my-ui-icon-sm {{ $site_field->iq_content_model_field->fieldAsIcon() }} text-secondary mr-2"></i>
<strong>{{ $site_field->iq_content_model_field->name }}</strong>
<span class="text-muted ml-2">{{ $site_field->iq_content_model_field->identifier }}</span>
<div class="float-right">
{!! get_switcher_input($site_field->active, 'iq_content_site_field['.$key.'][active]') !!}
</div>
<hr class="border-light my-2">
<div class="form-group">
@if($site_field->field == "string")
{{ Form::text('iq_content_site_field['.$key.'][content]', $site_field->content, array('class'=>'form-control')) }}
@endif
@if($site_field->field == "text")
@if($site_field->settings['editor'] == 'off')
{{ Form::textarea('iq_content_site_field['.$key.'][content]', $site_field->content , ['class' => 'form-control']) }}
@else
{{ Form::textarea('iq_content_site_field['.$key.'][content]', $site_field->content , ['class' => 'form-control summernote']) }}
@endif
@endif
@if($site_field->field == "media")
{{ Form::text('iq_content_site_field['.$key.'][content]', $site_field->content, array('class'=>'form-control')) }}
@endif
</div>
<span class="text-muted ml-2">{{ $site_field->iq_content_model_field->fieldAsName() }}</span>
<div class="float-left">
<i class="fa fa-search"></i> {!! get_switcher_input($site_field->search, 'iq_content_site_field['.$key.'][search]') !!}
</div>
</div>
</div>
@endforeach
</div>
@endif
</div>
{!! Form::close() !!}
@endif
</div>
</div><!-- / .row -->
</div><!-- / .card -->
@endsection

View file

@ -0,0 +1,90 @@
@extends('layouts.layout-2')
@section('content')
<h4 class="font-weight-bold mb-4">
Reiseführer Trees
</h4>
<div class="card messages-card">
<div class="row no-gutters">
<!-- content list -->
<div class="col">
<!-- Controls -->
<div class="media flex-wrap align-items-center py-2 px-2">
<div class="media-body d-flex flex-wrap flex-basis-100 flex-basis-sm-auto">
<button type="button" class="btn btn-default borderless md-btn-flat icon-btn messages-sidebox-toggler d-lg-none d-block text-muted text-large mr-2"><i class="ion ion-md-more"></i></button>
<a href="" class="btn btn-default borderless md-btn-flat icon-btn messages-tooltip text-muted" title="Refresh"><i class="ion ion-md-refresh"></i></a>
</div>
</div>
<!-- / Controls -->
<div class="table-responsive py-3 px-2">
<table class="iq-datatables-standard table table-striped">
<thead>
<tr>
<th style="max-width: 60px;">#</th>
<th>Name</th>
<th>Identifier</th>
<th>Description</th>
<th>Nodes(s)</th>
<th>Updated</th>
<th>Status</th>
</tr>
</thead>
<tbody>
@foreach($models as $model)
<tr class="">
<td>
<a href="{{ route('iq_content_tree_detail', [$model->id]) }}" class="btn icon-btn btn-sm btn-primary">
<span class="far fa-edit"></span>
</a>
</td>
<td><a href="{{ route('iq_content_tree_detail', [$model->id]) }}">{{ $model->name }}</a></td>
<td>{{ $model->identifier }}</td>
<td>{{ $model->description }}</td>
<td>{{ $model->iq_content_tree_nodes->count() }}</td>
<td>{{ $model->updated_at->format("d/m/Y") }}</td>
<td>{!! get_active_badge($model->active) !!}</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
<!-- / content list -->
<!-- sidebox -->
<div class="messages-sidebox messages-scroll col">
<div class="card-header text-uppercase text-expanded text-muted">Tree</div>
<div class="card-body py-3">
<div class="media align-items-center">
<div class="media-body">
<button type="button" class="btn btn-primary btn-block" data-toggle="modal" data-target="#modals-load-content"
data-id="add"
data-model="tree"
data-action="tree-content"
data-request=""
data-route="{{ route('iq_content_modal_load') }}"><i class="ion ion-ios-add-circle"></i> Add Tree</button>
</div>
<a href="javascript:void(0)" class="messages-sidebox-toggler d-lg-none d-block text-muted text-large font-weight-light pl-4">&times;</a>
</div>
</div>
<div class="card-header text-uppercase text-expanded text-muted">Filter</div>
<div class="card-body py-3">
<a href="javascript:void(0)" class="d-flex justify-content-between align-items-center text-body font-weight-bold py-2">
<div>
All
</div>
<div class="badge badge-primary">{{ count($models) }}</div>
</a>
<hr class="border-light my-4">
</div>
</div>
<!-- / sidebox -->
</div><!-- / .row -->
</div><!-- / .card -->
@endsection

View file

@ -0,0 +1,237 @@
<!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>mein STERN TOURS</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: #5f8155;
}
a:hover {
color:#e5aa30;
}
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: #5f8155;
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.sterntours.de/images/stern-tours-logo.png" alt="STERN TOURS" style="border:none" width="260">
</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>
<center>
<table role="presentation" cellpadding="0" cellspacing="0" width="100%" border="0">
<tbody>
<tr>
<td style="word-wrap:break-word;background:transparent;font-size:0px;padding:10px 25px;padding-top:15px;padding-bottom:15px;padding-right:40px;padding-left:40px;" align="center" valign="top" background="data:image/gif;base64,">
<table role="presentation" cellpadding="0" cellspacing="0" align="center" border="0">
<tbody>
<tr>
<td style="border:none;border-radius:20px;color:#ffffff;cursor:auto;padding:15px 25px;" align="center" valign="middle" bgcolor="#5f8155">
<p style="text-decoration:none;background:#5f8155;color:#ffffff;font-family:Arial, sans-serif;font-size:13px;font-weight:normal;line-height:120%;text-transform:none;margin:0px;">
<a href="{{ $url }}" style="color:#ffffff;font-size:14px;font-weight:bold;text-align:center;text-decoration:none;-webkit-text-size-adjust:none;">{{ $button }}</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</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>
{{ $copy2line }}<br>
<span style="color: #cabda9; font-weight: normal; font-size: 13px; text-decoration: underline; word-wrap: break-word;">{{ $url }}</span>
<br><br>
{{ $greetings }} <br><b>Ihr Team von STERN TOURS</b>
<br>
<br>
</td>
</tr>
<tr>
<td><br></td>
</tr>
</table>
</center>
</td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" class="force-full-width"
bgcolor="#f8f8f8" style="margin: 0 auto">
<tr>
<td style="color:#7B7B7E; font-size:14px;">
<br>
STERN TOURS GmbH | Emser Straße 3 | 10719 Berlin<br>
Tel: +49 (0) 30 700 94 100 | Fax: +49 (0) 30 700 94 1044 | stern@sterntours.de<br>
<br>
<a href="https://www.sterntours.de" style="color: #7B7B7E; text-decoration: underline;">www.sterntours.de</a>
<br>
</td>
</tr>
<tr>
<td style="color:#bbbbbb; font-size:12px;">
Geschäftsführer: Thomas Stern | Registergericht: Amtsgericht Charlottenburg | Registernummer: HRB 67111<br>
Steuernummer: 27/545/30703 | UST-Ident.-Nr.: DE192609253 | Finanzamt: Wilmersdorf<br>
<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

@ -1,214 +1,766 @@
<!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>STERN TOURS</title>
<!-- Designed by https://github.com/kaytcat -->
<!-- Robot header image designed by Freepik.com -->
<style type="text/css">
@import url(https://fonts.googleapis.com/css?family=Roboto);
/* Take care of image borders and formatting */
img {
max-width: 600px;
outline: none;
text-decoration: none;
-ms-interpolation-mode: bicubic;
}
a {
text-decoration: none;
border: 0;
outline: none;
color: #5f8155;
}
a:hover {
color:#e5aa30;
}
a img {
border: none;
}
/* General styling */
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: #5f8155;
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">
<table align="center" cellpadding="0" cellspacing="0" width="100%" height="100%" >
<table cellpadding="0" cellspacing="0" border="0" width="100%" class="nl-wrapper-table" bgcolor="#EDEDED">
<tbody>
<tr>
<td align="center" valign="top" bgcolor="#f8f8f8" width="100%">
<center>
<table style="margin: 0 auto;" cellpadding="0" cellspacing="0" width="700" class="w320">
<tr>
<td align="center" valign="top">
<td valign="top">
<table width="620" align="center" cellpadding="0" cellspacing="0" border="0">
<tbody>
<tr>
<td valign="top">
<table style="margin: 0 auto;" cellpadding="0" cellspacing="0" width="100%" style="margin:0 auto;">
<tr>
<td style="font-size: 30px; text-align:center;">
<br>
<img src="https://www.sterntours.de/images/da2f996_wlogo_1.png" alt="STERN TOURS" style="border:none" width="260">
<br>
<br>
</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:#514d6a;">
<br>
{{ $copy1line }}
<br>
<br>
</td>
</tr>
</table>
</center>
</td>
</tr>
<tr>
<td>
<!--[if mso]>
<v:roundrect xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w="urn:schemas-microsoft-com:office:word" href="http://" style="height:50px;v-text-anchor:middle;width:250px;" arcsize="50%" stroke="f" fillcolor="#5f8155">
<w:anchorlock/>
<center>
<![endif]-->
<a href="{{ $url }}"
style="background-color:#5f8155;border-radius:40px;color:#ffffff;display:inline-block;font-family:Helvetica, Arial, sans-serif;font-size:15px;font-weight:bold;line-height:50px;text-align:center;text-decoration:none;width:250px;-webkit-text-size-adjust:none;">{{ $button }}</a>
<!--[if mso]>
</center>
</v:roundrect>
<![endif]-->
<br>
</td>
<tr>
<tr>
<td style="color:#514d6a;font-size: 14px;">
<center>
<table style="margin: 0 auto;" cellpadding="0" cellspacing="0" width="90%">
<tr>
<td style="color:#514d6a;">
<br>
{{ $copy2line }}<br>
<span style="color: #cabda9; font-weight: normal; font-size: 13px; text-decoration: underline; word-wrap: break-word;">{{ $url }}</span>
<table align="center" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF"
class="nl-body-table" width="620">
<tbody>
<tr>
<td colspan="3" valign="top" align="center" bgcolor="#EDEDED">
<table cellpadding="0" cellspacing="0" border="0" align="center">
<tbody>
<tr>
<td valign="top" style="line-height: 0; font-size: 0;" height="26">&nbsp;
</td>
</tr>
<tr>
<td valign="top" align="center"
style="padding-left: 20px; padding-right: 20px; padding-bottom: 6px"><span
style="color:#7c7c7c; font-family: 'Arial', Helvetica, sans-serif; font-size:12px; line-height: 14px;">Wenn diese Nachricht nicht korrekt angezeigt wird, klicken Sie
bitte</span> <a class="cmp_parsed_url" cmp_parsed_url="https://kommunikationsdienste.t-online.de/booking/mcs.html"
target="_blank" href="https://kommunikationsdienste.t-online.de/booking/mcs.html"
style="color:#0090c4; font-family: 'Arial', Helvetica, sans-serif; font-size:12px; line-height: 14px; text-decoration: underline;">hier</a>
</td>
</tr>
<tr>
<td valign="top" style="line-height: 0; font-size: 0;" height="4">&nbsp;
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td colspan="3" align="left" valign="top" height="20"
style="line-height: 0; font-size: 0">&nbsp;
</td>
</tr>
<tr>
<td width="20">&nbsp;</td>
<td valign="top"><img
src="https://td-newsletter-storage.i22hosting.de/emailings/17-0172-HTML-Vorlagen-MagentaCLOUD/images/header.jpg"
width="580" border="0" alt="Telekom - Erleben, was verbindet."
style="display: block;" class="head-image"></td>
<td width="20">&nbsp;</td>
</tr>
<tr>
<td colspan="3" align="left" valign="top" height="29">&nbsp;</td>
</tr>
<tr>
<td width="20">&nbsp;</td>
<td valign="top" height="24" style="border-top: 1px solid #d0d0d0;">&nbsp;</td>
<td width="20">&nbsp;</td>
</tr>
<tr>
<td width="20" style="line-height: 0; font-size: 0">&nbsp;</td>
<td valign="top"><p
style="font-family: 'Arial', Helvetica, sans-serif; color: #e20074; font-size:19px; line-height: 27px; padding: 0; Margin-top: 0; Margin-bottom: 0;">
<strong>HERZLICH WILLKOMMEN BEI MAIL S FÜR KUNDEN DER TELEKOM</strong></p></td>
<td width="20" style="line-height: 0; font-size: 0">&nbsp;</td>
</tr>
<tr>
<td colspan="3" valign="top" height="22">&nbsp;</td>
</tr>
<tr>
<td width="20" style="line-height: 0; font-size: 0">&nbsp;</td>
<td valign="top"><p
style="font-family: 'Arial', Helvetica, sans-serif; color: #4b4b4b; font-size:16px; line-height: 23px; padding: 0; Margin-top: 0; Margin-bottom: 0;">
<strong>Hallo Herr Adametz,</strong></p></td>
<td width="20" style="line-height: 0; font-size: 0">&nbsp;</td>
</tr>
<tr>
<td colspan="3" valign="top" height="9" style="line-height: 0; font-size: 0">&nbsp;</td>
</tr>
<tr>
<td width="20" style="line-height: 0; font-size: 0">&nbsp;</td>
<td valign="top"><p
style="font-family: 'Arial', Helvetica, sans-serif; color: #383838; font-size:14px; line-height: 20px; padding: 0; Margin-top: 0; Margin-bottom: 0;">
Herzlich Willkommen bei Telekom Mail S!<br><br>Mail S ist der kostenlose
E-Mail-Dienst für Kunden der Telekom und
bietet Ihnen exklusive Produktvorteile egal ob auf dem
Smartphone, Tablet oder Computer.<br><br>Mit Sync-Plus haben Sie Ihre E-Mails,
Kontakte und Termine immer
dort verfügbar, wo Sie sie brauchen. <a class="cmp_parsed_url"
cmp_parsed_url="https://sync.t-online.de"
target="_blank"
href="https://sync.t-online.de"
style="font-family: 'Arial', Helvetica, sans-serif; color: #0090c4; font-size: 14px; line-height: 20px; letter-spacing: 0.01em; text-decoration: none;">Richten
Sie Sync-Plus am besten gleich ein!</a><br><br>Für Ihre Ablage senden wir
Ihnen die Informationen, die Sie uns
während der Registrierung mitgeteilt haben:</p></td>
<td width="20" style="line-height: 0; font-size: 0">&nbsp;</td>
</tr>
<tr>
<td colspan="3" valign="top" height="25" style="line-height: 0; font-size: 0">&nbsp;
</td>
</tr>
<tr>
<td width="20" style="line-height: 0; font-size: 0">&nbsp;</td>
<td valign="top" bgcolor="#EDEDED">
<table cellpadding="0" cellspacing="0" border="0" width="100%"
class="personalized-info-table">
<tbody>
<tr>
<td valign="top" height="19" style="line-height: 0; font-size: 0">&nbsp;
</td>
</tr>
<tr>
<td valign="top" width="30" style="line-height: 0; font-size: 0">&nbsp;</td>
<td valign="top">
<table cellspacing="0" cellpadding="0" border="0" width="100%">
<tbody>
<tr>
<td valign="middle" width="35%"
style="font-family: 'Arial', Helvetica, sans-serif; color: #383838; font-size:14px; line-height: 20px;">
Name:
</td>
<td valign="top" width="65%"
style="font-family: 'Arial', Helvetica, sans-serif; color: #383838; font-size:14px; line-height: 20px;">
<strong style="line-height: 20px">Kevin Adametz</strong>
</td>
</tr>
<tr>
<td colspan="2" valign="top"
style="line-height: 0; font-size: 0;" height="5">&nbsp;
</td>
</tr>
<tr>
<td valign="middle"
style="font-family: 'Arial', Helvetica, sans-serif; color: #383838; font-size:14px; line-height: 20px;">
<span style="line-height: 20px">E-Mail-Adresse:</span></td>
<td valign="top"
style="font-family: 'Arial', Helvetica, sans-serif; color: #383838; font-size:14px; line-height: 20px;">
<strong style="line-height: 20px"><span
class="cmp_parsed_email"
data-cmp_parsed_email="kevin.adametz@t-online.de"
data-ce-class="Emails">kevin.adametz@t-online.de</span></strong>
</td>
</tr>
<tr>
<td colspan="2" valign="top"
style="line-height: 0; font-size: 0;" height="5">&nbsp;
</td>
</tr>
<tr>
<td valign="middle"
style="font-family: 'Arial', Helvetica, sans-serif; color: #383838; font-size:14px; line-height: 20px;">
<span style="line-height: 20px">Gebuchter Dienst:</span>
</td>
<td valign="top"
style="font-family: 'Arial', Helvetica, sans-serif; color: #383838; font-size:14px; line-height: 20px;">
<strong style="line-height: 20px">Mail S</strong></td>
</tr>
</tbody>
</table>
</td>
<td valign="top" width="30" style="line-height: 0; font-size: 0">&nbsp;</td>
</tr>
<tr>
<td valign="top" height="19" style="line-height: 0; font-size: 0">&nbsp;
</td>
</tr>
</tbody>
</table>
</td>
<td width="20" style="line-height: 0; font-size: 0">&nbsp;</td>
</tr>
<tr>
<td colspan="3" valign="top" height="25" style="line-height: 0; font-size: 0">&nbsp;
</td>
</tr>
<tr>
<td width="20" style="line-height: 0; font-size: 0">&nbsp;</td>
<td valign="top"><p
style="font-family: 'Arial', Helvetica, sans-serif; color: #383838; font-size:14px; line-height: 20px; padding: 0; Margin-top: 0; Margin-bottom: 0;">
Ihre gebuchten Produkte und Services können Sie jederzeit im <a
class="cmp_parsed_url"
cmp_parsed_url="https://www.telekom.de/kundencenter/startseite"
target="_blank" href="https://www.telekom.de/kundencenter/startseite"
style="font-family: 'Arial', Helvetica, sans-serif; color: #0090c4; font-size:14px; line-height: 20px; text-decoration: none;">Kundencenter</a>
ändern. Verwalten Sie in den <a class="cmp_parsed_url"
cmp_parsed_url="https://account.idm.telekom.com/account-manager/index.xhtml"
target="_blank"
href="https://account.idm.telekom.com/account-manager/index.xhtml"
style="font-family: 'Arial', Helvetica, sans-serif; color: #0090c4; font-size:14px; line-height: 20px; text-decoration: none;">Anmeldeeinstellungen</a>
bequem Ihre Benutzerdaten und Passwörter.<br><br></p>
<p style="font-family: 'Arial', Helvetica, sans-serif; color: #383838; font-size:14px; line-height: 20px; padding: 0; Margin-top: 0; Margin-bottom: 0;">
Wir wünschen Ihnen viel Spaß mit Mail S<br><span
style="font-family: 'Arial', Helvetica, sans-serif; color: #4b4b4b; font-size:14px; line-height: 20px;">Ihre Telekom</span>
</p></td>
<td width="20" style="line-height: 0; font-size: 0">&nbsp;</td>
</tr>
<tr>
<td colspan="3" align="left" valign="top" height="25">&nbsp;</td>
</tr>
<tr>
<td width="20">&nbsp;</td>
<td valign="top" height="24" style="border-top: 1px solid #d0d0d0;">&nbsp;</td>
<td width="20">&nbsp;</td>
</tr>
<tr>
<td width="20" style="line-height: 0; font-size: 0">&nbsp;</td>
<td valign="top"><p
style="font-family: 'Arial', Helvetica, sans-serif; color: #4b4b4b; font-size: 16px; line-height: 23px; padding: 0; Margin-top: 0; Margin-bottom: 0;">
<strong>So kommen Sie zu E-Mail!</strong></p></td>
<td width="20" style="line-height: 0; font-size: 0">&nbsp;</td>
</tr>
<tr>
<td width="20">&nbsp;</td>
<td valign="top" height="17">&nbsp;</td>
<td width="20">&nbsp;</td>
</tr>
<tr>
<td width="20">&nbsp;</td>
<td valign="top">
<table cellpadding="0" cellspacing="0" border="0" align="left" width="48%"
class="column-left-table" style="margin-bottom: 24px">
<tbody>
<tr>
<td valign="top">
<table cellpadding="0" cellspacing="0" border="0" width="100%">
<tbody>
<tr>
<td valign="middle" width="18%"><img
src="https://td-newsletter-storage.i22hosting.de/emailings/17-0172-HTML-Vorlagen-MagentaCLOUD/images/icon-inbox.gif"
width="44" height="41"></td>
<td valign="top" width="3%">&nbsp;</td>
<td valign="top" width="79%"><p
style="font-family: 'Arial', Helvetica, sans-serif; color: #4b4b4b; font-size: 14px; line-height: 20px; letter-spacing: 0.01em; padding: 0; Margin-top: 0; Margin-bottom: 0;">
Rufen Sie Ihr E-Mail-Postfach von zu Hause über Ihren
Internet-Browser auf.</p></td>
</tr>
<tr>
<td valign="top" height="10" colspan="3"
style="line-height: 0; font-size: 0">&nbsp;
</td>
</tr>
<tr>
<td valign="top"></td>
<td valign="top"></td>
<td valign="top"><a class="cmp_parsed_url"
cmp_parsed_url="https://email.t-online.de"
target="_blank"
href="https://email.t-online.de"
style="font-family: 'Arial', Helvetica, sans-serif; color: #0090c4; font-size: 14px; line-height: 20px; letter-spacing: 0.01em; text-decoration: none;">Zum
E-Mail Center</a></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<table cellpadding="0" cellspacing="0" border="0" align="right" width="48%"
class="column-right-table">
<tbody>
<tr>
<td valign="top">
<table cellpadding="0" cellspacing="0" border="0" width="100%">
<tbody>
<tr>
<td valign="middle" width="18%"><img
src="https://td-newsletter-storage.i22hosting.de/emailings/17-0172-HTML-Vorlagen-MagentaCLOUD/images/icon-mail-app.gif"
width="32" height="41"></td>
<td valign="top" width="3%">&nbsp;</td>
<td valign="top" width="79%"><p
style="font-family: 'Arial', Helvetica, sans-serif; color: #4b4b4b; font-size: 14px; line-height: 20px; letter-spacing: 0.01em; padding: 0; Margin-top: 0; Margin-bottom: 0;">
Nutzen Sie E-Mail mit der Telekom Mail App auch
unterwegs auf Ihrem
Smartphone oder Tablet.</p></td>
</tr>
<tr>
<td valign="top" height="10" colspan="3"
style="line-height: 0; font-size: 0">&nbsp;
</td>
</tr>
<tr>
<td valign="top"></td>
<td valign="top"></td>
<td valign="top">
<table align="left" cellpadding="0" cellspacing="0"
border="0" class="app-download-table-left">
<tbody>
<tr>
<td valign="top"><a class="cmp_parsed_url"
cmp_parsed_url="https://itunes.apple.com/de/app/telekom-mail/id803009523?mt=8"
target="_blank"
href="https://itunes.apple.com/de/app/telekom-mail/id803009523?mt=8"><img
src="https://td-newsletter-storage.i22hosting.de/emailings/17-0172-HTML-Vorlagen-MagentaCLOUD/images/app-store.png"
width="93" height="32"
style="display: block;" border="0"></a>
</td>
</tr>
</tbody>
</table>
<table align="right" cellpadding="0" cellspacing="0"
border="0" class="app-download-table-right">
<tbody>
<tr>
<td valign="top"><a class="cmp_parsed_url"
cmp_parsed_url="https://play.google.com/store/apps/details?id=de.telekom.mail"
target="_blank"
href="https://play.google.com/store/apps/details?id=de.telekom.mail"><img
src="https://td-newsletter-storage.i22hosting.de/emailings/17-0172-HTML-Vorlagen-MagentaCLOUD/images/google-play.png"
width="90" height="32"
style="display: block;" border="0"></a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
<td width="20">&nbsp;</td>
</tr>
<tr>
<td colspan="3" style="line-height: 0; font-size: 0;" height="40">&nbsp;</td>
</tr>
<tr>
<td width="20">&nbsp;</td>
<td valign="top">
<table cellpadding="0" cellspacing="0" border="0" align="left" width="48%"
class="column-left-table" style="margin-bottom: 24px">
<tbody>
<tr>
<td valign="top">
<table cellpadding="0" cellspacing="0" border="0" width="100%">
<tbody>
<tr>
<td valign="middle" width="18%"><img
src="https://td-newsletter-storage.i22hosting.de/emailings/17-0172-HTML-Vorlagen-MagentaCLOUD/images/icon-mail-clients.gif"
width="40" height="40"></td>
<td valign="top" width="3%">&nbsp;</td>
<td valign="top" width="79%"><p
style="font-family: 'Arial', Helvetica, sans-serif; color: #4b4b4b; font-size: 14px; line-height: 20px; letter-spacing: 0.01em; padding: 0; Margin-top: 0; Margin-bottom: 0;">
Sie nutzen ein E-Mail-Programm wie z. B. Outlook oder
Thunderbird?
Richten Sie sich dieses hier ein.</p></td>
</tr>
<tr>
<td valign="top" height="10" colspan="3"
style="line-height: 0; font-size: 0">&nbsp;
</td>
</tr>
<tr>
<td valign="top"></td>
<td valign="top"></td>
<td valign="top"><a class="cmp_parsed_url"
cmp_parsed_url="http://www.telekom.de/hilfe/festnetz-internet-tv/e-mail/e-mail-konto"
target="_blank"
href="http://www.telekom.de/hilfe/festnetz-internet-tv/e-mail/e-mail-konto"
style="font-family: 'Arial', Helvetica, sans-serif; color: #0090c4; font-size: 14px; line-height: 20px; letter-spacing: 0.01em; text-decoration: none;">Jetzt
einrichten</a></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<table cellpadding="0" cellspacing="0" border="0" align="right" width="48%"
class="column-right-table">
<tbody>
<tr>
<td valign="top">
<table cellpadding="0" cellspacing="0" border="0" width="100%">
<tbody>
<tr>
<td valign="middle" width="18%"><img
src="https://td-newsletter-storage.i22hosting.de/emailings/17-0172-HTML-Vorlagen-MagentaCLOUD/images/icon-sync-plus.gif"
width="31" height="35"></td>
<td valign="top" width="3%">&nbsp;</td>
<td valign="top" width="79%"><p
style="font-family: 'Arial', Helvetica, sans-serif; color: #4b4b4b; font-size: 14px; line-height: 20px; letter-spacing: 0.01em; padding: 0; Margin-top: 0; Margin-bottom: 0;">
Mit Sync-Plus haben Sie Ihre E-Mails, Kontakte und
Termine immer
dort verfügbar, wo Sie sie brauchen.</p></td>
</tr>
<tr>
<td valign="top" height="10" colspan="3"
style="line-height: 0; font-size: 0">&nbsp;
</td>
</tr>
<tr>
<td valign="top"></td>
<td valign="top"></td>
<td valign="top"><a class="cmp_parsed_url"
cmp_parsed_url="https://sync.t-online.de"
target="_blank"
href="https://sync.t-online.de"
style="font-family: 'Arial', Helvetica, sans-serif; color: #0090c4; font-size: 14px; line-height: 20px; letter-spacing: 0.01em; text-decoration: none;">Sync-Plus
einrichten</a></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
<td width="20">&nbsp;</td>
</tr>
<tr>
<td colspan="3" align="left" valign="top" height="24">&nbsp;</td>
</tr>
<tr>
<td width="20">&nbsp;</td>
<td valign="top" height="24" style="border-top: 1px solid #d0d0d0;">&nbsp;</td>
<td width="20">&nbsp;</td>
</tr>
<tr>
<td width="20" style="line-height: 0; font-size: 0">&nbsp;</td>
<td valign="top"><p
style="font-family: 'Arial', Helvetica, sans-serif; color: #4b4b4b; font-size: 16px; line-height: 23px; padding: 0; Margin-top: 0; Margin-bottom: 0;">
<strong>Alles für den erfolgreichen Start!</strong></p></td>
<td width="20" style="line-height: 0; font-size: 0">&nbsp;</td>
</tr>
<tr>
<td width="20">&nbsp;</td>
<td valign="top" height="17">&nbsp;</td>
<td width="20">&nbsp;</td>
</tr>
<tr>
<td width="20">&nbsp;</td>
<td valign="top">
<table cellpadding="0" cellspacing="0" border="0" align="left" width="48%"
class="column-left-table" style="margin-bottom: 24px">
<tbody>
<tr>
<td valign="top">
<table cellpadding="0" cellspacing="0" border="0" width="100%">
<tbody>
<tr>
<td valign="middle" width="18%"><img
src="https://td-newsletter-storage.i22hosting.de/emailings/17-0172-HTML-Vorlagen-MagentaCLOUD/images/icon-setup-wizard.gif"
width="44" height="34"></td>
<td valign="top" width="3%">&nbsp;</td>
<td valign="top" width="79%"><p
style="font-family: 'Arial', Helvetica, sans-serif; color: #4b4b4b; font-size: 14px; line-height: 20px; letter-spacing: 0.01em; padding: 0; Margin-top: 0; Margin-bottom: 0;">
Verbinden Sie E-Mail Postfächer von anderen
E-Mail-Anbietern mit
Ihrem Telekom Mail Postfach.<br><a
class="cmp_parsed_url"
cmp_parsed_url="https://email.t-online.de/prefs?a=inboxsettings.emcaccount"
target="_blank"
href="https://email.t-online.de/prefs?a=inboxsettings.emcaccount"
style="font-family: 'Arial', Helvetica, sans-serif; color: #0090c4; font-size: 14px; line-height: 20px; letter-spacing: 0.01em; text-decoration: none;">E-Mail
Postfach verbinden</a>.</p></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<table cellpadding="0" cellspacing="0" border="0" align="right" width="48%"
class="column-right-table">
<tbody>
<tr>
<td valign="top">
<table cellpadding="0" cellspacing="0" border="0" width="100%">
<tbody>
<tr>
<td valign="middle" width="18%"><img
src="https://td-newsletter-storage.i22hosting.de/emailings/17-0172-HTML-Vorlagen-MagentaCLOUD/images/icon-speicherdauer.gif"
width="40" height="33"></td>
<td valign="top" width="3%">&nbsp;</td>
<td valign="top" width="79%"><p
style="font-family: 'Arial', Helvetica, sans-serif; color: #4b4b4b; font-size: 14px; line-height: 20px; letter-spacing: 0.01em; padding: 0; Margin-top: 0; Margin-bottom: 0;">
Konfigurieren Sie die individuelle <a
class="cmp_parsed_url"
cmp_parsed_url="https://email.t-online.de/pr?a=globalsettings.expire"
target="_blank"
href="https://email.t-online.de/pr?a=globalsettings.expire"
style="font-family: 'Arial', Helvetica, sans-serif; color: #0090c4; font-size: 14px; line-height: 20px; letter-spacing: 0.01em; text-decoration: none;">Speicherdauer</a>
Ihrer E-Mails jederzeit und bequem im E-Mail Center.</p>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
<td width="20">&nbsp;</td>
</tr>
<tr>
<td colspan="3" style="line-height: 0; font-size: 0;" height="24">&nbsp;</td>
</tr>
<tr>
<td width="20" style="line-height: 0; font-size: 0">&nbsp;</td>
<td valign="top" bgcolor="#FBFBFB">
<table cellpadding="0" cellspacing="0" border="0" width="100%"
style="border: 1px solid #d0d0d0;">
<tbody>
<tr>
<td valign="top" height="25" colspan="3"
style="line-height: 0; font-size: 0">&nbsp;
</td>
</tr>
<tr>
<td valign="top" width="30"></td>
<td valign="top">
<table cellpadding="0" cellspacing="0" border="0" width="100%"
class="handbook-table">
<tbody>
<tr>
<td valign="middle">
<table cellpadding="0" cellspacing="0" border="0"
width="100%">
<tbody>
<tr>
<td valign="top" width="46"><img
src="https://td-newsletter-storage.i22hosting.de/emailings/17-0172-HTML-Vorlagen-MagentaCLOUD/images/icon-email-handbuch.gif"
width="46" height="57"
style="display: block"></td>
<td valign="top" width="21">&nbsp;</td>
<td valign="middle" height="57"><p
style="font-family: 'Arial', Helvetica, sans-serif; color: #4b4b4b; font-size: 14px; line-height: 20px; padding: 0; Margin-top: 0; Margin-bottom: 0; letter-spacing: 0.01em;">
Alles rund um unser E-Mail Center finden Sie
in unserem praktischen<br><a
class="cmp_parsed_url"
cmp_parsed_url="http://www.t-online.de/email/handbuch"
target="_blank"
href="http://www.t-online.de/email/handbuch"
style="font-family: 'Arial', Helvetica, sans-serif; color: #0090c4; font-size: 14px; line-height: 20px; text-decoration: none; letter-spacing: 0.01em;">E-Mail-Handbuch</a>
im PDF-Format zum Herunterladen.</p></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
<td valign="top" width="30"></td>
</tr>
<tr>
<td valign="top" height="27" colspan="3"
style="line-height: 0; font-size: 0">&nbsp;
</td>
</tr>
</tbody>
</table>
</td>
<td width="20" style="line-height: 0; font-size: 0">&nbsp;</td>
</tr>
<tr>
<td colspan="3" style="line-height: 0; font-size: 0;" height="15">&nbsp;</td>
</tr>
<tr>
<td width="20" style="line-height: 0; font-size: 0">&nbsp;</td>
<td valign="top" class="footer-icon-bar">
<table cellpadding="0" cellspacing="0" border="0" width="21%" align="left"
class="column-1">
<tbody>
<tr>
<td valign="top" align="center"><a class="cmp_parsed_url"
cmp_parsed_url="https://kundencenter.telekom.de"
target="_blank"
href="https://kundencenter.telekom.de"><img
src="https://td-newsletter-storage.i22hosting.de/emailings/17-0172-HTML-Vorlagen-MagentaCLOUD/images/icon-kundencenter.gif"
style="display: block;" width="38" height="38"
border="0"></a></td>
</tr>
<tr>
<td valign="top" align="center" height="4"
style="line-height: 0; font-size: 0;"></td>
</tr>
<tr>
<td valign="top" align="center"><a class="cmp_parsed_url"
cmp_parsed_url="https://kundencenter.telekom.de"
target="_blank"
href="https://kundencenter.telekom.de"
style="font-family: 'Arial', Helvetica, sans-serif; color: #383838; font-size: 11px; line-height: 17px; text-decoration: none"><strong>Kundencenter</strong></a>
</td>
</tr>
</tbody>
</table>
<table cellpadding="0" cellspacing="0" border="0" width="31%" align="left"
class="column-2">
<tbody>
<tr>
<td valign="top" align="center"><a class="cmp_parsed_url"
cmp_parsed_url="http://www.telekom.de/hilfe/festnetz-internet-tv/e-mail"
target="_blank"
href="http://www.telekom.de/hilfe/festnetz-internet-tv/e-mail"><img
src="https://td-newsletter-storage.i22hosting.de/emailings/17-0172-HTML-Vorlagen-MagentaCLOUD/images/icon-hilfe.gif"
style="display: block;" width="38" height="38"
border="0"></a></td>
</tr>
<tr>
<td valign="top" align="center" height="4"
style="line-height: 0; font-size: 0;"></td>
</tr>
<tr>
<td valign="top" align="center"><a class="cmp_parsed_url"
cmp_parsed_url="http://www.telekom.de/hilfe/festnetz-internet-tv/e-mail"
target="_blank"
href="http://www.telekom.de/hilfe/festnetz-internet-tv/e-mail"
style="font-family: 'Arial', Helvetica, sans-serif; color: #383838; font-size: 11px; line-height: 17px; text-decoration: none"><strong>E-Mail-Hilfe</strong></a>
</td>
</tr>
</tbody>
</table>
<table cellpadding="0" cellspacing="0" border="0" width="23%" align="left"
class="column-3">
<tbody>
<tr>
<td valign="top" align="center"><a class="cmp_parsed_url"
cmp_parsed_url="https://www.telekom.de/magentacloud"
target="_blank"
href="https://www.telekom.de/magentacloud"><img
src="https://td-newsletter-storage.i22hosting.de/emailings/17-0172-HTML-Vorlagen-MagentaCLOUD/images/icon-magentacloud.gif"
style="display: block;" width="38" height="38"
border="0"></a></td>
</tr>
<tr>
<td valign="top" align="center" height="4"
style="line-height: 0; font-size: 0;"></td>
</tr>
<tr>
<td valign="top" align="center"><a class="cmp_parsed_url"
cmp_parsed_url="https://www.telekom.de/magentacloud"
target="_blank"
href="https://www.telekom.de/magentacloud"
style="font-family: 'Arial', Helvetica, sans-serif; color: #383838; font-size: 11px; line-height: 17px; text-decoration: none"><strong>MagentaCLOUD</strong></a>
</td>
</tr>
</tbody>
</table>
<table cellpadding="0" cellspacing="0" border="0" width="20%" align="right"
class="column-4">
<tbody>
<tr>
<td valign="top" align="center" height="4"
style="line-height: 0; font-size: 0;"></td>
</tr>
<tr>
<td valign="top" align="center"><a class="cmp_parsed_url"
cmp_parsed_url="http://t-online.de"
target="_blank"
href="http://t-online.de"><img
src="https://td-newsletter-storage.i22hosting.de/emailings/17-0172-HTML-Vorlagen-MagentaCLOUD/images/icon-tonline.gif"
style="display: block;" width="30" height="30"
border="0"></a></td>
</tr>
<tr>
<td valign="top" align="center" height="8"
style="line-height: 0; font-size: 0;"></td>
</tr>
<tr>
<td valign="top" align="center"><a class="cmp_parsed_url"
cmp_parsed_url="http://t-online.de"
target="_blank" href="http://t-online.de"
style="font-family: 'Arial', Helvetica, sans-serif; color: #383838; font-size: 11px; line-height: 17px; text-decoration: none"><strong>T-Online.de</strong></a>
</td>
</tr>
</tbody>
</table>
</td>
<td width="20" style="line-height: 0; font-size: 0">&nbsp;</td>
</tr>
<tr>
<td colspan="3" align="left" valign="top" height="15"
style="line-height: 0; font-size: 0;">&nbsp;
</td>
</tr>
<tr>
<td width="20">&nbsp;</td>
<td valign="top" height="16" style="border-top: 1px solid #d0d0d0;">&nbsp;</td>
<td width="20">&nbsp;</td>
</tr>
<tr>
<td width="20">&nbsp;</td>
<td valign="top" align="right">
<table cellpadding="0" cellspacing="0" border="0">
<tbody>
<tr>
<td valign="middle"><a class="cmp_parsed_url"
cmp_parsed_url="https://kommunikationsdienste.t-online.de/email-made-in-germany/"
target="_blank"
href="https://kommunikationsdienste.t-online.de/email-made-in-germany/"><img
src="https://td-newsletter-storage.i22hosting.de/emailings/17-0172-HTML-Vorlagen-MagentaCLOUD/images/emig.png"
style="display: block;" width="33" height="21"
border="0"></a></td>
<td valign="top" width="8" style="line-height: 0; font-size: 0">&nbsp;</td>
<td valign="top"><p
style="font-family: 'Arial', Helvetica, sans-serif; color: #262626; font-size: 12px; line-height: 16px; padding: 0; Margin-top: 0; Margin-bottom: 0; letter-spacing: 0.01em;">
<strong>E-Mail made in Germany</strong></p></td>
</tr>
</tbody>
</table>
</td>
<td width="20">&nbsp;</td>
</tr>
<tr>
<td colspan="3" valign="top" height="12" style="font-size: 0; line-height: 0">&nbsp;
</td>
</tr>
<tr>
<td width="20">&nbsp;</td>
<td align="left" valign="middle" height="30"
style="border-bottom: 1px solid #d0d0d0; border-top: 1px solid #d0d0d0;"
class="copyright-meta-nav">
<table cellpadding="0" cellspacing="0" border="0" align="left" class="column-1">
<tbody>
<tr>
<td align="left" valign="middle"><p
style="color:#4b4b4b; font-family: 'Arial', Helvetica, sans-serif; font-size:12px; line-height: 20px; padding: 0; Margin-top: 0; Margin-bottom: 0;">
© Telekom Deutschland GmbH</p></td>
</tr>
</tbody>
</table>
<table cellpadding="0" cellspacing="0" border="0" align="right" class="column-2">
<tbody>
<tr>
<td align="right" valign="middle"
style="color:#4b4b4b; font-family: 'Arial', Helvetica, sans-serif; font-size:12px; line-height: 20px;">
<a class="cmp_parsed_url" cmp_parsed_url="https://www.telekom.de/hilfe"
target="_blank" href="https://www.telekom.de/hilfe"
style="color:#0090c4; font-family: 'Arial', Helvetica, sans-serif; font-size:12px; line-height: 20px; text-decoration: none">Hilfe</a>&nbsp;&nbsp;|&nbsp;&nbsp;
<a class="cmp_parsed_url"
cmp_parsed_url="https://www.telekom.de/kontakt" target="_blank"
href="https://www.telekom.de/kontakt"
style="color:#0090c4; font-family: 'Arial', Helvetica, sans-serif; font-size:12px; line-height: 20px; text-decoration: none">Kontakt</a>&nbsp;&nbsp;|&nbsp;&nbsp;
<a class="cmp_parsed_url"
cmp_parsed_url="http://www.telekom.de/pflichtangaben" target="_blank"
href="http://www.telekom.de/pflichtangaben"
style="color:#0090c4; font-family: 'Arial', Helvetica, sans-serif; font-size:12px; line-height: 20px; text-decoration: none">Pflichtangaben</a>
</td>
</tr>
</tbody>
</table>
</td>
<td width="20">&nbsp;</td>
</tr>
<tr>
<td colspan="3" align="left" valign="top" height="20">&nbsp;</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<br><br>
<b>{{ $greetings }}</b> <br><b>Ihr Team von STERN TOURS</b>
<br>
<br>
<br>
</td>
</tr>
</table>
</center>
</td>
</tr>
</table>
<table style="margin: 0 auto;" cellpadding="0" cellspacing="0" class="force-full-width" bgcolor="#f8f8f8">
<tr>
<td style="color:#7B7B7E; font-size:14px;">
<br>
STERN TOURS GmbH | Emser Straße 3 | 10719 Berlin<br>
Tel: +49 (0) 30 700 94 100 | Fax: +49 (0) 30 700 94 1044 | stern@sterntours.de<br>
<br>
<a href="https://www.sterntours.de" style="color: #7B7B7E; text-decoration: underline;">www.sterntours.de</a>
<br>
</td>
</tr>
<tr>
<td style="color:#bbbbbb; font-size:12px; line-height: 14px;">
<br>
Geschäftsführer: Thomas Stern | Registergericht: Amtsgericht Charlottenburg | Registernummer: HRB 67111<br>
Steuernummer: 27/545/30703 | UST-Ident.-Nr.: DE192609253 | Finanzamt: Wilmersdorf<br>
© 2018 All Rights Reserved
<br>
<br>
</td>
</tr>
</table>
</td>
</tr>
</table>
</center>
</td>
</tr>
</table>
</body>
</html>
<tr>
<td height="30">&nbsp;</td>
</tr>
</tbody>
</table>

View file

@ -1,5 +1,5 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
"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"/>
@ -7,7 +7,6 @@
<title>mein STERN TOURS</title>
<style type="text/css">
@import url(https://fonts.googleapis.com/css?family=Roboto);
img {
max-width: 600px;
outline: none;
@ -62,38 +61,7 @@
.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">

View file

@ -0,0 +1,31 @@
{{ $salutation }}
{{ $copy1line }}
{{ $url }}
{{ $copy2line }}
{{ $url }}
{{ $greetings }}
Ihr Team von STERN TOURS
---------------
---------------
STERN TOURS GmbH
Emser Straße 3
10719 Berlin
Tel: +49 (0) 30 700 94 100
Fax: +49 (0) 30 700 94 1044
stern@sterntours.de
www.sterntours.de
---------------
Geschäftsführer: Thomas Stern | Registergericht: Amtsgericht Charlottenburg | Registernummer: HRB 67111
Steuernummer: 27/545/30703 | UST-Ident.-Nr.: DE192609253 | Finanzamt: Wilmersdorf
Datenschutzerklärung
{{route('data_protected')}}

View file

@ -5,40 +5,33 @@
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>mein STERN TOURS</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: #5f8155;
}
a:hover {
color:#e5aa30;
}
a img {
border: none;
}
td, h1, h2, h3 {
font-family: "Roboto", Helvetica, Arial, sans-serif;
font-weight: 400;
}
td {
text-align: center;
text-align: left;
}
body {
-webkit-font-smoothing: antialiased;
-webkit-text-size-adjust: none;
@ -46,14 +39,12 @@
height: 100%;
color: #37302d;
background: #ffffff;
font-size: 15px;
line-height: 26px
font-size: 14px;
line-height: 20px
}
table {
border-collapse: collapse !important;
}
.headline {
color: #5f8155;
font-size: 16px;
@ -62,38 +53,7 @@
.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">

View file

@ -7,7 +7,6 @@
<title>mein STERN TOURS</title>
<style type="text/css">
@import url(https://fonts.googleapis.com/css?family=Roboto);
img {
max-width: 600px;
outline: none;
@ -66,33 +65,6 @@
</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">

View file

@ -5,31 +5,25 @@
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>mein STERN TOURS</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: #5f8155;
}
a:hover {
color:#e5aa30;
}
a img {
border: none;
}
td, h1, h2, h3 {
font-family: "Roboto", Helvetica, Arial, sans-serif;
font-weight: 400;
@ -38,7 +32,6 @@
td {
text-align: left;
}
body {
-webkit-font-smoothing: antialiased;
-webkit-text-size-adjust: none;
@ -49,11 +42,9 @@
font-size: 14px;
line-height: 20px
}
table {
border-collapse: collapse !important;
}
.headline {
color: #5f8155;
font-size: 16px;
@ -62,38 +53,7 @@
.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">

View file

@ -0,0 +1,44 @@
{!! Form::open(['url' => $url, 'class' => 'modal-content']) !!}
<input type="hidden" name="id" value="{{ $value->id }}">
<input type="hidden" name="model" value="{{$data['model']}}">
<input type="hidden" name="action" value="{{$data['action']}}">
<input type="hidden" name="request" value="{{$data['request']}}">
<div class="modal-header">
<h5 class="modal-title">
{{$data['title']}}
</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">×</button>
</div>
<div class="modal-body">
<div class="form-row">
<div class="form-group col">
<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 for="name" class="form-label">Name (required)</label>
{{ Form::text('name', $value->name, array('placeholder'=>'', 'class'=>'form-control', 'required'=>'true')) }}
</div>
</div>
<div class="form-row">
<div class="form-group col">
<label for="identifier" class="form-label">Slug</label>
{{ Form::text('identifier', $value->identifier, array('placeholder'=>'', 'class'=>'form-control')) }}
</div>
</div>
<div class="form-group mb-1">
<label class="form-label" for="description">Description</label>
{{ Form::textarea('description', $value->description, array('class'=>'form-control', 'rows'=>2)) }}
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">close</button>
<button type="submit" class="btn btn-primary"><i class="ion ion-md-save"></i> save</button>
</div>
{!! Form::close() !!}

View file

@ -0,0 +1,32 @@
{!! Form::open(['url' => $url, 'class' => 'modal-content']) !!}
<input type="hidden" name="id" value="{{ $value->id }}">
<input type="hidden" name="model" value="{{$data['model']}}">
<input type="hidden" name="action" value="{{$data['action']}}">
<input type="hidden" name="request" value="{{$data['request']}}">
<input type="hidden" name="name" value="add">
<div class="modal-header">
<h5 class="modal-title">
{{$data['title']}}
</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">×</button>
</div>
<div class="modal-body">
@if(!$data['request'])
<div class="form-row">
<div class="form-group col">
<label for="field_id" class="form-label">Reiseführer Seite (required)</label>
<select class="selectpicker" name="travel_guide_id" id="travel_guide_id"
data-style="btn-light" data-live-search="true" required>
{!! \App\Models\TravelGuide::getSiteOptions(0) !!}
</select>
</div>
</div>
@endif
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">close</button>
<button type="submit" class="btn btn-primary"><i class="ion ion-md-save"></i> save</button>
</div>
{!! Form::close() !!}

View file

@ -0,0 +1,45 @@
{!! Form::open(['url' => $url, 'class' => 'modal-content']) !!}
<input type="hidden" name="id" value="{{ $value->id }}">
<input type="hidden" name="model" value="{{$data['model']}}">
<input type="hidden" name="action" value="{{$data['action']}}">
<input type="hidden" name="request" value="{!! array_to_json($data['request']) !!}">
<input type="hidden" name="tree_id" value="{{$model->id}}">
<div class="modal-header">
<h5 class="modal-title">
{{$data['title']}}
</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">×</button>
</div>
<div class="modal-body">
<div class="form-row">
<div class="form-group col">
<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 for="name" class="form-label">Name (required)</label>
{{ Form::text('name', $value->name, array('placeholder'=>'', 'class'=>'form-control', 'required'=>'true')) }}
</div>
</div>
<div class="form-row">
<div class="form-group col">
<label for="identifier" class="form-label">Slug</label>
{{ Form::text('identifier', $value->identifier, array('placeholder'=>'', 'class'=>'form-control')) }}
</div>
</div>
<div class="form-group mb-1">
<label class="form-label" for="description">Description</label>
{{ Form::textarea('description', $value->description, array('class'=>'form-control', 'rows'=>2)) }}
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">close</button>
<button type="submit" class="btn btn-primary"><i class="ion ion-md-save"></i> save</button>
</div>
{!! Form::close() !!}

View file

@ -39,6 +39,11 @@
<link rel="stylesheet" href="{{ mix('/vendor/libs/dragula/dragula.css') }}">
<link rel="stylesheet" href="{{ mix('/vendor/libs/minicolors/minicolors.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/libs/summernote/dist/summernote-bs4.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/libs/nestable/nestable.css') }}">
<link rel="stylesheet" href="{{ asset('/vendor/css/pages/messages.css') }}">
<!-- Layout helpers -->
<script src="{{ mix('/vendor/js/layout-helpers.js') }}"></script>
@ -66,6 +71,12 @@
border: 1px solid rgba(24, 28, 33, 0.20);
}
.dd-content-link {
overflow: hidden;
white-space: nowrap;
display: inline-block;
max-width: 7rem;
}
</style>
@ -106,6 +117,12 @@
@yield('layout-content')
<div class="modal fade" id="modals-load-content">
<div class="modal-dialog modal-lg">
</div>
</div>
<!-- Core scripts -->
<script src="{{ mix('/vendor/libs/popper/popper.js') }}"></script>
<script src="{{ mix('/vendor/js/bootstrap.js') }}"></script>
@ -122,6 +139,7 @@
<script src="{{ mix('/vendor/libs/bootstrap-datepicker/bootstrap-datepicker.js') }}"></script>
<script src="{{asset('/js/bootstrap-datepicker.de.min.js')}}"></script>
<script src="{{ mix('/vendor/libs/dragula/dragula.js') }}"></script>
<script src="{{asset('/vendor/libs/nestable/nestable.js')}}"></script>
<script src="{{ mix('/vendor/libs/minicolors/minicolors.js') }}"></script>
<script src="{{ asset('/vendor/libs/summernote/dist/summernote-bs4.js') }}"></script>

View file

@ -125,12 +125,17 @@
</li>
@endif
@if(Auth::user()->isPermission('cms-tg'))
<li class="sidenav-item{{ Request::is('cms/travel_guide/*') ? ' open' : '' }}">
<li class="sidenav-item{{ Request::is('cms/travel_guide/*') ? ' open' : '' }} {{ Request::is('iq/content/tree/*') ? ' open' : '' }}">
<a href="javascript:void(0)" class="sidenav-link sidenav-toggle">
<i class="sidenav-icon ion ion-md-map"></i>
<div>Reiseführer</div>
</a>
<ul class="sidenav-menu">
<li class="sidenav-item{{ Request::is('iq/content/tree/*') ? ' active' : '' }}">
<a href="{{ route('iq_content_tree_index') }}" class="sidenav-link"><i class="sidenav-icon ion ion-md-list"></i><div>Reiseführer Tree</div></a>
</li>
<li class="sidenav-item{{ Request::is('cms/travel_guide/page') ? ' active' : '' }}">
<a href="{{ route('cms_travel_guide_page') }}" class="sidenav-link"><i class="sidenav-icon ion ion-md-list-box"></i><div>Reiseführer Seiten</div></a>
</li>

View file

@ -134,6 +134,17 @@ Route::group(['middleware' => ['auth']], function()
Route::group(['middleware' => ['admin']], function()
{
Route::post('/iq/content/modal/load', 'IQ\ContentModalController@load')->name('iq_content_modal_load');
//trees
Route::get('/iq/content/tree/index', 'IQ\ContentTreeController@index')->name('iq_content_tree_index');
Route::get('/iq/content/tree/detail/{id}/{node_id?}/{area_section_id?}', 'IQ\ContentTreeController@detail')->name('iq_content_tree_detail');
Route::post('/iq/content/tree/detail/{id}/{node_id?}/{area_section_id?}', 'IQ\ContentTreeController@store')->name('iq_content_tree_detail');
Route::get('/iq/content/tree/detail/remove/{id}/{node_id}/{travel_guide_id}', 'IQ\ContentTreeController@remove')->name('iq_content_tree_detail_remove');
Route::get('/iq/content/tree/repair/{id}', 'IQ\ContentTreeController@repair')->name('iq_content_tree_repair');
Route::group(['middleware' => ['auth.permission:crm-tp-pr']], function() {
//Reiseprogramme Programme
Route::get('/travel/programs/{step?}', 'TravelProgramController@index')->name('travel_programs');
@ -211,6 +222,8 @@ Route::group(['middleware' => ['admin']], function()
Route::get('/cms/travel_guide/content', 'CMS\CMSTravelGuideController@index')->name('cms_travel_guide_content');
Route::get('/cms/travel_guide/page', 'CMS\CMSTravelGuideController@page')->name('cms_travel_guide_page');
Route::get('/cms/travel_guide/page/detail/{id}', 'CMS\CMSTravelGuideController@pageDetail')->name('cms_travel_guide_page_detail');
Route::post('/cms/travel_guide/page/detail/{id}', 'CMS\CMSTravelGuideController@pageStore')->name('cms_travel_guide_page_detail');
@ -291,26 +304,26 @@ Route::group(['middleware' => ['superadmin']], function() {
});
/*
use App\Mail\MailResetPassword;
Route::get('/send_test_email', function(){
try {
$mail_bbc = config('mail.mail_bbc');
// Mail::to('info@adametz.media')->bcc(['k.adametz@kagado.de', 'kevin.adametz@me.com'])->send(new MailResetPassword('asdasd', Auth::user()));
Route::get('/send_test_email', function() {
try {
$mail_bbc = config('mail.mail_bbc');
// Mail::to('info@adametz.media')->bcc(['k.adametz@kagado.de', 'kevin.adametz@me.com'])->send(new MailResetPassword('asdasd', Auth::user()));
//Mail::to('kevin.adametz@me.com')->send(new MailResetPassword('asdasd', Auth::user()));
Mail::to('kevin.adametz@t-online.de')->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());
/* Mail::raw('Sending clean email', function($message) {
$message->to('kevin.adametz@t-online.de', 'Kevin Adametz');
$message->subject('test');
});
*/
} catch (\Exception $e) {
var_dump($e->getMessage());
$fail = Mail::failures();
dd($fail);
}
});
$fail = Mail::failures();
dd($fail);
if(!empty($fail)) throw new \Exception('Could not send message to '.$fail[0]);
});
*/

Binary file not shown.

Binary file not shown.

Binary file not shown.