Use assets as a service.

This commit is contained in:
David Molineus
2015-02-02 08:21:47 +01:00
parent 71084aeeae
commit 1546b0425d
2 changed files with 21 additions and 4 deletions

View File

@@ -10,6 +10,7 @@
*/ */
use Netzmacht\Contao\Leaflet\Boot; use Netzmacht\Contao\Leaflet\Boot;
use Netzmacht\Contao\Leaflet\ContaoAssets;
use Netzmacht\Contao\Leaflet\Frontend\Helper\FrontendApi; use Netzmacht\Contao\Leaflet\Frontend\Helper\FrontendApi;
use Netzmacht\Contao\Leaflet\Frontend\ValueFilter; use Netzmacht\Contao\Leaflet\Frontend\ValueFilter;
use Netzmacht\Contao\Leaflet\Mapper\DefinitionMapper; use Netzmacht\Contao\Leaflet\Mapper\DefinitionMapper;
@@ -38,10 +39,17 @@ $container['leaflet.map.service'] = $container->share(function ($container) {
$container['leaflet.definition.mapper'], $container['leaflet.definition.mapper'],
$container['leaflet.definition.builder'], $container['leaflet.definition.builder'],
$container['event-dispatcher'], $container['event-dispatcher'],
$container['input'] $container['input'],
$container['leaflet.map.assets']
); );
}); });
/*
* Contao assets handler. Loads Leaflet assets as contao (static) assets.
*/
$container['leaflet.map.assets'] = $container->share(function () {
return new ContaoAssets();
});
/* /*
* The leaflet boot. * The leaflet boot.

View File

@@ -59,6 +59,13 @@ class MapService
*/ */
private $input; private $input;
/**
* Map assets collector.
*
* @var Assets
*/
private $assets;
/** /**
* Construct. * Construct.
* *
@@ -66,17 +73,20 @@ class MapService
* @param Leaflet $leaflet The Leaflet instance. * @param Leaflet $leaflet The Leaflet instance.
* @param EventDispatcher $eventDispatcher The Contao event dispatcher. * @param EventDispatcher $eventDispatcher The Contao event dispatcher.
* @param \Input $input Thw request input. * @param \Input $input Thw request input.
* @param Assets $assets
*/ */
public function __construct( public function __construct(
DefinitionMapper $mapper, DefinitionMapper $mapper,
Leaflet $leaflet, Leaflet $leaflet,
EventDispatcher $eventDispatcher, EventDispatcher $eventDispatcher,
\Input $input \Input $input,
Assets $assets
) { ) {
$this->mapper = $mapper; $this->mapper = $mapper;
$this->leaflet = $leaflet; $this->leaflet = $leaflet;
$this->eventDispatcher = $eventDispatcher; $this->eventDispatcher = $eventDispatcher;
$this->input = $input; $this->input = $input;
$this->assets = $assets;
} }
/** /**
@@ -147,11 +157,10 @@ class MapService
$style = '' $style = ''
) { ) {
$definition = $this->getDefinition($mapId, $filter, $elementId); $definition = $this->getDefinition($mapId, $filter, $elementId);
$assets = new ContaoAssets();
$template = \Controller::getTemplate($template); $template = \Controller::getTemplate($template);
// @codingStandardsIgnoreStart - Set for the template. // @codingStandardsIgnoreStart - Set for the template.
$javascript = $this->leaflet->build($definition, $assets); $javascript = $this->leaflet->build($definition, $this->assets);
$mapId = $definition->getId(); $mapId = $definition->getId();
// @codingStandardsIgnoreEnd // @codingStandardsIgnoreEnd