summaryrefslogtreecommitdiff
path: root/site
diff options
context:
space:
mode:
Diffstat (limited to 'site')
-rw-r--r--site/app/Http/Controllers/FKFeedController.php132
-rw-r--r--site/app/Http/Controllers/FKOfferController.php4
-rw-r--r--site/app/Http/Controllers/FKSearchController.php80
-rw-r--r--site/resources/views/fk-offer.blade.php21
-rw-r--r--site/resources/views/fk-search.blade.php313
-rw-r--r--site/resources/views/layouts/fk-base.blade.php1
-rw-r--r--site/resources/views/snippets/fk-navbar.blade.php10
-rw-r--r--site/resources/views/snippets/fk-sortbuttons.blade.php141
-rw-r--r--site/routes/web.php9
9 files changed, 698 insertions, 13 deletions
diff --git a/site/app/Http/Controllers/FKFeedController.php b/site/app/Http/Controllers/FKFeedController.php
new file mode 100644
index 0000000..8e50cea
--- /dev/null
+++ b/site/app/Http/Controllers/FKFeedController.php
@@ -0,0 +1,132 @@
+<?php
+namespace App\Http\Controllers;
+use Illuminate\Http\Request;
+use App\Helpers\CryptoHelper;
+
+use Illuminate\Support\Facades\DB;
+use App\Http\Controllers\Controller;
+
+use Carbon;
+use Illuminate\Support\Facades\Input;
+use App\Libraries\Utility;
+
+class FKFeedController extends Controller {
+ /**
+ * Shows the index page.
+ *
+ * @return Response
+ */
+ public function showPage(Request $request) {
+
+ /*
+ * Sorting
+ */
+ $sort_by = Input::get("sort");
+ switch ($sort_by) {
+ case("price"):
+ $sort_by = "discounted_price";
+ break;
+ case("discounted_price"):
+ $sort_by = "discounted_price";
+ break;
+ case("name"):
+ $sort_by = "name";
+ break;
+ case("shop"):
+ $sort_by = "shop";
+ break;
+ case("procent"):
+ $sort_by = "procent";
+ break;
+ case("time"):
+ $sort_by = "created_at";
+ break;
+ case("created_at"):
+ $sort_by = "created_at";
+ break;
+ default:
+ $sort_by = "created_at";
+ break;
+ }
+
+ $order_by = $request->input("order");
+ if ( "asc" != $order_by ) {
+ $order_by = "desc";
+ }
+
+ /*
+ * Database query
+ */
+ $view_name = str_replace("_feed", "", \Request::route()->getName());
+ $view_name = str_replace("/angebote/", "", $view_name);
+
+ if ( "search" == $view_name ) {
+ $query = Input::get("q");
+ $q = "%" . Utility::escapeLike($query) . "%";
+ $data = DB::table('all_view')->whereNotNull('url')->where('name', 'like', $q)->orWhere('spirit_type', 'like', $q)->orderBy($sort_by, $order_by)->limit(20)->get();
+ } else {
+ $data = DB::table($view_name . '_view')->orderBy($sort_by, $order_by)->limit(20)->get();
+ }
+
+ /*
+ * For strftime().
+ */
+ setlocale(LC_TIME, 'de_DE.utf8');
+
+ /*
+ if ( "" != env('PIWIK_RSS_ID') ) {
+ $piwik = new \PiwikTracker( env('PIWIK_RSS_ID'), env('PIWIK_RSS_URL') );
+ $piwik->setTokenAuth( env('PIWIK_RSS_AUTH_TOKEN') );
+ $piwik->setVisitorId( $piwik->getVisitorId() );
+ $piwik->setIp( $request->header('X_REAL_IP') );
+ $piwik->setUrl( $request->fullUrl() );
+
+ $piwik->setUrlReferrer( $request->server('HTTP_REFERER') );
+ $piwik->setBrowserLanguage( $request->server('HTTP_ACCEPT_LANGUAGE') );
+ $piwik->setUserAgent( $request->server('HTTP_USER_AGENT') );
+
+ $piwik->doTrackPageView( ucfirst($view_name) . "-Feed" );
+
+ if ( "" != Input::get('sort') ) {
+ $piwik->doTrackEvent("sort", Input::get('sort') );
+ }
+ if ( "" != Input::get('order') ) {
+ $piwik->doTrackEvent("order", Input::get('order') );
+ }
+ if ( "" != Input::get('q') ) {
+ $piwik->doTrackEvent("search_phrase", Input::get('q') );
+ }
+ }
+ */
+
+
+
+ $feed = \App::make("feed");
+
+ $feed->title = "Sonderangebote";
+ $feed->description = 'Finde immer die günstigsten Angebote im Bereich Spirituosen. Regelmäßig neue Schnäppchen.';
+ $feed->logo = url('https://angebote.fuselkoenig.de/img/paw-400-400.png');
+ $feed->link = url( $request->fullUrl() );
+ $feed->setDateFormat('timestamp'); // 'datetime', 'timestamp' or 'carbon'
+ $feed->pubdate = $data[0]->created_at;
+ $feed->lang = 'de';
+ $feed->setShortening(true); // true or false
+ $feed->setTextLimit(5000); // maximum length of description text
+
+ foreach ( $data as $offer ) {
+
+ # Adds campagin
+ $offer->url = $offer->url . "?pk_campaign=feed&pk_kwd=" . urlencode($offer->name) . "&pk_source=" . $view_name . "_feed";
+
+ if ( "" != env('PIWIK_RSS_ID') ) {
+ // $piwik->doTrackContentImpression($offer->spirit_type, $offer->name, $offer->long_url);
+ }
+
+ $desc = '<p><img src="'.$offer->image_url.'"></p><p><strong>'.$offer->spirit_type.'</strong><br>'. $offer->name . ' gesenkt auf <strong>' . \TF::fF($offer->discounted_price) . '€</strong> statt ' . \TF::fF($offer->original_price) . '€ ('.$offer->procent.'% Rabatt auf '. $offer->shop .').';
+ $feed->add($offer->name, $offer->shop, $offer->url, $offer->created_at, $desc, $desc);
+ }
+
+ return $feed->render('atom');
+
+ }
+}
diff --git a/site/app/Http/Controllers/FKOfferController.php b/site/app/Http/Controllers/FKOfferController.php
index 3c761b3..8487426 100644
--- a/site/app/Http/Controllers/FKOfferController.php
+++ b/site/app/Http/Controllers/FKOfferController.php
@@ -60,13 +60,13 @@ class FKOfferController extends Controller {
$data = DB::table($view_name . '_view')->whereNotNull('url')->orderBy($sort_by, $order_by)->simplePaginate(20);
$count = DB::table($view_name . '_view')->whereNotNull('url')->count();
- $rss_feed = "/" . $view_name . "/feed/";
+ $rss_feed = "/angebote/" . $view_name . "/feed/";
$query_string = "";
$query_params = Input::except('page');
foreach( $query_params as $key => $value) {
$query_string .= "&" . $key . "=" . $value;
}
- if ( "" != $query_string ) {
+ if ( "search" == $view_name && "" != $query_string ) {
$query_string = ltrim($query_string, "&");
$rss_feed .= "?" . $query_string;
}
diff --git a/site/app/Http/Controllers/FKSearchController.php b/site/app/Http/Controllers/FKSearchController.php
new file mode 100644
index 0000000..a148bba
--- /dev/null
+++ b/site/app/Http/Controllers/FKSearchController.php
@@ -0,0 +1,80 @@
+<?php
+namespace App\Http\Controllers;
+use Illuminate\Http\Request;
+use App\Helpers\CryptoHelper;
+
+use Illuminate\Support\Facades\DB;
+use App\Http\Controllers\Controller;
+
+use Illuminate\Support\Facades\Input;
+
+use App\Libraries\Utility;
+
+class FKSearchController extends Controller {
+ /**
+ * Shows the index page.
+ *
+ * @return Response
+ */
+ public function showPage(Request $request) {
+
+ /*
+ * Sorting
+ */
+ $sort_by = Input::get("sort");
+ switch ($sort_by) {
+ case("price"):
+ $sort_by = "discounted_price";
+ break;
+ case("discounted_price"):
+ $sort_by = "discounted_price";
+ break;
+ case("name"):
+ $sort_by = "name";
+ break;
+ case("shop"):
+ $sort_by = "shop";
+ break;
+ case("procent"):
+ $sort_by = "procent";
+ break;
+ case("time"):
+ $sort_by = "created_at";
+ break;
+ case("created_at"):
+ $sort_by = "created_at";
+ break;
+ default:
+ $sort_by = "created_at";
+ break;
+ }
+
+ $order_by = $request->input("order");
+ if ( "desc" != $order_by ) {
+ if ( "created_at" == $sort_by &&"asc" != $order_by ) {
+ $order_by = "desc";
+ } else {
+ $order_by = "asc";
+ }
+ }
+
+ $query = Input::get("q");
+ $q = "%" . Utility::escapeLike($query) . "%";
+ $data = DB::table('all_view')->whereNotNull('url')->where('name', 'like', $q)->orWhere('spirit_type', 'like', $q)->orWhere('shop', 'like', $q)->orderBy($sort_by, $order_by)->simplePaginate(20);
+ $count = DB::table('all_view')->whereNotNull('url')->where('name', 'like', $q)->orWhere('spirit_type', 'like', $q)->orWhere('shop', 'like', $q);
+
+ $query_string = "";
+ $query_params = Input::except('page');
+ foreach( $query_params as $key => $value) {
+ $query_string .= "&" . $key . "=" . $value;
+ }
+ $query_string = ltrim($query_string, "&");
+
+ /*
+ * For strftime() in view.
+ */
+ #setlocale(LC_TIME, 'de_DE.utf8');
+
+ return view('fk-search', ['data' => $data, 'count' => $count, 'search_phrase' => $query, 'rss_feed' => '/angebote/search/feed/?' . $query_string ]);
+ }
+}
diff --git a/site/resources/views/fk-offer.blade.php b/site/resources/views/fk-offer.blade.php
index ad9b88c..54a559a 100644
--- a/site/resources/views/fk-offer.blade.php
+++ b/site/resources/views/fk-offer.blade.php
@@ -5,18 +5,21 @@
@endsection
@section('feed')
- {!! Feed::link(secure_url($rss_feed), 'atom', 'Feed von ' . $spirit_type, 'de') !!}
+ {!! Feed::link(secure_url($rss_feed) . "/", 'atom', 'Feed von ' . ucfirst($spirit_type) . '-Angeboten', 'de') !!}
@endsection
@section('content')
+<main class="site-main" id="main">
<?php
- $header;
+ $header = "";
+ $header_text = "Du bist auf der Suche nach einer neuen Lieblingsspirituose? Hier sind alle aktuell reduzierten Angebote aufgelistet. Viel Spaß beim stöbern!";
if ( "Alle Angebote" == $spirit_type ) {
$header = "Alle aktuellen Sonderangebote";
} else if ( "Andere Angebote" == $spirit_type ){
$header = "Aktuelle Spirituosen-Sonderangebote";
} else {
$header = "Aktuelle " . ucfirst($spirit_type) . "-Angebote";
+ $header_text = "Du bist auf der Suche nach einem neuen Lieblings" . $spirit_type . "? Hier sind alle aktuell reduzierten " . ucfirst($spirit_type) . "s aufgelistet. Happy Dramming!";
}
?>
<div class="container">
@@ -36,10 +39,16 @@
<div class="card taxonomy-card">
<div class="card-body">
<h1 class="card-title page-title">{{ $header }}</h1>
+ <p>
+ {{ $header_text }}
+ </p>
+ @include('snippets.fk-sortbuttons')
</div>
</div>
</header><!-- .page-header -->
+ {{ $data->appends(Input::except('page'))->links() }}
+
<?php
/*
<div class="jumbotron p-3 p-md-5 text-white rounded bg-dark bbg-white ttext-dark box-shadow">
@@ -92,7 +101,7 @@ foreach( $data as $offer) {
<div class="col-md-8 px-10">
<div class="card-header">
<p><strong>
- {{ ucfirst($offer->spirit_type) }} <span class="float-right">{{ $offer->shop }}</span>
+ <a style="color: inherit;" href="/angebote/search?q={{ ucfirst($offer->spirit_type) }}" title="Alle {{ ucfirst($offer->spirit_type) }} anzeigen">{{ ucfirst($offer->spirit_type) }}</a> <span class="float-right">{{ $offer->shop }}</span>
</strong></p>
</div>
<div class="card-block card-body px-3">
@@ -101,10 +110,10 @@ foreach( $data as $offer) {
<div class="row">
<p class="card-text col-md-6">
- <span style="color:red;">Alter Preis: {{ TF::fF($offer->original_price) }} €</span>
- <br>
<strong>Neuer Preis: {{ TF::fF($offer->discounted_price) }} €</strong>
<br>
+ <span style="color:red;">Alter Preis: {{ TF::fF($offer->original_price) }} €</span>
+ <br>
{{ TF::fF($offer->base_price ) }} € / Liter
</p>
<p class="card-text col-md-6">
@@ -275,7 +284,7 @@ foreach( $data as $offer) {
<!-- ./container -->
</div>
-
+</main>
@endsection
@section('scripts')
diff --git a/site/resources/views/fk-search.blade.php b/site/resources/views/fk-search.blade.php
new file mode 100644
index 0000000..6c0957c
--- /dev/null
+++ b/site/resources/views/fk-search.blade.php
@@ -0,0 +1,313 @@
+@extends('layouts.fk-base')
+
+@section('header')
+Finde den besten Deal
+@endsection
+
+@section('feed')
+ {!! Feed::link(secure_url($rss_feed), 'atom', 'Feed von ' . $search_phrase , 'de') !!}
+@endsection
+
+@section('content')
+<div class="container">
+ <nav class="breadcrumbs" typeof="BreadcrumbList" vocab="https://schema.org/" aria-label="breadcrumb">
+ <ol class="breadcrumb">
+ <!-- Breadcrumb NavXT 6.2.1 -->
+<li class="home breadcrumb-item"><span property="itemListElement" typeof="ListItem"><a property="item" typeof="WebPage" title="Gehe zur Startseite: Fuselkönig.de" href="https://www.fuselkoenig.de" class="home"><span property="name">Startseite</span></a><meta property="position" content="1"></span></li>
+<li class="post post-angebote-archive breadcrumb-item"><span property="itemListElement" typeof="ListItem"><a property="item" typeof="WebPage" title="Schau dir Angebote an." href="/angebote/" class="post post-angebote-archive"><span property="name">Angebote</span></a><meta property="position" content="2"></span></li>
+<li class="archive taxonomy type current-item breadcrumb-item active" aria-current="page"><span property="itemListElement" typeof="ListItem"><span property="name">Suche nach <strong>"{{ ucfirst($search_phrase) }}"</strong></span><meta property="position" content="3"></span></li>
+ </ol>
+ </nav>
+ </div>
+
+ <div class="container">
+
+<header class="page-header">
+<?php
+if ( $data->count() ) {
+?>
+ <div class="card taxonomy-card">
+ <div class="card-body">
+ <h1 class="card-title page-title">Suche</h1>
+ <p>
+ Sie haben nach <strong>{{ ucfirst($search_phrase) }}</strong> gesucht ({{$count->count()}} Treffer)
+ </p>
+ @include('snippets.fk-sortbuttons')
+<?php
+} else {
+?>
+<div class="alert alert-error" data-track-content data-content-name="Suche" data-content-piece="Keine Angebote" data-content-target="">
+ <h1 class="alert-heading">Keinen Treffer</h1>
+ <p style="font-size: 17px;">
+ Leider hat Ihre Suche nach <strong>{{ $search_phrase }}</strong> keine Ergebnisse ergeben. Bitte versuchen sie es erneut mit einem anderen Begriff.
+ </p>
+
+ <form action="/angebote/search">
+ <div class="form-group">
+ <label for=""></label>
+ <input type="text" class="form-control" name="q" id="front_search_form" aria-describedby="suchform-help" placeholder="Hier nach der gewünschten Spirituose suchen...">
+ <p id="front_search_help" class="form-text">Suche zum Beispiel nach Glenfiddich oder Champagner.</p>
+ </div>
+ <button type="submit" class="btn btn-secondary">Suchen</button>
+ </form>
+</div>
+<?php
+}
+?>
+
+ </div>
+</header><!-- .page-header -->
+
+ {{ $data->appends(Input::except('page'))->links() }}
+
+<?php
+/*
+ <div class="jumbotron p-3 p-md-5 text-white rounded bg-dark bbg-white ttext-dark box-shadow">
+ <div class="col-md-6 px-0">
+ <h1 class="display-4 font-italic">{{ ucfirst($spirit_type) }} <span class="text-mute ml-10">({{$count}} Angebote)</span><!-- --></h1>
+ <!--p class="lead my-3">Finde immer die günstigsten Angebote im Bereich Spirituosen. Täglich neue Schnäppchen.</p-->
+ <p class="lead mb-0"><a href="/" class="text-white font-weight-bold">Zurück zur Übersicht...</a></p>
+ </div>
+ </div>
+ */ ?>
+
+<?php
+if ( !$data->count() ) {
+ /* Keine Angebote */
+?>
+<?php
+ /* Ende Keine Angebote */
+} else {
+ /* Liste Angebote */
+
+//@include('snippets.sortbuttons')
+$css_border_left = "";
+
+foreach( $data as $offer) {
+?>
+
+
+
+
+
+ <div class="card <?php echo $css_border_left; ?>">
+ <div class="row ">
+ <div class="col-md-4">
+ <div class="card-header-dp-none">
+ <p><strong>
+ <span style="visibility: hidden;">
+ {{ ucfirst($offer->spirit_type) }} <span class="float-right">{{ $offer->shop }}</span>
+ </span>
+ </strong></p>
+ </div>
+ <div class="card-img-overlay card-img-overlay-badge" >
+ <p class="card-text float-right rounded off-badge" >{{ $offer->procent}} %</p>
+ </div>
+ <img src="{{ $offer->image_url }}" class="card-img img-fluid mx-auto d-block" >
+ </div>
+ <div class="col-md-8 px-10">
+ <div class="card-header">
+ <p><strong>
+ {{ ucfirst($offer->spirit_type) }} <span class="float-right">{{ $offer->shop }}</span>
+ </strong></p>
+ </div>
+ <div class="card-block card-body px-3">
+
+ <h3 class="card-title">{{ $offer->name }}</h3>
+
+ <div class="row">
+ <p class="card-text col-md-6">
+ <strong>Neuer Preis: {{ TF::fF($offer->discounted_price) }} €</strong>
+ <br>
+ <span style="color:red;">Alter Preis: {{ TF::fF($offer->original_price) }} €</span>
+ <br>
+ {{ TF::fF($offer->base_price ) }} € / Liter
+ </p>
+ <p class="card-text col-md-6">
+ Alkohol: {{ TF::fF($offer->abv) }} %
+ <br>
+ Volumen: {{ TF::fF($offer->volume) }} Liter
+ <br>
+ Versand: {{ TF::fF($offer->shipping_costs) }} €
+ <br>
+ <br>
+ </p>
+ </div>
+ </div>
+ <div class="card-footer row">
+ <div class="col-md-6 col-sm-6">
+ <a href="{{ $offer->url }}" class="btn btn-primary">Zum Shop</a>
+ </div>
+ <div class="col-md-6 col-sm-6">
+ <p>
+ Preis vom {{ strftime("%d. %B", $offer->created_at) }}
+ </p>
+ </div>
+<?php
+ /*if ( $offer['include_post_link'] ) {
+?>
+ <a href="<?php echo get_post_permalink( $post ); ?>#title" class="btn btn-light" title="Kommentieren und mehr">Detailansicht</a>
+<?php
+ }
+ */
+?>
+ <!--p class="float-right">Preis vom {{ strftime("%d. %B", $offer->created_at) }}</p-->
+ </div>
+ </div>
+
+ </div>
+ </div>
+
+<?php
+ }
+/*
+<div class="col-md-6 col-sm-12" id="{{ $offer->name }}" data-track-content data-content-name="{{ ucfirst($spirit_type) }}" data-content-piece="{{ $offer->name }}" data-content-target="{{ $offer->url }}">
+ <div class="card flex-md-row mb-4 box-shadow h-md-250 h-sm-500">
+
+ <!-- >= md -->
+ <div class="card-body d-none d-md-flex flex-row align-items-start">
+ <div class="card-img-overlay" title="{{$offer->name}} :: {{ $offer->shop }}">
+ <p class="card-text bg-danger float-right rounded off-badge">{{ $offer->procent}}%</p>
+<!--
+ <p class="card-text h-100 float-right">
+ <span class="bg-danger ffloat-right rounded off-badge">{{ $offer->procent}}%</span>
+ <span class="created_at d-flex ffloat-right rounded">{{ date("d.m.y", $offer->created_at) }}</span>
+ </p>
+-->
+
+ <!--p class="card-text created_at h-100 float-right d-flex fflex-column justify-content-end">{{ $offer->created_at}}</p-->
+ </div>
+ <div class="card-img-overlay w-55">
+ <div class="d-inline align-items-start text-left w-100 mb-2">
+ <a class="s-link" title="Alles anzeigen von: {{ $offer->spirit_type }}" href="/search?q={{ $offer->spirit_type }}"><strong class="text-primary">{{ $offer->spirit_type }}</strong></a>
+ <a class="text-dark float-right" href="{{ $offer->shop_url }}">{{ $offer->shop }}</a>
+ </div>
+
+ <h4 class="mb-0 hide-overflow h-45">
+ <a class="text-dark ttext-truncate hide-overflow" href="{{ $offer->url }}" title="{{$offer->name}}" >{{ $offer->name }}</a>
+ <span class="text-fade-out"></span>
+ </h4>
+
+ <p class="card-text mb-auto text-success w-100"><strong class="ffloat-right text-large" style="margin-left: 3px;">{{ TF::fF($offer->discounted_price) }}€</strong>* <del class="text-danger">{{ TF::fF($offer->original_price) . "€" }}</del>
+ <span class="float-right text-muted">{{ TF::fF($offer->base_price ) }}€/L</span>
+ </p>
+ <div class="mb-1 text-muted w-100">
+ <span class="float-right">{{ TF::fF($offer->volume) . " Liter" }}</span><span>{{ TF::fF($offer->abv) . "%" }} Alk.</span>
+ </div>
+ <a class="u ttext-large" href="{{ $offer->url }}" title="Link zum Angebot bei {{$offer->shop}}">Jetzt bestellen</a>
+ <p class="text-muted text-small w-100 nnmt-10">
+ Versand: <strong>{{ TF::fF($offer->shipping_costs) }}€</strong>
+<?php
+ if ( "" != $offer->free_shipping ) {
+?>
+ <span class=" float-right">Gratis ab <strong>{{ $offer->free_shipping }}</strong></span>
+<?php
+ } else {
+?>
+ <span class=" float-right">Versand ist nie kostenlos.</span>
+<?php
+ }
+?>
+ <br>
+<!--
+ <span class=" float-right">{{ date("d.m.Y", $offer->created_at) }}</span>
+-->
+ <span class=" float-right">* Preis vom <strong>{{ strftime("%d. %B", $offer->created_at) }}</strong></span>
+ </p>
+ </div>
+ </div>
+ <img class="card-img-right flex-auto d-none d-md-block border-white img-thumbnail" src="{{ $offer->image_url }}" alt="{{ $offer->name }}" title="{{$offer->name}} :: {{ $offer->shop }}">
+
+ <!-- <= sm -->
+ <!-- Maybe make the image a link
+ <a href="{{ $offer->url }}">
+ </a>
+ -->
+<?php
+ // sets style explicitly for Drankdozijn
+ if ( "Drankdozijn" == $offer->shop ) {
+ $style = 'margin-left: auto; margin-right: 25px; width:50%; object-fit: cover; width: 70px;';
+ } else {
+ $style = '';
+ }
+?>
+ <img style="{{ $style }}" class="card-img-top flex-auto d-sm-block img-thumbnail d-md-none" src="{{ $offer->image_url }}" alt="{{ $offer->name }}" title="{{$offer->name}} :: {{ $offer->shop }}">
+ <div class="card-body .d-md-none d-lg-none d-xl-none d-xs-flex flex-column align-items-start">
+<!--
+ <div class="h-100 card-img-overlay">
+ <p class="card-text bg-danger float-right rounded" style="color: white; font-size: 150%; padding-right: 10px; padding-left:10px; opacity: 0.9;">{{ $offer->procent}}%</p>
+ </div>
+-->
+ <div class="flex-column bg-dark-opacity" >
+ <div class="d-inline align-items-start text-left w-100 mb-2">
+ <p class="card-text bg-danger rounded off-badge text-center" title="{{$offer->name}} :: {{ $offer->shop }}"><strong>{{ $offer->procent}}%</strong> gesenkt</p>
+ <a class="text-dark float-right text-dotted" href="{{ $offer->shop_url }}">{{ $offer->shop }}</a>
+ </div>
+ <div class="d-block align-items-start text-left w-100 mb-2">
+ <strong class="text-primary">{{ $offer->spirit_type }}</strong>
+ </div>
+ <h3 class="mb-0 d-inline-block hide-overflow h-100">
+ <a class="text-dark ttext-truncate" href="{{ $offer->url }}" title="{{$offer->name}}" >{{ $offer->name }}</a>
+ </h3>
+
+ <div class="mb-1 text-muted w-100">
+ <span class="float-right">{{ TF::fF($offer->volume) . " Liter" }}</span><span>{{ TF::fF($offer->abv) . "%" }} Alk.</span>
+ </div>
+
+ <p class="card-text mb-auto text-success w-100"><strong class="ffloat-right text-large" style="margin-left: 3px;">{{ TF::fF($offer->discounted_price) }}€</strong>* <del class="text-danger">{{ TF::fF($offer->original_price) . "€" }}</del>
+ <span class="float-right text-muted">{{ TF::fF($offer->base_price ) }}€/L</span>
+ </p>
+ <strong><a href="{{ $offer->url }}" class="text-large">Jetzt bestellen</a></strong>
+ <p class="text-muted text-small w-100 nmt-10">
+ Versand: <strong>{{ TF::fF($offer->shipping_costs) }}€</strong>
+<?php
+ if ( "" != $offer->free_shipping ) {
+?>
+ <span class=" float-right">Gratis ab <strong>{{ $offer->free_shipping }}</strong></span>
+<?php
+ } else {
+?>
+ <span class=" float-right">Versand ist nie kostenlos.</span>
+<?php
+ }
+?>
+ <br>
+ <span class=" float-right">* Preis vom <strong>{{ strftime("%d. %B", $offer->created_at) }}</strong></span>
+ </p>
+ </div>
+ </div>
+ </div>
+ </div>
+<?php
+*/
+?>
+
+ {{ $data->appends(Input::except('page'))->links() }}
+
+<?php
+ /* Ende Liste Angebote */
+}
+?>
+
+<!-- ./container -->
+ </div>
+
+@endsection
+
+@section('scripts')
+<script>
+$(window).on("load", function(){
+ $("img.card-img-top").each( function(k, v){
+
+ // sets style like with Drankdozijn
+ if ( (this.naturalWidth / this.naturalHeight) < 0.3 ) {
+ console.log("debug: changing css for " + this.title);
+ $(this).css("width", this.naturalWidth);
+ $(this).css("onject-fit", "cover");
+ $(this).css("margin-left", "auto");
+ $(this).css("margin-right", "25px");
+ }
+ });
+});
+</script>
+@endsection
diff --git a/site/resources/views/layouts/fk-base.blade.php b/site/resources/views/layouts/fk-base.blade.php
index 14352a1..a2429d6 100644
--- a/site/resources/views/layouts/fk-base.blade.php
+++ b/site/resources/views/layouts/fk-base.blade.php
@@ -22,6 +22,7 @@
<link rel='stylesheet' id='theme-styles-css' href='https://www.fuselkoenig.de/wp-content/themes/fuselkoenig_de_v2/css/theme.css?ver=0.1.1551979696' type='text/css' media='all' />
<link rel='stylesheet' id='elasticpress-facets-css' href='https://www.fuselkoenig.de/wp-content/plugins/elasticpress/features/facets/assets/css/facets.min.css?ver=2.8.2' type='text/css' media='all' />
<link rel='stylesheet' id='recent-posts-widget-with-thumbnails-public-style-css' href='https://www.fuselkoenig.de/wp-content/plugins/recent-posts-widget-with-thumbnails/public.css?ver=6.4.0' type='text/css' media='all' />
+ <link rel='stylesheet' href="https://www.fuselkoenig.de/wp-content/themes/fuselkoenig_de_v2/css/open-iconic-bootstrap.css">
<!--link href="https://angebote.fuselkoenig.de/font/css/open-iconic-bootstrap.css" rel="stylesheet">
<link href="https://angebote.fuselkoenig.de/css/custom.css" rel="stylesheet">
diff --git a/site/resources/views/snippets/fk-navbar.blade.php b/site/resources/views/snippets/fk-navbar.blade.php
index 2b91217..2dcc255 100644
--- a/site/resources/views/snippets/fk-navbar.blade.php
+++ b/site/resources/views/snippets/fk-navbar.blade.php
@@ -41,17 +41,17 @@
<div class="row">
<div class="col-sm col-xl-8 align-self-center">
<h1 class="d-none d-lg-inline"><a class="brand-url" rel="home" href="https://www.fuselkoenig.de/" title="Fuselkönig" itemprop="url">Fuselkönig</a></h1>
- <p class="slogan">Supermarkt-Spirituosen im Test</p>
+ <p class="slogan">Finde den besten Deal in Sachen Spirituosen</p>
</div>
<div class="col-sm col-xl-4 align-self-center">
-<form class="form-inline my-2 my-lg-0 float-none float-sm-right" method="get" id="searchform" action="https://www.fuselkoenig.de/" role="search">
+<form class="form-inline my-2 my-lg-0 float-none float-sm-right" method="get" id="searchform" action="https://www.fuselkoenig.de/angebote/search" role="search">
<label class="sr-only" for="s">Search</label>
<div class="input-group">
- <input class="field form-control" id="s" name="s" type="text"
- placeholder="Den Blog durchsuchen&hellip;" value="">
+ <input class="field form-control" id="q" name="q" type="text"
+ placeholder="Alle Angebote durchsuchen&hellip;" value="">
<span class="input-group-append">
- <button class="btn btn-dark my-2 my-sm-0" id="searchsubmit" name="submit" type="submit"><i class="material-icons">search</i></button>
+ <button class="btn btn-dark my-2 my-sm-0" id="searchsubmit" name="" type="submit"><i class="material-icons">search</i></button>
</span>
</div>
</form>
diff --git a/site/resources/views/snippets/fk-sortbuttons.blade.php b/site/resources/views/snippets/fk-sortbuttons.blade.php
new file mode 100644
index 0000000..f49d29a
--- /dev/null
+++ b/site/resources/views/snippets/fk-sortbuttons.blade.php
@@ -0,0 +1,141 @@
+<?php
+$filter = Request::Input('sort');
+$order = Request::Input('order');
+$show_filter = false;
+
+switch( $filter ) {
+ case "price":
+ $filter = "Preis";
+ break;
+ case "name":
+ $filter = "Name";
+ break;
+ case "shop":
+ $filter = "Shop";
+ break;
+ case "procent":
+ $filter = "Preisnachlass";
+ break;
+ case "time":
+ $filter = "Aktualität";
+ break;
+ default: $filter = "";
+ break;
+}
+
+if ( "" != $filter ) {
+ $show_filter = true;
+}
+
+if ( "desc" == $order ) {
+ $order = "Absteigend";
+} else {
+ $order = "Aufsteigend";
+}
+?>
+<p>
+ <button class="btn btn-white" type="button" data-toggle="collapse" data-target="#collapsefilter" aria-expanded="false" aria-controls="collapsefilter">
+ Filter Anzeigen
+ </button>
+<!--
+ <button class="btn btn-white" type="button" data-toggle="collapse" data-target="#collapsesearch" aria-expanded="false" aria-controls="collapsesearch">
+ Suchen…
+ </button>
+-->
+ <a class="btn btn-rss btn-primary text-white pull-right" href={{ secure_url($rss_feed) }} title="Link zum RSS-Feed" onclick="javascript:_paq.push(['trackEvent', 'Sort-Button', 'RSS-Feed']);">
+ <span class="oi oi-rss-alt" title="Link zum RSS-Feed" aria-hidden="true"></span>
+ </a>
+</p>
+
+<div class="collapse" id="collapsefilter">
+<p>Sortieren nach: <?php if ( $show_filter ) { ?><strong>{{ $filter . " (" . $order . ")" }} </strong><?php }?></p>
+<div class="btn-toolbar mb-2 align-top w-100" role="toolbar" aria-label="Sortieren">
+ <div class="btn-group mr-2 mt-2" role="group" aria-label="Sortieren">
+ <div class="dropdown mr-2">
+ <button class="btn btn-info dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+ Preis
+ </button>
+ <div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
+ <a class="dropdown-item" href="?sort=price&order=asc{!! Request::is('angebote/search') ? '&q=' : '' !!}{{ Request::is('angebote/search') ? $search_phrase : '' }}" onclick="javascript:_paq.push(['trackEvent', 'Sort-Button', 'Preis', 'Niedrigster Preis']);">Niedrigster Preis</a>
+ <a class="dropdown-item" href="?sort=price&order=desc{!! Request::is('angebote/search') ? '&q=' : '' !!}{{ Request::is('angebote/search') ? $search_phrase : '' }}" onclick="javascript:_paq.push(['trackEvent', 'Sort-Button', 'Preis', 'Höchster Preis']);">Höchster Preis</a>
+ </div>
+ </div>
+ <div class="dropdown mr-2">
+ <button class="btn btn-info dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+ Name
+ </button>
+ <div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
+ <a class="dropdown-item" href="?sort=name&order=asc{!! Request::is('angebote/search') ? '&q=' : '' !!}{{ Request::is('angebote/search') ? $search_phrase : '' }}" onclick="javascript:_paq.push(['trackEvent', 'Sort-Button', 'Name', 'Alphabetisch']);">Alphabetisch</a>
+ <a class="dropdown-item" href="?sort=name&order=desc{!! Request::is('angebote/search') ? '&q=' : '' !!}{{ Request::is('angebote/search') ? $search_phrase : '' }}" onclick="javascript:_paq.push(['trackEvent', 'Sort-Button', 'Name', 'Umgekehrt']);">Umgekehrt</a>
+ </div>
+ </div>
+ </div>
+ <div class="btn-group mr-2 mt-2" role="group" aria-label="Sortieren">
+ <div class="dropdown mr-2">
+ <button class="btn btn-info dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+ Shop
+ </button>
+ <div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
+ <a class="dropdown-item" href="?sort=shop&order=asc{!! Request::is('angebote/search') ? '&q=' : '' !!}{{ Request::is('angebote/search') ? $search_phrase : '' }}" onclick="javascript:_paq.push(['trackEvent', 'Sort-Button', 'Shop', 'Alphabetisch']);">Alphabetisch</a>
+ <a class="dropdown-item" href="?sort=shop&order=desc{!! Request::is('angebote/search') ? '&q=' : '' !!}{{ Request::is('angebote/search') ? $search_phrase : '' }}" onclick="javascript:_paq.push(['trackEvent', 'Sort-Button', 'Shop', 'Umgekehrt']);">Umgekehrt</a>
+ </div>
+ </div>
+ </div>
+ <div class="btn-group mr-2 mt-2" role="group" aria-label="Sortieren">
+ <div class="dropdown mr-2">
+ <button class="btn btn-info dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+ Preisnachlass
+ </button>
+ <div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
+ <a class="dropdown-item" href="?sort=procent&order=asc{!! Request::is('angebote/search') ? '&q=' : '' !!}{{ Request::is('angebote/search') ? $search_phrase : '' }}" onclick="javascript:_paq.push(['trackEvent', 'Sort-Button', 'Preisnachlass', 'Niedrigster Preisnachlass']);">Niedrigster Preisnachlass</a>
+ <a class="dropdown-item" href="?sort=procent&order=desc{!! Request::is('angebote/search') ? '&q=' : '' !!}{{ Request::is('angebote/search') ? $search_phrase : '' }}" onclick="javascript:_paq.push(['trackEvent', 'Sort-Button', 'Preisnachlass', 'Höchster Preisnachlass']);">Höchster Preisnachlass</a>
+ </div>
+ </div>
+ </div>
+ <div class="btn-group mr-2 mt-2" role="group" aria-label="Sortieren">
+ <div class="dropdown">
+ <button class="btn btn-info dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+ Aktualität
+ </button>
+ <div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
+ <a class="dropdown-item" href="?sort=time&order=desc{!! Request::is('angebote/search') ? '&q=' : '' !!}{{ Request::is('angebote/search') ? $search_phrase : '' }}" onclick="javascript:_paq.push(['trackEvent', 'Sort-Button', 'Aktualität', 'Neueste zuerst']);">Neueste zuerst (Standard)</a>
+ <a class="dropdown-item" href="?sort=time&order=asc{!! Request::is('angebote/search') ? '&q=' : '' !!}{{ Request::is('angebote/search') ? $search_phrase : '' }}" onclick="javascript:_paq.push(['trackEvent', 'Sort-Button', 'Aktualität', 'Älteste zuerst']);">Älteste zuerst</a>
+ </div>
+ </div>
+ </div>
+ <div class="btn-group mr-2 mt-2" role="group" aria-label="Sortieren">
+ <a class="btn btn-white" href="{{ secure_url(Request::url()) }}{!! Request::is('angebote/search') ? '?q=' : '' !!}{{ Request::is('angebote/search') ? $search_phrase : ''}}">
+ <span class="fa fa-times-circle"></span> Filter Entfernen
+ </a>
+ </div>
+
+ </div> <!-- .btn-toolbar -->
+
+<!--
+<form style="max-width: 100%;" class="fform-inline my-2 my-lg-0" method="get" id="angebote_searchform" action="/angebote/search" role="search">
+ <label class="sr-only" for="s">Search</label>
+ <div class="input-group">
+ <input class="field form-control" id="" name="q" type="text"
+ placeholder="Hier nach der gewünschten Spirituose suchen&hellip;" value="">
+ <span class="input-group-append">
+ <button class="btn btn-dark my-2 my-sm-0" id="ssearchsubmit" name="submit" type="submit"><i class="material-icons">search</i></button>
+ </span>
+ </div>
+</form>
+-->
+
+</div> <!-- .collapse -->
+
+
+<div class="collapse" id="collapsesearch">
+<!--
+ <form action="/angebote/search">
+ <div class="form-group">
+ <label for=""></label>
+ <input type="text" class="form-control" name="q" id="front_search_form" aria-describedby="suchform-help" placeholder="Hier nach der gewünschten Spirituose suchen...">
+ <small id="front_search_help" class="form-text">Suche zum Beispiel nach Glenfiddich oder Champagner.</small>
+ </div>
+ <button type="submit" class="btn btn-info">Suchen</button>
+ </form>
+-->
+</div>
diff --git a/site/routes/web.php b/site/routes/web.php
index a7adaef..d61d32b 100644
--- a/site/routes/web.php
+++ b/site/routes/web.php
@@ -26,6 +26,15 @@ Route::get('/angebote/gin', 'FKOfferController@showPage')->name('gin');
Route::get('/angebote/rum', 'FKOfferController@showPage')->name('rum');
Route::get('/angebote/misc', 'FKOfferController@showPage')->name('misc');
Route::get('/angebote/all', 'FKOfferController@showPage')->name('all');
+Route::get('/angebote/search', 'FKSearchController@showPage')->name('searchp');
+
+Route::get('/angebote/whisky/feed', 'FKFeedController@showPage')->name('whisky_feed');
+Route::get('/angebote/wodka/feed', 'FKFeedController@showPage')->name('wodka_feed');
+Route::get('/angebote/gin/feed', 'FKFeedController@showPage')->name('gin_feed');
+Route::get('/angebote/rum/feed', 'FKFeedController@showPage')->name('rum_feed');
+Route::get('/angebote/misc/feed', 'FKFeedController@showPage')->name('misc_feed');
+Route::get('/angebote/all/feed', 'FKFeedController@showPage')->name('all_feed');
+Route::get('/angebote/search/feed', 'FKFeedController@showPage')->name('search_feed');
Route::get('/wp/whisky', 'WPOfferController@showPage')->name('whisky');
Route::get('/wp/wodka', 'WPOfferController@showPage')->name('wodka');