function main($request, $payload, $kwargs = array()) { $ext = 'tpl'; if ($request->isMobile() && $request->clientWantsMobile) { $ext = 'mbl'; } $str = sprintf('%s/%s.%s', $request->controller, $request->action, $ext); // the main controller can return a page, if requested // see \gryphon\controller\main::page() if (isset($payload['page'])) { $str = sprintf('%s/%s.%s', $request->controller, $payload['page'], $ext); } // check for breaking news $payload['breaking'] = false; $breaking = M::init('article')->cache(false)->where('self:status = 1')->order('self:created desc')->limit(1)->findByTags(M::init('tag')->findByName('breaking'))->pop(); if ($breaking && $breaking->uid) { $payload['breaking'] = $breaking; } $payload['suppressLeaderBoard'] = true; $tpl = new Template($str); if ($tpl->didFindTemplate()) { $res = new Response(); $res->content = $tpl->render($payload); } else { $res = new \foundry\response\redirect(URL::linkTo('/'), true); } return $res; }
function xml($request, $payload, $kwargs = array()) { $res = new Response(); if ($payload['blogs']) { return main($request, $payload, $kwargs); } if ($payload['blog'] && $payload['posts']) { $entries = $payload['posts']->serialize('atom'); $lastUpdate = date('c', $payload['blog']->modified); $res->content = <<<ATOM <?xml version="1.0" encoding="UTF-8"?> <feed xmlns="http://www.w3.org/2005/Atom"> \t<title>{$payload['blog']->name}</title> \t<link href="{$payload['blog']->url}.xml" rel="self" /> \t<id>{$payload['blog']->url}.xml</id> \t<updated>{$lastUpdate}</updated> \t{$entries} </feed> ATOM; } else { // gather up the comments... yo $comments = \foundry\model::init('gryphon:comment')->where('self:item_type = :ty and self:item_id = :iid')->where('self:status = 1')->bind(array(':ty' => 'blogPost', ':iid' => $payload['post']->uid))->order('self:created asc')->find(); $entries = $comments->serialize('atom'); $lastUpdate = date('c', $comments->peekBack()->created); $res->content = <<<ATOM <?xml version="1.0" encoding="UTF-8"?> <feed xmlns="http://www.w3.org/2005/Atom"> \t<title>Comment feed for {$payload['post']->headline}</title> \t<link href="{$payload['post']->url}.xml" rel="self" /> \t<id>{$payload['post']->url}.xml</id> \t<updated>{$lastUpdate}</updated> \t{$entries} </feed> ATOM; } $res->setHeader('Content-Type', 'application/atom+xml'); return $res; }