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 @@ class DailyController extends ShaarliVisitorController
|
|||
$dataPerDay[$day] = [
|
||||
'date' => $endDateTime,
|
||||
'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,
|
||||
'links' => [],
|
||||
];
|
||||
|
|
|
@ -154,16 +154,20 @@ class DailyPageHelper
|
|||
* Get localized description of the time period depending on given datetime and type.
|
||||
* Example: for a month period, it returns `October, 2020`.
|
||||
*
|
||||
* @param string $type month/week/day
|
||||
* @param \DateTimeImmutable $requested DateTime extracted from request input
|
||||
* (should come from extractRequestedDateTime)
|
||||
* @param string $type month/week/day
|
||||
* @param \DateTimeImmutable $requested DateTime extracted from request input
|
||||
* (should come from extractRequestedDateTime)
|
||||
* @param bool $includeRelative Include relative date description (today, yesterday, etc.)
|
||||
*
|
||||
* @return string Localized time period description
|
||||
*
|
||||
* @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) {
|
||||
case static::MONTH:
|
||||
return $requested->format('F') . ', ' . $requested->format('Y');
|
||||
|
@ -172,9 +176,9 @@ class DailyPageHelper
|
|||
return t('Week') . ' ' . $requested->format('W') . ' (' . format_date($requested, false) . ')';
|
||||
case static::DAY:
|
||||
$out = '';
|
||||
if ($requested->format('Ymd') === date('Ymd')) {
|
||||
if ($includeRelative && $requested->format('Ymd') === date('Ymd')) {
|
||||
$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') . ' - ';
|
||||
}
|
||||
return $out . format_date($requested, false);
|
||||
|
|
|
@ -121,6 +121,19 @@ class DailyPageHelperTest extends TestCase
|
|||
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
|
||||
{
|
||||
$this->expectException(\Exception::class);
|
||||
|
@ -248,6 +261,20 @@ class DailyPageHelperTest extends TestCase
|
|||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* 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.
|
||||
*/
|
||||
|
|
Loading…
Reference in a new issue