From 3fe0381d28d9c5844c82d908b77d3aa4b0aca737 Mon Sep 17 00:00:00 2001
From: horus
Date: Fri, 7 Jan 2022 14:02:05 +0100
Subject: first release of kategorischeraperitif.de
---
app/Cocktail.php | 21 ++
app/Http/Controllers/.IndexController.php.swp | Bin 0 -> 12288 bytes
app/Http/Controllers/CocktailController.php | 49 +++++
app/Http/Controllers/IndexController.php | 44 +++-
app/Http/Controllers/ListOfferController.php | 4 +-
app/Ingredient.php | 19 ++
app/Libraries/Helper.php | 27 +++
config/database.php | 15 ++
resources/views/angebote_index.blade.php | 142 ++++++++++++
resources/views/cocktail_index.blade.php | 108 +++++++++
resources/views/cocktail_list.blade.php | 92 ++++++++
resources/views/index.blade.php | 244 ++++++++++++++++-----
resources/views/layouts/base.blade.php | 15 ++
resources/views/offers.blade.php | 4 +-
resources/views/search.blade.php | 2 +-
resources/views/snippets/breadcrumbs.blade.php | 32 ++-
resources/views/snippets/navbar.blade.php | 97 +++++---
.../views/snippets/spirittypesbuttons.blade.php | 2 +-
resources/views/url | 33 +++
routes/web.php | 34 +--
20 files changed, 861 insertions(+), 123 deletions(-)
create mode 100644 app/Cocktail.php
create mode 100644 app/Http/Controllers/.IndexController.php.swp
create mode 100644 app/Http/Controllers/CocktailController.php
create mode 100644 app/Ingredient.php
create mode 100644 app/Libraries/Helper.php
create mode 100644 resources/views/angebote_index.blade.php
create mode 100644 resources/views/cocktail_index.blade.php
create mode 100644 resources/views/cocktail_list.blade.php
create mode 100644 resources/views/url
diff --git a/app/Cocktail.php b/app/Cocktail.php
new file mode 100644
index 0000000..31f40c1
--- /dev/null
+++ b/app/Cocktail.php
@@ -0,0 +1,21 @@
+hasMany('App\Ingredient');
+ }
+}
+
diff --git a/app/Http/Controllers/.IndexController.php.swp b/app/Http/Controllers/.IndexController.php.swp
new file mode 100644
index 0000000..52ff3e9
Binary files /dev/null and b/app/Http/Controllers/.IndexController.php.swp differ
diff --git a/app/Http/Controllers/CocktailController.php b/app/Http/Controllers/CocktailController.php
new file mode 100644
index 0000000..f876dfe
--- /dev/null
+++ b/app/Http/Controllers/CocktailController.php
@@ -0,0 +1,49 @@
+count();
+ return view('cocktail_index', [ "cocktail_count" => $cocktail_count ]);
+ }
+
+ public function search(Request $request) {
+
+ $ingredients = $request->input("i");
+
+ $cocktails = new Cocktail;
+
+ foreach($ingredients as $q) {
+ $q = Helper::escapeLike($q);
+ $q = "%".$q."%";
+ $cocktails = $cocktails->where(function($query) use ($q){
+ $query->whereHas("getIngredients", function ($query) use ($q){
+ $query->where('name', 'like', $q);
+ });
+ });
+ }
+
+ $count = $cocktails->count();
+
+ $search_phrase = "";
+ foreach(array_filter($ingredients) as $term) {
+ if ( $search_phrase != "" )
+ $search_phrase = $search_phrase . " und ";
+ $search_phrase = $search_phrase . ucwords($term);
+ }
+ $search_phrase = rtrim($search_phrase, " und ");
+
+ return view('cocktail_list', [ "cocktails" => $cocktails, "count" => $count, "search_terms" => array_filter($ingredients), "search_phrase" => $search_phrase ]);
+ }
+}
diff --git a/app/Http/Controllers/IndexController.php b/app/Http/Controllers/IndexController.php
index d6931ba..24c5615 100644
--- a/app/Http/Controllers/IndexController.php
+++ b/app/Http/Controllers/IndexController.php
@@ -8,18 +8,47 @@ use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Cache;
+use App\Cocktail;
+use App\Ingredient;
+use App\Libraries\Helper;
+
class IndexController extends Controller {
/**
* Shows the index page.
*
* @return Response
*/
- public function showPage(Request $request) {
+ public function angebote(Request $request) {
- if ( Cache::has('index') ) {
- return Cache::get('index');
+ if ( Cache::has('angebote_index') ) {
+ return Cache::get('angebote_index');
} else {
+ $views = array("whisky", "wodka", "gin", "rum", "misc");
+
+ $data = $this->getAngeboteData($request);
+
+ $count = DB::select("SELECT count(*) as count FROM all_view")[0];
+
+ $cached_data = view('angebote_index', ['data' => $data, 'views' => $views, 'hits' => $count])->render();
+ Cache::put('angebote_index', $cached_data, 6000); // 100 minutes
+
+ return $cached_data;
+ }
+ }
+
+ public function index(Request $request) {
+ $views = array("whisky", "wodka", "gin", "rum", "misc");
+ $data = $this->getAngeboteData($request);
+ $count = DB::select("SELECT count(*) as count FROM all_view")[0];
+
+ $cocktails = new Cocktail;
+ $cocktail_count = $cocktails->count();
+
+ return view('index', ['data' => $data, 'views' => $views, 'hits' => $count, 'cocktail_count' => $cocktail_count])->render();
+ }
+
+ private function getAngeboteData(Request $request) {
$views = array("whisky", "wodka", "gin", "rum", "misc");
$query = "";
@@ -51,13 +80,6 @@ class IndexController extends Controller {
$data = DB::select($query);
- $count = DB::select("SELECT count(*) as count FROM all_view")[0];
-
- $cached_data = view('index', ['data' => $data, 'views' => $views, 'hits' => $count])->render();
-
- Cache::put('index', $cached_data, 6000); // 100 minutes
-
- return $cached_data;
- }
+ return $data;
}
}
diff --git a/app/Http/Controllers/ListOfferController.php b/app/Http/Controllers/ListOfferController.php
index 70f0cab..52ae0a0 100644
--- a/app/Http/Controllers/ListOfferController.php
+++ b/app/Http/Controllers/ListOfferController.php
@@ -57,7 +57,7 @@ class ListOfferController extends Controller {
/*
* Database query
*/
- $view_name = \Request::route()->getName();
+ $view_name = ltrim(\Request::route()->getName(), "angebote_");
/**
* Cache output
@@ -78,7 +78,7 @@ class ListOfferController extends Controller {
# Only used on misc_view, all_view and search.
$spirit_types = DB::select('SELECT DISTINCT spirit_type FROM ' . $view_name . '_view ' . ' ORDER BY spirit_type' );
- $rss_feed = $view_name . "/feed/";
+ $rss_feed = "/angebote/" . $view_name . "/feed/";
$query_string = "";
$query_params = $request->except('page');
foreach( $query_params as $key => $value) {
diff --git a/app/Ingredient.php b/app/Ingredient.php
new file mode 100644
index 0000000..67ef6ad
--- /dev/null
+++ b/app/Ingredient.php
@@ -0,0 +1,19 @@
+belongsTo('App\Cocktail');
+ }
+}
diff --git a/app/Libraries/Helper.php b/app/Libraries/Helper.php
new file mode 100644
index 0000000..1e9741e
--- /dev/null
+++ b/app/Libraries/Helper.php
@@ -0,0 +1,27 @@
+format("Y-m-d");
+ }
+
+ public static function contains($array, $str) {
+ foreach($array as $item) {
+ if ( str_contains(strtolower($str), strtolower($item) ) ) {
+ return true;
+ }
+ }
+ return false;
+ }
+}
diff --git a/config/database.php b/config/database.php
index cab5d06..7451147 100644
--- a/config/database.php
+++ b/config/database.php
@@ -54,6 +54,21 @@ return [
'engine' => null,
],
+ 'mysql2' => [
+ 'driver' => 'mysql',
+ 'host' => env('DB_HOST_SECOND', '127.0.0.1'),
+ 'port' => env('DB_PORT_SECOND', '3306'),
+ 'database' => env('DB_DATABASE_SECOND', 'forge'),
+ 'username' => env('DB_USERNAME_SECOND', 'forge'),
+ 'password' => env('DB_PASSWORD_SECOND', ''),
+ 'unix_socket' => env('DB_SOCKET_SECOND', ''),
+ 'charset' => 'utf8mb4',
+ 'collation' => 'utf8mb4_unicode_ci',
+ 'prefix' => '',
+ 'strict' => true,
+ 'engine' => null,
+ ],
+
'pgsql' => [
'driver' => 'pgsql',
'host' => env('DB_HOST', '127.0.0.1'),
diff --git a/resources/views/angebote_index.blade.php b/resources/views/angebote_index.blade.php
new file mode 100644
index 0000000..3507fd4
--- /dev/null
+++ b/resources/views/angebote_index.blade.php
@@ -0,0 +1,142 @@
+@extends('layouts.base')
+
+@section('header')
+Angebote
+@endsection
+
+@section('css')
+
+@endsection
+
+
+@section('description')
+Auf der Suche nach einem Gin, Whisky oder vielleicht einem guten Champagner? Lass dich inspirieren und schaue, was momentan im Angebot ist. Stöbere unter {{$hits->count }} verschiedenen Sonderangeboten.
+@endsection
+
+@section('content')
+
+
+
+
+
+
+@if ( empty($data) )
+
+
Keine Angebote
+ Momentan liegen keine Angebote vor. Probieren Sie es später noch einmal.
+
+@else
+
+ @foreach( $data as $offer)
+spirit_type), $views) ) {
+ $offer->url = "misc";
+ $offer->angebotsname = "weiteren Angeboten";
+ $offer->linktext = "Weitere günstige Angebote entdecken und bis zu " . $offer->procent . "% sparen.";
+ $offer->spirit_type = "Verschiedenes";
+ } else {
+ $offer->url = lcfirst($offer->url) ;
+ $offer->angebotsname = "den " . $offer->angebotsname . "-Angeboten";
+ $offer->linktext = "Finde den günstigsten ". $offer->spirit_type ." und spare bis zu " . $offer->procent . "%.";
+ }
+?>
+ @if ( $loop->index % 2 == 0)
+
+ @endif
+
+
+
+
+
+
+
{{ $offer->procent}} %
+
+
+
+
+
+
+
+
+
+
+
+ @if ( $loop->index % 2 == 1 )
+
+ @endif
+
+ @if ( $loop->last && ($loop->index % 2 == 0) )
+
+ @endif
+
+
+ @endforeach
+
+@endif
+
+Was passiert hier?
+
+Auf dieser Webseite kuratiere ich die aktuellen Sonderangebote der wichtigsten Spirituosenhändler. Neue Angebote werden automatisch erkannt und hinzugefügt; nicht mehr gültige Angebote werden entfernt.
+
+Wie häufig werden die Angebote aktualisiert?
+
+Mehrmals täglich.
+
+Gibt es Push-Nachrichten?
+
+Noch nicht. Momentan ist die einzige Möglichkeit den Angeboten via RSS-Feed zu folgen. Mitteilungen per Push, E-Mail oder Twitter sind jedoch geplant.
+
+Wenn du Interesse an einem Twitter-Feed, Newsletter oder ähnliches hast, schreib mir doch eine kurze, formlose Mail. Je mehr Leute mir schreiben, desto eher kann ich die Wünsche auch umsetzen.
+
+
+Anregungen? Kritik? Wünsche? Einfach mir eine Mail schreiben.
+
+
+
+@endsection
diff --git a/resources/views/cocktail_index.blade.php b/resources/views/cocktail_index.blade.php
new file mode 100644
index 0000000..16156e3
--- /dev/null
+++ b/resources/views/cocktail_index.blade.php
@@ -0,0 +1,108 @@
+@extends('layouts.base')
+
+@section('header')
+Cocktailsuche
+@endsection
+
+@section('css')
+
+
+
+@endsection
+
+@section('content')
+@include('snippets.breadcrumbs')
+
+@if ( "cocktail_index" == Request::route()->getName() )
+
+
+
+
+
+ @endif
+@endsection
diff --git a/resources/views/cocktail_list.blade.php b/resources/views/cocktail_list.blade.php
new file mode 100644
index 0000000..7165b9f
--- /dev/null
+++ b/resources/views/cocktail_list.blade.php
@@ -0,0 +1,92 @@
+@extends('layouts.base')
+
+@section('header')
+Du hast nach {{ implode(" und ", $search_terms) }} gesucht: {{$count}} Cocktails gefunden
+@endsection
+
+@section('styles')
+@endsection
+
+@section('content')
+@include('snippets.breadcrumbs')
+
+
+
+
+
+
+
+
+
+ Du hast nach
+
+ @foreach( $search_terms as $term )
+ @if ( !$loop->first )
+ und
+ @endif
+ {{ $term }}
+ @endforeach
+
+ gesucht.
+
+
+ Zurück zur Suche
+
+
+
+
+
+ @foreach( $cocktails->get() as $cocktail)
+
+
+
+ @if ( ! is_null($cocktail->getIngredients()) )
+
+ @foreach ( $cocktail->getIngredients()->get() as $ing)
+ @php
+ if ( \App\Libraries\Helper::contains($search_terms, $ing->name) ) {
+ echo "";
+ @endphp
+ {{ $ing->name }}
+ @php
+ echo "";
+ } else {
+ @endphp
+ {{ $ing->name }}
+ @php
+ }
+ @endphp
+
+ @endforeach
+
+
+ @endif
+
+
+
+
+
+ @endforeach
+
+ @if ($count != 0)
+
+ @endif
+
+appends(Request::input())->links() }}
+ */ ?>
+
+
+@endsection
diff --git a/resources/views/index.blade.php b/resources/views/index.blade.php
index 5eda16c..7104e7b 100644
--- a/resources/views/index.blade.php
+++ b/resources/views/index.blade.php
@@ -1,56 +1,121 @@
@extends('layouts.base')
@section('header')
-Angebote
+Startseite
@endsection
@section('css')
-@endsection
-
-@section('description')
-Auf der Suche nach einem Gin, Whisky oder vielleicht einem guten Champagner? Lass dich inspirieren und schaue, was momentan im Angebot ist. Stöbere unter {{$hits->count }} verschiedenen Sonderangeboten.
@endsection
@section('content')
-
-
+
+
+
+
+
+
+
+
+
+
@endsection
diff --git a/resources/views/layouts/base.blade.php b/resources/views/layouts/base.blade.php
index 15e905e..8656393 100644
--- a/resources/views/layouts/base.blade.php
+++ b/resources/views/layouts/base.blade.php
@@ -27,12 +27,27 @@
.main-header {
background-image: url("/img/angebote_background.jpg");");
}
+ .ttaxonomy-card {
+ box-shadow: inherit !important;
+ }
@yield('feed')
@yield('css')
+
+
diff --git a/resources/views/offers.blade.php b/resources/views/offers.blade.php
index ea5fac4..479d5dd 100644
--- a/resources/views/offers.blade.php
+++ b/resources/views/offers.blade.php
@@ -19,11 +19,11 @@
- {{ ucwords($offer->spirit_type) }}
+ {{ ucwords($offer->spirit_type) }}
Verkauft von
- {{ ucwords($offer->shop ) }}
+ {{ ucwords($offer->shop ) }}
diff --git a/resources/views/search.blade.php b/resources/views/search.blade.php
index 231dd16..0481726 100644
--- a/resources/views/search.blade.php
+++ b/resources/views/search.blade.php
@@ -24,7 +24,7 @@ Finde den besten Deal
Leider hat Ihre Suche nach
{{ ucwords($search_phrase) }} keine Ergebnisse ergeben. Bitte versuchen sie es erneut mit einem anderen Begriff.
-