| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 | 
							- <?php 
 
- global $myUser;
 
- if($myUser->login=='') throw new Exception("Permissions insuffisantes", 403);
 
- ?>
 
- <div class="row">
 
- 	<div class="col-md-12">
 
- 		<?php 
 
- 			if(!file_exists(__DIR__.SLASH.'.git')) throw new Exception("Fonctionnalité désactivée car le projet n'est pas versionné via GIT");
 
- 			//À voir pour le rendre dynamique au 
 
- 			//lieu d'avoir les 30 dernières modifs
 
- 			$stream = shell_exec('git log -30 --pretty=~~~%ct---%B~~~'); 
 
- 			$commits = explode('~~~',$stream); 
 
- 		?>
 
- 		<br>
 
- 		<h3>30 Dernières modifications :</h3>
 
- 		<hr>
 
- 		<div class="row">
 
- 			<div class="col-md-12">
 
- 				<ul class="update-timeline">
 
- 				<?php
 
- 					$i=0;
 
- 					foreach($commits as $commit): 
 
- 				 	
 
- 					$infos = explode('---',$commit); 
 
- 					if(count($infos)<2) continue;
 
- 					$i++;
 
- 					list($time,$message) = $infos;
 
- 					$icons = array();
 
- 					$colors = array();
 
- 					$tags = array();
 
- 					
 
- 					if(preg_match('/Merge branch/i', $message)){
 
- 						$icons[]= 'fas fa-code-branch';
 
- 						$colors[]= 'info';
 
- 						$message = str_replace(array('Merge branch',' of ','Conflicts'),array('Fusion de branche',' de ','Conflits'),$message);
 
- 						$tags['merge'] = 1;
 
- 					}
 
- 					
 
- 					// Refactor de la regex pour accepter les syntaxes -Plugin: ou Plugin:
 
- 					$message = preg_replace('/(^-*|\n|\n-*)[\s\t]*([^:-]*)[\s\t]*:/iU', '<span class="update-commit-module mt-2"><i class="far fa-bookmark"></i> $2</span>', $message);
 
- 					
 
- 					$message = preg_replace_callback('/#([^\s]*)(\s|$)/iU', function($matches) use(&$tags){
 
- 						
 
- 						$tag = trim(strtolower($matches[1]));
 
- 						if($tag=='') return;
 
- 						if(!isset($tags[$tag])) $tags[$tag] = 0;
 
- 						$tags[$tag]++;
 
- 						return $matches[2];
 
- 					}, $message);
 
- 					if(isset($tags['feature'])){
 
- 						$icons[] = 'fas fa-plus-circle';
 
- 						$colors[] = 'success';
 
- 					}
 
- 					if(isset($tags['bug'])){
 
- 						$icons[] = 'fas fa-bug';
 
- 						$colors[] = 'danger';
 
- 					}
 
- 					if(isset($tags['refactor']) || preg_match('/refactor|rework/i', $message)){
 
- 						$icons[] = 'fas fa-sync';
 
- 						$colors[] = 'warning';
 
- 					}
 
- 				
 
- 					if(count($icons)==0) $icons[] ='fas fa-pencil-alt';
 
- 					
 
- 					?>
 
- 				    <li <?php echo $i%2==0?'class="update-timeline-inverted"':'' ?>>
 
- 				    	<div class="update-timeline-badge <?php echo count($colors)==1?$colors[0]:''; ?>"  style="font-size: <?php echo 1.4/count($icons); ?>rem;<?php echo count($colors)>1?'background-color:#e83e8c;':''; ?>">
 
- 				    		<?php foreach($icons as $icon): ?>
 
- 				    			<i class="<?php echo $icon; ?>" style="font-size: <?php echo 1.4/count($icons); ?>rem"></i>
 
- 				    		<?php endforeach; ?>
 
- 				    	</div>
 
- 				    	
 
- 				    	<div class="update-timeline-panel">
 
- 				    		<div class="update-timeline-heading">
 
- 				    			<p><small class="text-muted"><i class="far fa-clock"></i> <?php echo relative_time($time); ?></small></p>
 
- 				    		</div>
 
- 				    		<div class="update-timeline-body">
 
- 				    			<p><?php echo nl2br($message); ?></p>
 
- 				    			<?php foreach($tags as $tag=>$count): ?>
 
- 				    				<span class="update-commit-tag"><i class="fas fa-tag"></i> <?php echo $tag ?><?php echo $count > 1 ? ' ('.$count.')':'' ?></span>
 
- 				    			<?php endforeach; ?>
 
- 				    		</div>
 
- 				    	</div>
 
- 				    </li>
 
- 			    <?php endforeach; ?>
 
- 			    </ul>
 
- 			</div>
 
- 		</div>
 
- 		<br>		
 
- 	</div>
 
- </div>
 
 
  |