public function show() {
		// cast with int here forces the rest of the text to be stripped
		$id = (int) $this->request->param('ID');

		if ($id) {
			$since = $this->request->getVar('since');
			if (!$since) {
				$since = $id - 1;
			} else {
				
			}
			
			$posts = $this->microBlogService->getStatusUpdates(null, array('ID' => 'ASC'), $since, false, false, array(), 0, 1);
			$post = $posts->first();
			
			if (!$post) {
				return Security::permissionFailure();
			}

			$options = $this->getOptions();
			//$options->Replies = true;
			$options->ShowTitlesOnly = false;
			
			$timeline = trim($this->customise(array('Post' => $id, 'ForceContent' => true, 'Posts' => $posts, 'Options' => $options))->renderWith('Timeline'));

			$data = array(
				'Timeline'		=> $timeline,
				'OwnerFeed'		=> $timeline,
				'Post'			=> $id,
			);

			$timeline = $this->customise($data)->renderWith('FullTimeline');
            
            if (Director::is_ajax()) {
				return $timeline;
			}
			
			return $this->customise(array('Title' => $post->Title, 'Content' => $timeline))->renderWith(array('TimelineController_show', 'Page'));
		}
	}
public function show() {
		// cast with int here forces the rest of the text to be stripped
		$id = (int) $this->request->param('ID');

		if ($id) {
			$since = $this->request->getVar('since');
			if (!$since) {
				$since = $id - 1;
			} else {
				
			}
			
			$posts = $this->microBlogService->getStatusUpdates(null, array('ID' => 'ASC'), $since, false, false, array(), 0, 1);
			$post = $posts->first();
			
			if (!$post) {
				return Security::permissionFailure();
			}

			$options = $this->getOptions();
			//$options->Replies = true;
			$options->ShowTitlesOnly = false;
			
			$timeline = trim($this->customise(array('Post' => $id, 'ForceContent' => true, 'Posts' => $posts, 'Options' => $options))->renderWith('Timeline'));

			$data = array(
				'Timeline'		=> $timeline,
				'OwnerFeed'		=> $timeline,
				'Post'			=> $id,
			);

			$timeline = $this->customise($data)->renderWith('FullTimeline');
            
            if (Director::is_ajax()) {
				return $timeline;
			}
			
			return $this->customise(array('Title' => $post->Title, 'Content' => $timeline))->renderWith(array('TimelineController_show', 'Page'));
		}
	}
public function show ( ) { // cast with int here forces the rest of the text to be stripped $ id = ( int ) $ this -> request -> param ( 'ID' ) ; if ( $ id ) { $ since = $ this -> request -> getVar ( 'since' ) ; if ( ! $ since ) { $ since = $ id - 1 ; } else { } $ posts = $ this -> microBlogService -> getStatusUpdates ( null , array ( 'ID' => 'ASC' ) , $ since , false , false , array ( ) , 0 , 1 ) ; $ post = $ posts -> first ( ) ; if ( ! $ post ) { return Security :: permissionFailure ( ) ; } $ options = $ this -> getOptions ( ) ; //$options->Replies = true; $ options -> ShowTitlesOnly = false ; $ timeline = trim ( $ this -> customise ( array ( 'Post' => $ id , 'ForceContent' => true , 'Posts' => $ posts , 'Options' => $ options ) ) -> renderWith ( 'Timeline' ) ) ; $ data = array ( 'Timeline' => $ timeline , 'OwnerFeed' => $ timeline , 'Post' => $ id , ) ; $ timeline = $ this -> customise ( $ data ) -> renderWith ( 'FullTimeline' ) ; if ( Director :: is_ajax ( ) ) { return $ timeline ; } return $ this -> customise ( array ( 'Title' => $ post -> Title , 'Content' => $ timeline ) ) -> renderWith ( array ( 'TimelineController_show' , 'Page' ) ) ; } }
Show a particular post

Note that this MAY be triggered directly from a request via 'viewpost' routing, so
don't rely on the $this->data() var to be filled

@return type
Show a particular post