mirror of
https://github.com/Part-DB/Part-DB-server.git
synced 2026-03-01 12:59:36 +00:00
Moved remaining twig extensions to new attributes system
This commit is contained in:
parent
f69b0889eb
commit
1996db6a53
12 changed files with 212 additions and 168 deletions
|
|
@ -25,22 +25,34 @@ namespace App\Twig;
|
|||
use App\Entity\Attachments\Attachment;
|
||||
use App\Services\Attachments\AttachmentURLGenerator;
|
||||
use App\Services\Misc\FAIconGenerator;
|
||||
use Twig\Attribute\AsTwigFunction;
|
||||
use Twig\Extension\AbstractExtension;
|
||||
use Twig\TwigFunction;
|
||||
|
||||
final class AttachmentExtension extends AbstractExtension
|
||||
final readonly class AttachmentExtension
|
||||
{
|
||||
public function __construct(protected AttachmentURLGenerator $attachmentURLGenerator, protected FAIconGenerator $FAIconGenerator)
|
||||
public function __construct(private AttachmentURLGenerator $attachmentURLGenerator, private FAIconGenerator $FAIconGenerator)
|
||||
{
|
||||
}
|
||||
|
||||
public function getFunctions(): array
|
||||
/**
|
||||
* Returns the URL of the thumbnail of the given attachment. Returns null if no thumbnail is available.
|
||||
*/
|
||||
#[AsTwigFunction("attachment_thumbnail")]
|
||||
public function attachmentThumbnail(Attachment $attachment, string $filter_name = 'thumbnail_sm'): ?string
|
||||
{
|
||||
return [
|
||||
/* Returns the URL to a thumbnail of the given attachment */
|
||||
new TwigFunction('attachment_thumbnail', fn(Attachment $attachment, string $filter_name = 'thumbnail_sm'): ?string => $this->attachmentURLGenerator->getThumbnailURL($attachment, $filter_name)),
|
||||
/* Returns the font awesome icon class which is representing the given file extension (We allow null here for attachments without extension) */
|
||||
new TwigFunction('ext_to_fa_icon', fn(?string $extension): string => $this->FAIconGenerator->fileExtensionToFAType($extension ?? '')),
|
||||
];
|
||||
return $this->attachmentURLGenerator->getThumbnailURL($attachment, $filter_name);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the font-awesome icon type for the given file extension. Returns "file" if no specific icon is available.
|
||||
* Null is allowed for files withot extension
|
||||
* @param string|null $extension
|
||||
* @return string
|
||||
*/
|
||||
#[AsTwigFunction("ext_to_fa_icon")]
|
||||
public function extToFAIcon(?string $extension): string
|
||||
{
|
||||
return $this->FAIconGenerator->fileExtensionToFAType($extension ?? '');
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue