Add TalkExtension as a Twig extension
This commit is contained in:
parent
d22c35c090
commit
5048781ae3
|
@ -6,3 +6,8 @@ sculpin_content_types:
|
|||
taxonomies: [tags]
|
||||
talks:
|
||||
permalink: talks/:basename/
|
||||
|
||||
services:
|
||||
App\TwigExtension\TalkExtension:
|
||||
tags:
|
||||
- { name: twig.extension }
|
||||
|
|
|
@ -5,10 +5,19 @@ declare(strict_types=1);
|
|||
namespace App\TwigExtension;
|
||||
|
||||
use Illuminate\Support\Collection;
|
||||
use Twig\Extension\AbstractExtension;
|
||||
use Twig\TwigFunction;
|
||||
|
||||
final class TalkExtension
|
||||
final class TalkExtension extends AbstractExtension
|
||||
{
|
||||
public function getPastTalksCount(array $talks = []): int
|
||||
public function getFunctions()
|
||||
{
|
||||
return [
|
||||
new TwigFunction('get_past_talk_count', [$this, 'getPastTalkCount']),
|
||||
];
|
||||
}
|
||||
|
||||
public function getPastTalkCount(array $talks = []): int
|
||||
{
|
||||
$talkCollection = new Collection($talks);
|
||||
|
||||
|
|
|
@ -10,6 +10,6 @@ final class TalkExtensionTest extends TestCase
|
|||
/** @test */
|
||||
public function it_returns_zero_if_there_are_no_talks(): void
|
||||
{
|
||||
$this->assertSame(0, (new TalkExtension())->getPastTalksCount([]));
|
||||
$this->assertSame(0, (new TalkExtension())->getPastTalkCount([]));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue