From ef460c65ab5e6e3bfdb27ef596d00fc93314eb72 Mon Sep 17 00:00:00 2001 From: horus Date: Tue, 13 Feb 2018 14:28:40 +0100 Subject: Adds RSS-Feeds. --- site/app/Http/Controllers/FeedController.php | 89 ++++++++++++++++++++++++ site/app/Http/Controllers/PageFeedController.php | 34 +++++++++ 2 files changed, 123 insertions(+) create mode 100644 site/app/Http/Controllers/FeedController.php create mode 100644 site/app/Http/Controllers/PageFeedController.php (limited to 'site/app') 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 @@ +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 = '
'.$offer->spirit_type.'
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');
+
+ }
+}
diff --git a/site/app/Http/Controllers/PageFeedController.php b/site/app/Http/Controllers/PageFeedController.php
new file mode 100644
index 0000000..e29c8ca
--- /dev/null
+++ b/site/app/Http/Controllers/PageFeedController.php
@@ -0,0 +1,34 @@
+ 19.98 ORDER BY created_at DESC LIMIT 1)";
+ }
+ # todo: schlägt manchmal fehl
+ $query .= " UNION (SELECT name, image_url, spirit_type, spirit_type AS url, spirit_type AS feedname, '' AS linktext, created_at FROM ". $view ."_view WHERE original_price > 19.98 AND (procent < (SELECT MAX(procent) FROM all_view)) ORDER BY procent LIMIT 1)";
+
+ $data = DB::select($query);
+
+ return view('feeds', ['data' => $data, 'views' => $views]);
+ }
+}
--
cgit v1.2.3