1 | 1 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,30 @@ |
1 |
+<?php |
|
2 |
+ |
|
3 |
+ |
|
4 |
+namespace vonRotenberg\RealEstateListingBundle\Twig; |
|
5 |
+ |
|
6 |
+use Twig\Extension\AbstractExtension; |
|
7 |
+use Twig\TwigFilter; |
|
8 |
+ |
|
9 |
+class AppExtension extends AbstractExtension |
|
10 |
+{ |
|
11 |
+ public function getFilters(): array |
|
12 |
+ { |
|
13 |
+ return [ |
|
14 |
+ new TwigFilter('mm2pt', [$this, 'convertMillimeterToPoint']), |
|
15 |
+ new TwigFilter('imageDataUrl', [$this, 'getImageDataUrl']), |
|
16 |
+ ]; |
|
17 |
+ } |
|
18 |
+ |
|
19 |
+ public function convertMillimeterToPoint(float $mm): float |
|
20 |
+ { |
|
21 |
+ return (float) $mm / 25.4 * 72; |
|
22 |
+ } |
|
23 |
+ |
|
24 |
+ public function getImageDataUrl(string $path): string |
|
25 |
+ { |
|
26 |
+ $type = pathinfo($path, PATHINFO_EXTENSION); |
|
27 |
+ $data = file_get_contents($path); |
|
28 |
+ return 'data:image/' . $type . ';base64,' . base64_encode($data); |
|
29 |
+ } |
|
30 |
+} |