Check for a valid login session before showing delete icons on ticks. Reviewed-on: https://gitea.subcultureofone.org/greg/tkr/pulls/73 Co-authored-by: Greg Sarjeant <greg@subcultureofone.org> Co-committed-by: Greg Sarjeant <greg@subcultureofone.org>
		
			
				
	
	
		
			52 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| declare(strict_types=1);
 | |
| 
 | |
| class TicksView {
 | |
|     private $html;
 | |
| 
 | |
|     public function __construct(SettingsModel $settings, array $ticks, int $page){
 | |
|         $this->html = $this->render($settings, $ticks, $page);
 | |
|     }
 | |
| 
 | |
|     public function getHtml(): string {
 | |
|         return $this->html;
 | |
|     }
 | |
| 
 | |
|     private function render(SettingsModel $settings, array $ticks, int $page): string{
 | |
|         ob_start();
 | |
|         ?>
 | |
| 
 | |
|             <ul class="tick-feed" aria-label="Recent updates">
 | |
|             <?php foreach ($ticks as $tick): ?>
 | |
|                 <?php
 | |
|                     $datetime = new DateTime($tick['timestamp'], new DateTimeZone('UTC'));
 | |
|                     $relativeTime = Util::relative_time($tick['timestamp']);
 | |
|                 ?>
 | |
|                 <li class="tick" tabindex="0">
 | |
|                 <?php if (Session::isLoggedIn() && $tick['can_delete']): ?>
 | |
|                     <form method="post"
 | |
|                           action="<?= Util::buildRelativeUrl($settings->basePath, "tick/{$tick['id']}/delete") ?>"
 | |
|                           class="delete-tick-form">
 | |
|                         <input type="hidden" name="csrf_token" value="<?= Util::escape_html($_SESSION['csrf_token']) ?>">
 | |
|                         <button type="submit" class="delete-tick-button">🗑️</button>
 | |
|                     </form>
 | |
|                 <?php endif ?>
 | |
|                     <time datetime="<?php echo $datetime->format('c') ?>"><?php echo Util::escape_html($relativeTime) ?></time>
 | |
|                     <span class="tick-text"><?php echo Util::linkify(Util::escape_html($tick['tick'])) ?></span>
 | |
|                 </li>
 | |
|             <?php endforeach; ?>
 | |
|             </ul>
 | |
|             <div class="tick-pagination">
 | |
|             <?php if ($page > 1): ?>
 | |
|                 <a <?php if($settings->strictAccessibility): ?>tabindex="0"<?php endif; ?>
 | |
|                    href="?page=<?php echo $page - 1 ?>">« Newer</a>
 | |
|             <?php endif; ?>
 | |
|             <?php if (count($ticks) === $settings->itemsPerPage): ?>
 | |
|                 <a <?php if($settings->strictAccessibility): ?>tabindex="0"<?php endif; ?>
 | |
|                    href="?page=<?php echo $page + 1 ?>">Older »</a>
 | |
|             <?php endif; ?>
 | |
|             </div>
 | |
| 
 | |
|         <?php return ob_get_clean();
 | |
|     }
 | |
| }
 |