Improve icon handling.

This commit is contained in:
David Molineus
2015-01-07 09:32:14 +01:00
parent 6d453ffab9
commit df7b8d3c94
4 changed files with 121 additions and 21 deletions

View File

@@ -131,31 +131,34 @@ class BootSubscriber implements EventSubscriberInterface
if ($collection) {
/** @var DefinitionMapper $mapper */
$buffer = '';
$mapper = $GLOBALS['container']['leaflet.definition.mapper'];
$mapper = $GLOBALS['container']['leaflet.definition.mapper'];
$buffer = '';
$icons = array();
/** @var Leaflet $builder */
$builder = $GLOBALS['container']['leaflet.definition.builder'];
$encoder = $builder->getBuilder()->getEncoder();
foreach ($collection as $model) {
/** @var Icon $icon */
$icon = $mapper->handle($model);
$buffer .= sprintf(
'ContaoLeaflet.addIcon(\'%s\', L.icon(%s));' . "\n",
$model->alias ?: ('icon_' . $model->id),
$encoder->encodeValue($icon->getOptions())
$icon = $mapper->handle($model);
$icons[] = array(
'id' => $icon->getId(),
'type' => lcfirst($icon->getType()),
'options' => $icon->getOptions(),
);
}
if ($buffer) {
$file = new \File('assets/leaflet/js/icons.js');
$file->write($buffer);
$file->close();
// TODO: Cache it.
$GLOBALS['TL_JAVASCRIPT'][] = 'assets/leaflet/js/icons.js|static';
if ($icons) {
$buffer = sprintf('ContaoLeaflet.loadIcons(%s);', $encoder->encodeValue($icons));
}
$file = new \File('assets/leaflet/js/icons.js');
$file->write($buffer);
$file->close();
// TODO: Cache it.
$GLOBALS['TL_JAVASCRIPT'][] = 'assets/leaflet/js/icons.js|static';
}
}
}