Exemple #1
0
 /**
  * Parse markdown file
  *
  * @param array or string $file Absolute path to file
  * @return array Result of rendering with statuscode, content and metadata
  */
 public function parseFile($file)
 {
     $file = Filters::arrayToPath($file);
     // File found
     if (file_exists($file)) {
         $file = file_get_contents($file, FILE_USE_INCLUDE_PATH);
         $file = $this->splitFile($file);
         // Metadata found
         if (count($file) > 1) {
             $content = $this->parseMarkdown($file[1]);
             $metadata = $this->parseMetadata($file[0]);
             $status = isset($metadata['status']) ? $metadata['status'] : 200;
             return array('status' => $status, 'content' => $content, 'metadata' => $metadata);
             // No metadata found
         } else {
             return array('status' => 200, 'content' => $this->parseMarkdown($file[0]));
         }
         // File not found, return false
     } else {
         return array('status' => 404, 'content' => false);
     }
 }
Exemple #2
0
 /**
  * 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;
 }
Exemple #3
0
 /**
  * Execute all important hooks to render request
  * 
  * @param array $uri HTTP request uri
  * @param string $site Hostname - optional
  * @return array API data
  */
 public function render($uri)
 {
     $uri = Filters::sanitizeUri($uri);
     $this->hooks->execute('init');
     $this->hooks->execute('request.prerender');
     $this->hooks->execute('request.render', array($uri));
     $this->hooks->execute('request.postrender');
     return $this->api();
 }