Files
typo3-13/packages/ep_theme/Classes/ViewHelpers/GmapsUrlViewHelper.php
T
frommeandClaude Opus 5.5 3fa4a81e97 chore: remove the outdated copyright notices
The GPL headers named dreipunktnull and an old address and no longer
match the license of the code.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 10:41:24 +01:00

52 lines
1.6 KiB
PHP

<?php
namespace EP\EpTheme\ViewHelpers;
use EP\EpProducts\Domain\Model\Hotel;
use EP\EpProducts\Domain\Model\Region;
use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface;
use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractViewHelper;
class GmapsUrlViewHelper extends AbstractViewHelper
{
/**
* @var bool
*/
protected $escapeOutput = false;
const URLBASE = 'http://maps.google.com/maps?q=%s,%s&t=%s&z=%d';
public function initializeArguments()
{
parent::initializeArguments();
$this->registerArgument('hotel', Hotel::class, 'The hotel');
$this->registerArgument('region', Region::class, 'The region');
$this->registerArgument('type', 'string', 'The map type', false, 'p');
$this->registerArgument('zoom', 'int', 'The zoom level', false, 10);
}
/**
* @param array $arguments
* @param \Closure $renderChildrenClosure
* @param RenderingContextInterface $renderingContext
* @return mixed
*/
public function render()
{
$hotel = $this->arguments['hotel'];
$region = $this->arguments['region'];
if ($hotel !== null && $hotel->getLatitude() && $hotel->getLongitude()) {
$source = $hotel;
} elseif ($hotel !== null && $hotel->getRegion()->getLatitude() && $hotel->getRegion()->getLongitude()) {
$source = $hotel->getRegion();
} elseif ($region !== null) {
$source = $region;
} else {
return 'http://www.google.de/maps';
}
return sprintf(static::URLBASE, $source->getLatitude(), $source->getLongitude(), $this->arguments['type'], $this->arguments['zoom']);
}
}