Daily RSS - Remove relative description (today, yesterday)

It is not useful for the RSS feed, as every new entry will be 'yesterday', and it requires an update the next day.
This commit is contained in:
ArthurHoaro 2020-11-15 12:05:08 +01:00
parent 6f9e0609f4
commit 2883c6d0a7
3 changed files with 39 additions and 8 deletions

View file

@ -131,7 +131,7 @@ public function rss(Request $request, Response $response): Response
$dataPerDay[$day] = [ $dataPerDay[$day] = [
'date' => $endDateTime, 'date' => $endDateTime,
'date_rss' => $endDateTime->format(DateTime::RSS), 'date_rss' => $endDateTime->format(DateTime::RSS),
'date_human' => DailyPageHelper::getDescriptionByType($type, $dayDateTime), 'date_human' => DailyPageHelper::getDescriptionByType($type, $dayDateTime, false),
'absolute_url' => $indexUrl . 'daily?' . $type . '=' . $day, 'absolute_url' => $indexUrl . 'daily?' . $type . '=' . $day,
'links' => [], 'links' => [],
]; ];

View file

@ -157,13 +157,17 @@ public static function getEndDateTimeByType(string $type, \DateTimeImmutable $re
* @param string $type month/week/day * @param string $type month/week/day
* @param \DateTimeImmutable $requested DateTime extracted from request input * @param \DateTimeImmutable $requested DateTime extracted from request input
* (should come from extractRequestedDateTime) * (should come from extractRequestedDateTime)
* @param bool $includeRelative Include relative date description (today, yesterday, etc.)
* *
* @return string Localized time period description * @return string Localized time period description
* *
* @throws \Exception Type not supported. * @throws \Exception Type not supported.
*/ */
public static function getDescriptionByType(string $type, \DateTimeImmutable $requested): string public static function getDescriptionByType(
{ string $type,
\DateTimeImmutable $requested,
bool $includeRelative = true
): string {
switch ($type) { switch ($type) {
case static::MONTH: case static::MONTH:
return $requested->format('F') . ', ' . $requested->format('Y'); return $requested->format('F') . ', ' . $requested->format('Y');
@ -172,9 +176,9 @@ public static function getDescriptionByType(string $type, \DateTimeImmutable $re
return t('Week') . ' ' . $requested->format('W') . ' (' . format_date($requested, false) . ')'; return t('Week') . ' ' . $requested->format('W') . ' (' . format_date($requested, false) . ')';
case static::DAY: case static::DAY:
$out = ''; $out = '';
if ($requested->format('Ymd') === date('Ymd')) { if ($includeRelative && $requested->format('Ymd') === date('Ymd')) {
$out = t('Today') . ' - '; $out = t('Today') . ' - ';
} elseif ($requested->format('Ymd') === date('Ymd', strtotime('-1 days'))) { } elseif ($includeRelative && $requested->format('Ymd') === date('Ymd', strtotime('-1 days'))) {
$out = t('Yesterday') . ' - '; $out = t('Yesterday') . ' - ';
} }
return $out . format_date($requested, false); return $out . format_date($requested, false);

View file

@ -121,6 +121,19 @@ public function testGeDescriptionsByType(
static::assertEquals($expectedDescription, $description); static::assertEquals($expectedDescription, $description);
} }
/**
* @dataProvider getDescriptionsByTypeNotIncludeRelative
*/
public function testGeDescriptionsByTypeNotIncludeRelative(
string $type,
\DateTimeImmutable $dateTime,
string $expectedDescription
): void {
$description = DailyPageHelper::getDescriptionByType($type, $dateTime, false);
static::assertEquals($expectedDescription, $description);
}
public function getDescriptionByTypeExceptionUnknownType(): void public function getDescriptionByTypeExceptionUnknownType(): void
{ {
$this->expectException(\Exception::class); $this->expectException(\Exception::class);
@ -248,6 +261,20 @@ public function getDescriptionsByType(): array
]; ];
} }
/**
* Data provider for testGeDescriptionsByTypeNotIncludeRelative() test method.
*/
public function getDescriptionsByTypeNotIncludeRelative(): array
{
return [
[DailyPageHelper::DAY, $date = new \DateTimeImmutable(), $date->format('F j, Y')],
[DailyPageHelper::DAY, $date = new \DateTimeImmutable('-1 day'), $date->format('F j, Y')],
[DailyPageHelper::DAY, new \DateTimeImmutable('2020-10-09 04:05:06'), 'October 9, 2020'],
[DailyPageHelper::WEEK, new \DateTimeImmutable('2020-10-09 04:05:06'), 'Week 41 (October 5, 2020)'],
[DailyPageHelper::MONTH, new \DateTimeImmutable('2020-10-09 04:05:06'), 'October, 2020'],
];
}
/** /**
* Data provider for testGetDescriptionsByType() test method. * Data provider for testGetDescriptionsByType() test method.
*/ */