Merge pull request #1644 from ArthurHoaro/fix/daily-rss
Daily RSS - Remove relative description (today, yesterday)
This commit is contained in:
commit
ab4c170672
3 changed files with 39 additions and 8 deletions
|
@ -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' => [],
|
||||||
];
|
];
|
||||||
|
|
|
@ -154,16 +154,20 @@ public static function getEndDateTimeByType(string $type, \DateTimeImmutable $re
|
||||||
* Get localized description of the time period depending on given datetime and type.
|
* Get localized description of the time period depending on given datetime and type.
|
||||||
* Example: for a month period, it returns `October, 2020`.
|
* Example: for a month period, it returns `October, 2020`.
|
||||||
*
|
*
|
||||||
* @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);
|
||||||
|
|
|
@ -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.
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in a new issue