created wiki stats page
This commit is contained in:
		
							parent
							
								
									5d2801b67d
								
							
						
					
					
						commit
						a5d3a08c14
					
				| @ -54,6 +54,7 @@ | ||||
| 			case 'WikiPageNewView': | ||||
| 			case 'WikiPageEditView': | ||||
| 			case 'WikiPageHistoryView': | ||||
| 			case 'WikiPageStatsView': | ||||
| 			case 'WikiPageMenuView': | ||||
| 			case 'WikiPageContentView': | ||||
| 			case 'PanaceaWikiView': | ||||
|  | ||||
| @ -1,7 +1,7 @@ | ||||
| <?php | ||||
| 
 | ||||
| 	/** | ||||
| 	 * WikiPageContentView | ||||
| 	 * PanaceaWikiView | ||||
| 	 * | ||||
| 	 * @package    Panacea | ||||
| 	 * @subpackage Views | ||||
| @ -13,7 +13,7 @@ | ||||
| 	require_once 'NowhereConcave/bootstrap.php'; | ||||
| 
 | ||||
| 	/** | ||||
| 	 * View for wiki content | ||||
| 	 * View for wiki-related things | ||||
| 	 * | ||||
| 	 * @package    Panacea | ||||
| 	 * @subpackage Views | ||||
| @ -53,6 +53,14 @@ | ||||
| 			$this->action = $action; | ||||
| 		} | ||||
| 		 | ||||
| 		public function makeWikiUserLink($user) { | ||||
| 			if (!is_string($user)) { | ||||
| 				throw new InvalidTypeException(1, 'string', $user); | ||||
| 			} | ||||
| 			 | ||||
| 			return '<a href="' . $this->wikiPath . '/Users?' . $user .'">' . $user . '</a>'; | ||||
| 		} | ||||
| 		 | ||||
| 		/** | ||||
| 		 * Gets meta data for this view | ||||
| 		 * | ||||
|  | ||||
| @ -22,6 +22,13 @@ | ||||
| 	 */ | ||||
| 	class WikiPageEditView extends PanaceaWikiView { | ||||
| 		 | ||||
| 		/** | ||||
| 		 * Renders the view | ||||
| 		 * | ||||
| 		 * @author Tommy Montgomery | ||||
| 		 * @since  2008-10-18 | ||||
| 		 * @uses   WikiPageObject::getRevision() | ||||
| 		 */ | ||||
| 		public function send() { ?>
 | ||||
| 				 | ||||
| 				<div class="wikicontent"> | ||||
|  | ||||
							
								
								
									
										110
									
								
								src/lib/views/wiki/WikiPageStatsView.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										110
									
								
								src/lib/views/wiki/WikiPageStatsView.php
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,110 @@ | ||||
| <?php | ||||
| 
 | ||||
| 	/** | ||||
| 	 * WikiPageStatsView | ||||
| 	 * | ||||
| 	 * @package    Panacea | ||||
| 	 * @subpackage Views | ||||
| 	 * @author     Tommy Montgomery | ||||
| 	 * @since      2008-10-26 | ||||
| 	 */ | ||||
| 
 | ||||
| 	/** Bootstraps the NowhereConcave framework */ | ||||
| 	require_once 'NowhereConcave/bootstrap.php'; | ||||
| 
 | ||||
| 	/** | ||||
| 	 * View for a wiki page's statistics | ||||
| 	 * | ||||
| 	 * @package    Panacea | ||||
| 	 * @subpackage Views | ||||
| 	 * @author     Tommy Montgomery | ||||
| 	 * @since      2008-10-26 | ||||
| 	 */ | ||||
| 	class WikiPageStatsView extends PanaceaWikiView { | ||||
| 		 | ||||
| 		/** | ||||
| 		 * @var WikiStats | ||||
| 		 */ | ||||
| 		protected $stats; | ||||
| 		 | ||||
| 		/** | ||||
| 		 * Creates a new {@link WikiRevisionDiffView} | ||||
| 		 * | ||||
| 		 * @author Tommy Montgomery | ||||
| 		 * @since  2008-10-21 | ||||
| 		 * | ||||
| 		 * @param WikiPageObject $page     The wiki page to display | ||||
| 		 * @param WikiDiff       $diff     The diff between the two revisions | ||||
| 		 * @param string         $action   The action to take | ||||
| 		 * @param int            $priority The priority of the view | ||||
| 		 */ | ||||
| 		public function __construct(WikiPageObject $page, WikiStats $stats, $action = null, $priority = 0)  { | ||||
| 			parent::__construct($page, $action, $priority); | ||||
| 			 | ||||
| 			$this->stats = $stats; | ||||
| 		} | ||||
| 		 | ||||
| 		/** | ||||
| 		 * Renders the view | ||||
| 		 * | ||||
| 		 * @author Tommy Montgomery | ||||
| 		 * @since  2008-10-26 | ||||
| 		 */ | ||||
| 		public function send() {  | ||||
| 			$age = time() - strtotime($this->stats->created); | ||||
| 			$ageInDays = $age / 86400; | ||||
| 			 | ||||
| 			$mostActiveAuthors = ''; | ||||
| 			foreach ($this->stats->mostActiveAuthor as $author => $numRevisions) { | ||||
| 				$mostActiveAuthors .= $this->makeWikiUserLink($author) . ' (' . $numRevisions . ' revisions)<br />'; | ||||
| 			} | ||||
| 			$mostActiveAuthors = substr($mostActiveAuthors, 0, -6);	 | ||||
| 			 | ||||
| 		?>
 | ||||
| 				 | ||||
| 				<h1><?php echo $this->page->page->page_name; ?>: Statistics</h1>
 | ||||
| 				 | ||||
| 				<div class="wikicontent"> | ||||
| 					<table> | ||||
| 						<tr> | ||||
| 							<th>Created</th> | ||||
| 							<td><?php echo $this->stats->created; ?> by <?php echo $this->makeWikiUserLink($this->stats->creator); ?></td>
 | ||||
| 						</tr> | ||||
| 						<tr> | ||||
| 							<th>Last change</th> | ||||
| 							<td><?php echo $this->stats->lastUpdated; ?> by <?php echo $this->makeWikiUserLink($this->stats->lastAuthor); ?></td>
 | ||||
| 						</tr> | ||||
| 						<tr> | ||||
| 							<th>Age</th> | ||||
| 							<td><?php echo $ageInDays; ?> days</td>
 | ||||
| 						</tr> | ||||
| 						<tr> | ||||
| 							<th>Unparsed size</th> | ||||
| 							<td><?php echo $this->stats->size; ?> bytes</td>
 | ||||
| 						</tr> | ||||
| 						<tr> | ||||
| 							<th>Revisions</th> | ||||
| 							<td><?php echo $this->stats->numRevisions; ?></td>
 | ||||
| 						</tr> | ||||
| 						<tr> | ||||
| 							<th>Revisions/day</th> | ||||
| 							<td><?php echo $this->stats->numRevisions / $ageInDays; ?></td>
 | ||||
| 						</tr> | ||||
| 						<tr> | ||||
| 							<th>Unique authors</th> | ||||
| 							<td><?php echo $this->stats->numAuthors; ?></td>
 | ||||
| 						</tr> | ||||
| 						<tr> | ||||
| 							<th>Most active author(s)</th> | ||||
| 							<td><?php echo $mostActiveAuthors; ?></td>
 | ||||
| 						</tr> | ||||
| 					</table> | ||||
| 				</div> | ||||
| 				 | ||||
| 		<?php | ||||
| 		 | ||||
| 		} | ||||
| 		 | ||||
| 	} | ||||
| 
 | ||||
| ?>
 | ||||
| @ -54,7 +54,8 @@ | ||||
| 					$this->addView(new WikiPageHistoryView($this->page, $revisions, $this->action, 2)); | ||||
| 					break; | ||||
| 				case 'stats': | ||||
| 					$this->addView(new WikiPageStatsView($this->page, $this->action, 2)); | ||||
| 					$stats = new WikiStats($this->page); | ||||
| 					$this->addView(new WikiPageStatsView($this->page, $stats, $this->action, 2)); | ||||
| 					break; | ||||
| 				default: | ||||
| 					//check for diffs: WikiPage?diff[oldRev,newRev]
 | ||||
| @ -63,8 +64,6 @@ | ||||
| 						$newRevision = (int)$matches[2]; | ||||
| 						 | ||||
| 						$diff = $this->page->compareRevisions($oldRevision, $newRevision, $vendor); | ||||
| 						//echo '<pre>'; var_dump($diff); echo '</pre>'; exit;
 | ||||
| 						 | ||||
| 						$this->addView(new WikiRevisionDiffView($this->page, $diff, $this->action, 2)); | ||||
| 					} | ||||
| 					else { | ||||
|  | ||||
| @ -1,36 +1,37 @@ | ||||
| <?php | ||||
| 
 | ||||
| 	/** | ||||
| 	 * WikiPageHistoryView | ||||
| 	 * WikiRevisionDiffView | ||||
| 	 * | ||||
| 	 * @package    Panacea | ||||
| 	 * @subpackage Views | ||||
| 	 * @author     Tommy Montgomery | ||||
| 	 * @since      2008-10-18 | ||||
| 	 * @since      2008-10-21 | ||||
| 	 */ | ||||
| 
 | ||||
| 	/** Bootstraps the NowhereConcave framework */ | ||||
| 	require_once 'NowhereConcave/bootstrap.php'; | ||||
| 
 | ||||
| 	/** | ||||
| 	 * View for a wiki page's history | ||||
| 	 * View for a wiki page's diff between revisions | ||||
| 	 * | ||||
| 	 * @package    Panacea | ||||
| 	 * @subpackage Views | ||||
| 	 * @author     Tommy Montgomery | ||||
| 	 * @since      2008-10-18 | ||||
| 	 * @since      2008-10-21 | ||||
| 	 */ | ||||
| 	class WikiRevisionDiffView extends PanaceaWikiView { | ||||
| 		 | ||||
| 		/** | ||||
| 		 * @var WikiDiff | ||||
| 		 */ | ||||
| 		protected $diff; | ||||
| 		 | ||||
| 		/** | ||||
| 		 * Creates a new {@link WikiPageHistoryView} | ||||
| 		 * Creates a new {@link WikiRevisionDiffView} | ||||
| 		 * | ||||
| 		 * @author Tommy Montgomery | ||||
| 		 * @since  2008-10-21 | ||||
| 		 * @uses   addView() | ||||
| 		 * @uses   WikiRevisionHistoryView | ||||
| 		 * | ||||
| 		 * @param WikiPageObject $page     The wiki page to display | ||||
| 		 * @param WikiDiff       $diff     The diff between the two revisions | ||||
| @ -39,7 +40,6 @@ | ||||
| 		 */ | ||||
| 		public function __construct(WikiPageObject $page, WikiDiff $diff, $action = null, $priority = 0)  { | ||||
| 			parent::__construct($page, $action, $priority); | ||||
| 			 | ||||
| 			$this->diff = $diff; | ||||
| 		} | ||||
| 		 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user