diff options
Diffstat (limited to 'site/app/Http/Controllers/FeedController.php')
| -rw-r--r-- | site/app/Http/Controllers/FeedController.php | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/site/app/Http/Controllers/FeedController.php b/site/app/Http/Controllers/FeedController.php new file mode 100644 index 0000000..7ac39c1 --- /dev/null +++ b/site/app/Http/Controllers/FeedController.php @@ -0,0 +1,89 @@ +<?php +namespace App\Http\Controllers; +use Illuminate\Http\Request; +use App\Helpers\CryptoHelper; + +use Illuminate\Support\Facades\DB; +use App\Http\Controllers\Controller; + +use Cookie; +use Carbon; +use Illuminate\Support\Facades\Input; + +class FeedController 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 ) { + $order_by = "asc"; + } + + /* + * Database query + */ + $view_name = str_replace("_feed", "", \Request::route()->getName()); + #$data = DB::table($view_name . '_view')->orderBy('created_at', 'DESC')->limit(100)->get(); + $data = DB::table($view_name . '_view')->orderBy($sort_by, $order_by)->limit(20)->get(); + + /* + * For strftime(). + */ + setlocale(LC_TIME, 'de_DE.utf8'); + + $feed = \App::make("feed"); + + $feed->title = "Sonderangebote"; + $feed->description = 'Finde immer die günstigsten Angebote im Bereich Spirituosen. Täglich neue Schnäppchen.'; + $feed->logo = 'https://fuselkoenig.de/favicon.ico'; + $feed->link = url('feed'); + $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 ) { + $desc = '<p><img src="'.$offer->image_url.'"></p><p><strong>'.$offer->spirit_type.'</strong><br>Statt ' . \TF::fF($offer->original_price) . '€ nur noch ' . \TF::fF($offer->discounted_price) . "€ (".$offer->procent."% Rabatt)."; + $feed->add($offer->name, $offer->shop, $offer->url, $offer->created_at, $desc, $offer->name); + } + + return $feed->render('atom'); + + } +} |
