format("Y-m-d"); } public static function makeFeed($model, $title, $cache = 60) { switch($title) { case("new"): $feed_title = 'Newest Articles'; $feed_description = 'Newest interesting articles from Wikipedia. Keep exploring.'; break; case( "popular"): $feed_title = 'Popular Articles'; $feed_description = 'The most popular articles. Keep exploring.'; break; default: $feed_title = 'Search for: ' . $title; $feed_description = 'All articles for "' . $title . '".'; break; } // create new feed $feed = \App::make("feed"); // multiple feeds are supported // if you are using caching you should set different cache keys for your feeds // cache the feed for $cache minutes (second parameter is optional) $feed->setCache($cache, 'feed_' . $title); // check if there is cached feed and build new only if is not if (!$feed->isCached()) { // set your feed's title, description, link, pubdate and language $feed->title = $feed_title; $feed->description = $feed_description; #$feed->logo = 'http://yoursite.tld/logo.jpg'; $feed->link = url('feed/' . $title); $feed->setDateFormat('datetime'); // 'datetime', 'timestamp' or 'carbon' $feed->pubdate = $model[0]->created_at; $feed->lang = 'en'; $feed->setShortening(false); // true or false $feed->setTextLimit(100); // maximum length of description text foreach ($model as $post) { $desc = ($post->excerpt_html); if ( ! $post->getCategories()->get()->isEmpty() ) { $categories = "
"; foreach( $post->getCategories()->get() as $cat ) { $categories .= "name) ."'>". $cat->name . " | "; } $categories = rtrim($categories, " | "); $desc .= "
Topics:"; $desc .= $categories; } $discussions = "
"; foreach( $post->getDiscussions()->orderBy('comments', 'desc')->get() as $dis ) { $discussions .= "" . $dis->title . " "; $discussions .= $dis->upvotes . " Upvotes | " . $dis->comments . " Comments
"; } $desc .= "

Discussions:"; $desc .= $discussions; // set item's title, author, url, pubdate, description, content, enclosure (optional)* $feed->addItem([ 'title' => $post->title, 'author' => env('APP_NAME'), 'url' => \URL::to($post->url), 'link' => \URL::to($post->url), 'pubdate' => $post->created_at, 'description' => $desc, 'content' => $desc ]); } } // first param is the feed format // optional: second param is cache duration (value of 0 turns off caching) // optional: you can set custom cache key with 3rd param as string return $feed->render('atom', $cache, 'feed_' . $title); } }