Пример #1
0
 /**
  * Searches the index for a matching post.
  * If found, it creates a new Post object with filtered content
  * 
  * @return mixed  found Post or null
  */
 public function findById($id, $expand = true)
 {
     $index = $this->getPostIndex();
     $postMeta = $index->get($id);
     if ($postMeta) {
         $postMeta = (object) $postMeta;
         if ($expand === false) {
             # return unexpanded post
             return $postMeta;
         }
         $fileinfo = new \SplFileInfo($postMeta->filepath);
         $parser = new Parser($this->readFile($fileinfo));
         $post = new Post($postMeta);
         $post->setRawContent($parser->getContent());
         if (!is_null($this->contentFilter)) {
             $post->setContentFilter($this->contentFilter);
         }
         list($prev, $next) = $this->findPrevAndNextPosts($id);
         $post->prev = $prev;
         $post->next = $next;
         return $post;
     }
 }
Пример #2
0
 /**
  * Adds/removes properties on the post appropriate for API consumption.
  */
 protected function preparePostForJson(Post $post)
 {
     $post->links = array('self' => $this->app['url_generator']->generate('np_api_get_post', array('id' => $post->id)), 'preview' => $this->app['url_generator']->generate('np_preview_post'), 'put' => $this->app['url_generator']->generate('np_api_put_post', array('id' => $post->id)), 'delete' => $this->app['url_generator']->generate('np_api_delete_post', array('id' => $post->id)));
     if (isset($post->next->id)) {
         $post->links['nextPost'] = $this->app['url_generator']->generate('np_api_get_post', array('id' => $post->next->id));
     }
     if (isset($post->prev->id)) {
         $post->links['previousPost'] = $this->app['url_generator']->generate('np_api_get_post', array('id' => $post->prev->id));
     }
     $post->filteredContent = $post->getContent();
     // don't supply the full filepath or prev, next posts in api requests
     unset($post->filepath);
     if (isset($post->prev)) {
         unset($post->prev);
     }
     if (isset($post->next)) {
         unset($post->next);
     }
     return $post;
 }