public function parse(Library\HttpUrl $url) { $vars = array(); $path =& $url->path; $page = $this->getObject('application.pages')->getActive(); $query = $page->getLink()->query; if ($path[0] === 'file') { // file view $vars['view'] = array_shift($path); $vars['name'] = array_pop($path) . '.' . $url->getFormat(); $vars['folder'] = $query['folder'] ? $query['folder'] . '/' : ''; $vars['folder'] .= implode('/', $path); } else { // directory view $vars['view'] = 'directory'; $vars['layout'] = $query['layout']; $vars['folder'] = $query['folder'] . '/' . implode('/', $path); } $vars['folder'] = str_replace('%2E', '.', $vars['folder']); $vars['layout'] = $query['layout']; return $vars; }