From f61c387f100ddeca11531b902a5584a0cad664cf Mon Sep 17 00:00:00 2001 From: horus Date: Fri, 10 May 2019 23:18:48 +0200 Subject: Improving the WP site. (site) --- site/app/Http/Controllers/FKFeedController.php | 132 +++++++++ site/app/Http/Controllers/FKOfferController.php | 4 +- site/app/Http/Controllers/FKSearchController.php | 80 ++++++ site/resources/views/fk-offer.blade.php | 21 +- site/resources/views/fk-search.blade.php | 313 +++++++++++++++++++++ site/resources/views/layouts/fk-base.blade.php | 1 + site/resources/views/snippets/fk-navbar.blade.php | 10 +- .../views/snippets/fk-sortbuttons.blade.php | 141 ++++++++++ site/routes/web.php | 9 + 9 files changed, 698 insertions(+), 13 deletions(-) create mode 100644 site/app/Http/Controllers/FKFeedController.php create mode 100644 site/app/Http/Controllers/FKSearchController.php create mode 100644 site/resources/views/fk-search.blade.php create mode 100644 site/resources/views/snippets/fk-sortbuttons.blade.php (limited to 'site') 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 @@ +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 = '

'.$offer->spirit_type.'
'. $offer->name . ' gesenkt auf ' . \TF::fF($offer->discounted_price) . '€ 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 @@ +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') +

@@ -36,10 +39,16 @@

{{ $header }}

+

+ {{ $header_text }} +

+ @include('snippets.fk-sortbuttons')
+ {{ $data->appends(Input::except('page'))->links() }} + @@ -92,7 +101,7 @@ foreach( $data as $offer) {

- {{ ucfirst($offer->spirit_type) }} {{ $offer->shop }} + {{ ucfirst($offer->spirit_type) }} {{ $offer->shop }}

@@ -101,10 +110,10 @@ foreach( $data as $offer) {

- Alter Preis: {{ TF::fF($offer->original_price) }} € -
Neuer Preis: {{ TF::fF($offer->discounted_price) }} €
+ Alter Preis: {{ TF::fF($offer->original_price) }} € +
{{ TF::fF($offer->base_price ) }} € / Liter

@@ -275,7 +284,7 @@ foreach( $data as $offer) {

- +
@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') +
+ +
+ +
+ + + + {{ $data->appends(Input::except('page'))->links() }} + + +
+

{{ ucfirst($spirit_type) }} ({{$count}} Angebote)

+ +

Zurück zur Übersicht...

+
+
+ */ ?> + +count() ) { + /* Keine Angebote */ +?> + + + + + + +
+
+
+
+

+ + {{ ucfirst($offer->spirit_type) }} {{ $offer->shop }} + +

+
+
+

{{ $offer->procent}} %

+
+ +
+
+
+

+ {{ ucfirst($offer->spirit_type) }} {{ $offer->shop }} +

+
+
+ +

{{ $offer->name }}

+ +
+

+ Neuer Preis: {{ TF::fF($offer->discounted_price) }} € +
+ Alter Preis: {{ TF::fF($offer->original_price) }} € +
+ {{ TF::fF($offer->base_price ) }} € / Liter +

+

+ Alkohol: {{ TF::fF($offer->abv) }} % +
+ Volumen: {{ TF::fF($offer->volume) }} Liter +
+ Versand: {{ TF::fF($offer->shipping_costs) }} € +
+
+

+
+
+ +
+ +
+
+ +name }}" data-track-content data-content-name="{{ ucfirst($spirit_type) }}" data-content-piece="{{ $offer->name }}" data-content-target="{{ $offer->url }}"> +
+ + +
+
+

{{ $offer->procent}}%

+ + + +
+
+ + +

+ {{ $offer->name }} + +

+ +

{{ TF::fF($offer->discounted_price) }}€* {{ TF::fF($offer->original_price) . "€" }} + {{ TF::fF($offer->base_price ) }}€/L +

+
+ {{ TF::fF($offer->volume) . " Liter" }}{{ TF::fF($offer->abv) . "%" }} Alk. +
+ Jetzt bestellen +

+ Versand: {{ TF::fF($offer->shipping_costs) }}€ +free_shipping ) { +?> + Gratis ab {{ $offer->free_shipping }} + + Versand ist nie kostenlos. + +
+ + * Preis vom {{ strftime("%d. %B", $offer->created_at) }} +

+
+
+ {{ $offer->name }} + + + +shop ) { + $style = 'margin-left: auto; margin-right: 25px; width:50%; object-fit: cover; width: 70px;'; + } else { + $style = ''; + } +?> + {{ $offer->name }} +
+ +
+
+

{{ $offer->procent}}% gesenkt

+ {{ $offer->shop }} +
+
+ {{ $offer->spirit_type }} +
+

+ {{ $offer->name }} +

+ +
+ {{ TF::fF($offer->volume) . " Liter" }}{{ TF::fF($offer->abv) . "%" }} Alk. +
+ +

{{ TF::fF($offer->discounted_price) }}€* {{ TF::fF($offer->original_price) . "€" }} + {{ TF::fF($offer->base_price ) }}€/L +

+ Jetzt bestellen +

+ Versand: {{ TF::fF($offer->shipping_costs) }}€ +free_shipping ) { +?> + Gratis ab {{ $offer->free_shipping }} + + Versand ist nie kostenlos. + +
+ * Preis vom {{ strftime("%d. %B", $offer->created_at) }} +

+
+
+
+ + + + {{ $data->appends(Input::except('page'))->links() }} + + + + + + +@endsection + +@section('scripts') + +@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 @@ + + + + +

+ +
+

Sortieren nach: {{ $filter . " (" . $order . ")" }}

+ + + + +
+ + +
+ +
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'); -- cgit v1.2.3