Add TalkExtension as a Twig extension
This commit is contained in:
parent
d22c35c090
commit
5048781ae3
|
@ -6,3 +6,8 @@ sculpin_content_types:
|
||||||
taxonomies: [tags]
|
taxonomies: [tags]
|
||||||
talks:
|
talks:
|
||||||
permalink: talks/:basename/
|
permalink: talks/:basename/
|
||||||
|
|
||||||
|
services:
|
||||||
|
App\TwigExtension\TalkExtension:
|
||||||
|
tags:
|
||||||
|
- { name: twig.extension }
|
||||||
|
|
|
@ -5,10 +5,19 @@ declare(strict_types=1);
|
||||||
namespace App\TwigExtension;
|
namespace App\TwigExtension;
|
||||||
|
|
||||||
use Illuminate\Support\Collection;
|
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);
|
$talkCollection = new Collection($talks);
|
||||||
|
|
||||||
|
|
|
@ -10,6 +10,6 @@ final class TalkExtensionTest extends TestCase
|
||||||
/** @test */
|
/** @test */
|
||||||
public function it_returns_zero_if_there_are_no_talks(): void
|
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