/** * Parse requested page from file * * @param array $uri Uri from request */ public function renderRequest($uri) { $file = array(); $file[] = Filters::arrayToPath(array($this->site, 'content')); $request = Filters::arrayToUri($uri); $this->api = array_merge($this->api, $this->crawler->indexContent($file[0], $uri)); if (isset($this->api['index'][$request])) { $file[] = $this->api['index'][$request]; } else { $file[] = '404'; $file[] = 'index.txt'; } $this->api['request'] = $this->content->parseFile($file); $this->api['request']['uri'] = $uri; $this->api['request']['file'] = $file; }
/** * Create navigation item * * @param array $request Current request URI * @param array $uri URI from current navigation item * @param array $metadata Current navigation item's metadata * @return array Navigation item */ private function createNavigation($request, $uri, $metadata) { $data = array(); if (isset($metadata['hidden']) && $metadata['hidden'] == 'true') { $data['hidden'] = true; } else { $data['title'] = isset($metadata['title']) ? $metadata['title'] : end($uri); $data['title'] = isset($metadata['navigation']) ? $metadata['navigation'] : $data['title']; $data['url'] = Filters::arrayToUri($uri); $level = count($uri); $data['active'] = Filters::arrayToUri(array_slice($request, 0, $level)) == Filters::arrayToUri($uri) ? true : false; } return $data; }