Add tick mood display.

This commit is contained in:
Greg Sarjeant 2025-06-23 09:06:55 -04:00
parent efe9688289
commit 35033e50a6
6 changed files with 12 additions and 6 deletions

View File

@ -65,7 +65,7 @@ class AdminController extends Controller {
$basePath = trim($_POST['base_path'] ?? '/');
$itemsPerPage = (int) ($_POST['items_per_page'] ?? 25);
$strictAccessibility = isset($_POST['strict_accessibility']);
$showTickMood = isset($_POST['strict_accessibility']);
$showTickMood = isset($_POST['show_tick_mood']);
// Password
$password = $_POST['password'] ?? '';

View File

@ -29,7 +29,7 @@ class HomeController extends Controller {
if ($_SERVER['REQUEST_METHOD'] === 'POST' and isset($_POST['new_tick'])) {
// save the tick
if (trim($_POST['new_tick'])){
TickModel::save($_POST['new_tick']);
TickModel::save($_POST['new_tick'], $_POST['tick_mood']);
}
}

View File

@ -72,7 +72,7 @@ class ConfigModel {
strict_accessibility,
show_tick_mood
)
VALUES (1, ?, ?, ?, ?, ?, ?)");
VALUES (1, ?, ?, ?, ?, ?, ?, ?, ?)");
} else {
$stmt = $db->prepare("UPDATE settings SET
site_title=?,

View File

@ -34,13 +34,14 @@ class TickModel {
// Ticks are pipe-delimited: timestamp|text
// But just in case a tick contains a pipe, only split on the first one that occurs
list($time, $emoji, $tick) = explode('|', $line, 3);
list($time, $mood, $tick) = explode('|', $line, 3);
// Build the timestamp from the date and time
// Ticks are always stored in UTC
$timestampUTC = "$year-$month-$day $time";
yield [
'timestamp' => $timestampUTC,
'mood' => $mood,
'tick' => $tick,
];
@ -51,7 +52,7 @@ class TickModel {
}
}
public static function save(string $tick): void {
public static function save(string $tick, string $mood=''): void {
// build the tick path and filename from the current time
$now = new DateTime('now', new DateTimeZone('UTC'));
@ -70,7 +71,7 @@ class TickModel {
}
// write the tick to the file (the file will be created if it doesn't exist)
$content = $time . "|" . $tick . "\n";
$content = $time . '|' . $mood . '|' . $tick . "\n";
file_put_contents($filename, $content, FILE_APPEND);
}

View File

@ -1,6 +1,7 @@
<?php
class HomeView {
public function renderTicksSection(string $siteDescription, array $ticks, int $page, int $limit){
global $config;
ob_start();
?>
@ -12,6 +13,9 @@ class HomeView {
?>
<li class="tick" tabindex="0">
<time datetime="<?php echo $datetime->format('c') ?>"><?php echo Util::escape_html($relativeTime) ?></time>
<?php if ($config->showTickMood): ?>
<span><?php echo $tick['mood'] ?></span>
<?php endif; ?>
<span class="tick-text"><?php echo Util::linkify(Util::escape_html($tick['tick'])) ?></span>
</li>
<?php endforeach; ?>

View File

@ -32,6 +32,7 @@
<div class="profile-tick">
<form class="profile-tick-form" method="post">
<input type="hidden" name="csrf_token" value="<?= Util::escape_html($_SESSION['csrf_token']) ?>">
<input type="hidden" name="tick_mood" value="<?= Util::escape_html($user->mood) ?>">
<textarea name="new_tick"
aria-label="What's ticking?"
placeholder="What's ticking?"