the start of full per-user comment history
This commit is contained in:
		
							parent
							
								
									0ae4ef4110
								
							
						
					
					
						commit
						112130b8ad
					
				| @ -177,6 +177,15 @@ class CommentList extends Extension { | |||||||
| 				$page_num = int_escape($event->get_arg(1)); | 				$page_num = int_escape($event->get_arg(1)); | ||||||
| 				$this->build_page($page_num); | 				$this->build_page($page_num); | ||||||
| 			} | 			} | ||||||
|  | 			else if($event->get_arg(0) === "beta-search") { | ||||||
|  | 				$search = $event->get_arg(1); | ||||||
|  | 				$page_num = int_escape($event->get_arg(2)); | ||||||
|  | 
 | ||||||
|  | 				$duser = User::by_name($search); | ||||||
|  | 
 | ||||||
|  | 				$comments = $this->get_user_comments($duser->id, 50, ($page_num-1) * 50); | ||||||
|  | 				$this->theme->display_all_user_comments($comments, $page_num, 10); | ||||||
|  | 			} | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| @ -205,8 +214,8 @@ class CommentList extends Extension { | |||||||
| 		$h_comment_rate = sprintf("%.1f", ($i_comment_count / $i_days_old)); | 		$h_comment_rate = sprintf("%.1f", ($i_comment_count / $i_days_old)); | ||||||
| 		$event->add_stats("Comments made: $i_comment_count, $h_comment_rate per day"); | 		$event->add_stats("Comments made: $i_comment_count, $h_comment_rate per day"); | ||||||
| 
 | 
 | ||||||
| 		$recent = $this->get_user_recent_comments($event->display_user->id, 10); | 		$recent = $this->get_user_comments($event->display_user->id, 10); | ||||||
| 		$this->theme->display_user_comments($recent); | 		$this->theme->display_recent_user_comments($recent, $event->display_user); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	public function onDisplayingImage(DisplayingImageEvent $event) { | 	public function onDisplayingImage(DisplayingImageEvent $event) { | ||||||
| @ -341,7 +350,7 @@ class CommentList extends Extension { | |||||||
| 		return $comments; | 		return $comments; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	private function get_user_recent_comments(/*int*/ $user_id, /*int*/ $count) { | 	private function get_user_comments(/*int*/ $user_id, /*int*/ $count, /*int*/ $offset=0) { | ||||||
| 		global $config; | 		global $config; | ||||||
| 		global $database; | 		global $database; | ||||||
| 		$rows = $database->get_all(" | 		$rows = $database->get_all(" | ||||||
| @ -354,8 +363,8 @@ class CommentList extends Extension { | |||||||
| 				LEFT JOIN users ON comments.owner_id=users.id | 				LEFT JOIN users ON comments.owner_id=users.id | ||||||
| 				WHERE users.id = :user_id | 				WHERE users.id = :user_id | ||||||
| 				ORDER BY comments.id DESC | 				ORDER BY comments.id DESC | ||||||
| 				LIMIT :limit | 				OFFSET :offset LIMIT :limit | ||||||
| 				", array("user_id"=>$user_id, "limit"=>$count));
 | 				", array("user_id"=>$user_id, "offset"=>$offset, "limit"=>$count));
 | ||||||
| 		$comments = array(); | 		$comments = array(); | ||||||
| 		foreach($rows as $row) { | 		foreach($rows as $row) { | ||||||
| 			$comments[] = new Comment($row); | 			$comments[] = new Comment($row); | ||||||
|  | |||||||
| @ -155,7 +155,7 @@ class CommentListTheme extends Themelet { | |||||||
| 	/** | 	/** | ||||||
| 	 * Show comments made by a user | 	 * Show comments made by a user | ||||||
| 	 */ | 	 */ | ||||||
| 	public function display_user_comments($comments) { | 	public function display_recent_user_comments($comments, $user) { | ||||||
| 		global $page; | 		global $page; | ||||||
| 		$html = ""; | 		$html = ""; | ||||||
| 		foreach($comments as $comment) { | 		foreach($comments as $comment) { | ||||||
| @ -164,9 +164,38 @@ class CommentListTheme extends Themelet { | |||||||
| 		if(empty($html)) { | 		if(empty($html)) { | ||||||
| 			$html = '<p>No comments by this user.</p>'; | 			$html = '<p>No comments by this user.</p>'; | ||||||
| 		} | 		} | ||||||
|  | 		else { | ||||||
|  | 			$html .= "<p><a href='".make_link("comment/beta-search/{$user->name}/1")."'>More</a></p>"; | ||||||
|  | 		} | ||||||
| 		$page->add_block(new Block("Comments", $html, "left", 70, "comment-list-user")); | 		$page->add_block(new Block("Comments", $html, "left", 70, "comment-list-user")); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | 	public function display_all_user_comments($comments, $page_number, $total_pages) { | ||||||
|  | 		global $page; | ||||||
|  | 		$html = ""; | ||||||
|  | 		foreach($comments as $comment) { | ||||||
|  | 			$html .= $this->comment_to_html($comment, true); | ||||||
|  | 		} | ||||||
|  | 		if(empty($html)) { | ||||||
|  | 			$html = '<p>No comments by this user.</p>'; | ||||||
|  | 		} | ||||||
|  | 		$page->add_block(new Block("Comments", $html, "main", 70, "comment-list-user")); | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 		$prev = $page_number - 1; | ||||||
|  | 		$next = $page_number + 1; | ||||||
|  | 
 | ||||||
|  | 		$u_tags = url_escape(implode(" ", $search_terms)); | ||||||
|  | 		$query = empty($u_tags) ? "" : '/'.$u_tags; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 		$h_prev = ($page_number <= 1) ? "Prev" : "<a href='$prev'>Prev</a>"; | ||||||
|  | 		$h_next = ($page_number >= $total_pages) ? "Next" : "<a href='$next'>Next</a>"; | ||||||
|  | 
 | ||||||
|  | 		$page->add_block(new Block("Navigation", $h_prev.' | '.$h_next, "left", 0)); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| 	protected function comment_to_html($comment, $trim=false) { | 	protected function comment_to_html($comment, $trim=false) { | ||||||
| 		global $config, $user; | 		global $config, $user; | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user