get("filter"); 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 ) { if ( "" != $request->get("q") ) { $query = $request->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 if ( "" != $request->get('type') ) { $data = DB::table('all_view')->where('spirit_type', '=', $request->get('type'))->whereNotNull('url')->orderBy($sort_by, $order_by)->limit(20)->get(); } else if ( "" != $request->get('shop') ) { $data = DB::table('all_view')->where('shop', '=', $request->get('shop'))->whereNotNull('url')->orderBy($sort_by, $order_by)->limit(20)->get(); } else { $view_name = 'all'; // empty search will be processed in the next step } } // either empty search or generic feed if ( !isset($data) ) { $data = DB::table($view_name . '_view')->where('procent', '>=', 10)->orderBy($sort_by, $order_by)->limit(20)->get(); } /* * For strftime(). */ setlocale(LC_TIME, 'de_DE.utf8'); if ( "" != env('MATOMO_RSS_ID') ) { $matomo = new \MatomoTracker( env('MATOMO_RSS_ID'), env('MATOMO_RSS_URL')); $matomo->setTokenAuth( env('MATOMO_RSS_AUTH_TOKEN') ); #$matomo->setVisitorId( $matomo->getVisitorId() ); $matomo->setIp( $request->header('X_REAL_IP') ); $matomo->setUrl( $request->fullUrl() ); $matomo->setUrlReferrer( $request->server('HTTP_REFERER') ); $matomo->setBrowserLanguage( $request->server('HTTP_ACCEPT_LANGUAGE') ); $matomo->setUserAgent( $request->server('HTTP_USER_AGENT') ); if ( "" != $request->get('filter') ) { $matomo->doTrackEvent( "sort", $request->get('sort') ); } if ( "" != $request->get('order') ) { $matomo->doTrackEvent( "order", $request->get('order') ); } if ( "" != $request->get('q') ) { $matomo->doTrackEvent( "search_phrase", $request->get('q') ); $matomo->doTrackSiteSearch( $request->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( env('APP_URL') . 'img/paw-400-400.png'); $feed->link = url( $request->fullUrl() ); #$feed->setDateFormat('timestamp'); // 'datetime', 'timestamp' or 'carbon' $feed->setDateFormat('datetime'); // 'datetime', 'timestamp' or 'carbon' $feed->pubdate = strftime('%Y-%m-%d', $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('MATMOMO_RSS_ID') ) { $matomo->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->addItem( [ 'title' => $offer->name, 'author' => $offer->shop, 'url' => env('LINK_SHORTER_BASE_DOMAIN') . $offer->url, 'link' => env('LINK_SHORTER_BASE_DOMAIN') . $offer->url, 'pubdate' => strftime('%Y-%m-%d', $offer->created_at), 'description' => $desc, 'content' => $desc ] ); } $matomo->doTrackPageView( ucfirst($view_name) . "-Feed" ); return $feed->render('atom'); } }