/**
* {@inheritdoc}
*/
public function formatImages(Model\Images $model)
{
$images = '';
if ($fields = $model->getFields()) {
$fields = array_fill_keys($fields, 1);
}
foreach ($model->getImages() as $image) {
$images .= '<image>';
if (empty($fields) || isset($fields['publicKey'])) {
$images .= '<publicKey>' . $image->getPublicKey() . '</publicKey>';
}
if (empty($fields) || isset($fields['imageIdentifier'])) {
$images .= '<imageIdentifier>' . $image->getImageIdentifier() . '</imageIdentifier>';
}
if (empty($fields) || isset($fields['checksum'])) {
$images .= '<checksum>' . $image->getChecksum() . '</checksum>';
}
if (empty($fields) || isset($fields['originalChecksum'])) {
$images .= '<originalChecksum>' . $image->getOriginalChecksum() . '</originalChecksum>';
}
if (empty($fields) || isset($fields['mime'])) {
$images .= '<mime>' . $image->getMimeType() . '</mime>';
}
if (empty($fields) || isset($fields['extension'])) {
$images .= '<extension>' . $image->getExtension() . '</extension>';
}
if (empty($fields) || isset($fields['added'])) {
$images .= '<added>' . $this->dateFormatter->formatDate($image->getAddedDate()) . '</added>';
}
if (empty($fields) || isset($fields['updated'])) {
$images .= '<updated>' . $this->dateFormatter->formatDate($image->getUpdatedDate()) . '</updated>';
}
if (empty($fields) || isset($fields['size'])) {
$images .= '<size>' . $image->getFilesize() . '</size>';
}
if (empty($fields) || isset($fields['width'])) {
$images .= '<width>' . $image->getWidth() . '</width>';
}
if (empty($fields) || isset($fields['height'])) {
$images .= '<height>' . $image->getHeight() . '</height>';
}
$metadata = $image->getMetadata();
if (is_array($metadata) && (empty($fields) || isset($fields['metadata']))) {
$images .= '<metadata>';
foreach ($metadata as $key => $value) {
$images .= '<tag key="' . $key . '">' . $value . '</tag>';
}
$images .= '</metadata>';
}
$images .= '</image>';
}
return <<<IMAGES
<?xml version="1.0" encoding="UTF-8"?>
<imbo>
<search>
<hits>{$model->getHits()}</hits>
<page>{$model->getPage()}</page>
<limit>{$model->getLimit()}</limit>
<count>{$model->getCount()}</count>
</search>
<images>{$images}</images>
</imbo>
IMAGES;
}