Example #1
0
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;
}