Skip to content

Daten formatiert Auslesen Eigener Formatter (beta)

Axel Krysztofiak edited this page Sep 13, 2024 · 3 revisions

Eigener Formatter

Ab Version 3 kann man eigene Formatter implementieren. Das kommt daher, weil man ab dann die Klasse angibt, die verwendet werden soll.

Wichtig ist nur, dass die Klasse einer der Formatter-Interfaces implementiert.

Das sind die folgenden:

  • FriendsOfRedaxo\addon\MediapoolExif\Format\FormatInterface

Note

In Version 3.0 musste man von FriendsOfRedaxo\addon\MediapoolExif\Format\FormatInterface ableiteten und konnte in der Methode format auf $this->data zugreifen.

Beispiel: DateTime (in der Beispieldatei mit 2019:03:01 13:03:02 befüllt)

Formatter:

//Datei redaxo/src/addons/project/lib/Exif/MyFormatter.php
namespace Project\Exif;

use FriendsOfRedaxo\MediapoolExif\Formatter\Interface\StandardFormatterInterface;

class MyFormatter implements StandardFormatterInterface
{

	public function format(array $exif): string
	{
		$value = $exif['DateTime']; //2019:03:01 13:03:02
		if (!$value) {
			return '';
		}

		//Ausgabe/Aufbereitung
		return date('d.m.Y H:i:s', strtotime($value)); //01.03.2019 13:03:02
	}
}

Im Template, Block oder sonstwo:

use FriendsOfRedaxo\addon\MediapoolExif\Enum\Format;
use FriendsOfRedaxo\addon\MediapoolExif\Exif;
use Project\Exif\MyFormatter;

$media = rex_media::get($filename);
$exif = Exif::get($media);

?>

<pre>
<?php var_dump($exif->format(MyFormatter::class));?>
</pre>

Ausgabe:

string(19) "01.03.2019 13:03:02"