mirror of
https://github.com/netzmacht/contao-leaflet-maps.git
synced 2025-11-28 11:04:08 +01:00
Support custom templates and map ids.
This commit is contained in:
@@ -11,7 +11,7 @@
|
||||
|
||||
$GLOBALS['TL_DCA']['tl_content']['metapalettes']['leaflet'] = array(
|
||||
'type' => array('type', 'headline'),
|
||||
'leaflet' => array('leaflet_map', 'leaflet_width', 'leaflet_height'),
|
||||
'leaflet' => array('leaflet_map', 'leaflet_mapId', 'leaflet_width', 'leaflet_height', 'leaflet_template'),
|
||||
'templates' => array(':hide', 'customTpl'),
|
||||
'protected' => array(':hide', 'protected'),
|
||||
'expert' => array(':hide', 'guests', 'cssID', 'space'),
|
||||
@@ -33,6 +33,18 @@ $GLOBALS['TL_DCA']['tl_content']['fields']['leaflet_map'] = array(
|
||||
'sql' => "int(10) unsigned NOT NULL default '0'"
|
||||
);
|
||||
|
||||
$GLOBALS['TL_DCA']['tl_content']['fields']['leaflet_mapId'] = array(
|
||||
'label' => &$GLOBALS['TL_LANG']['tl_content']['leaflet_mapId'],
|
||||
'inputType' => 'text',
|
||||
'exclude' => true,
|
||||
'eval' => array(
|
||||
'tl_class' => 'w50',
|
||||
'chosen' => true,
|
||||
'maxlength' => 16,
|
||||
),
|
||||
'sql' => "varchar(16) NOT NULL default ''"
|
||||
);
|
||||
|
||||
$GLOBALS['TL_DCA']['tl_content']['fields']['leaflet_width'] = array(
|
||||
'label' => &$GLOBALS['TL_LANG']['tl_content']['leaflet_width'],
|
||||
'inputType' => 'inputUnit',
|
||||
@@ -53,3 +65,15 @@ $GLOBALS['TL_DCA']['tl_content']['fields']['leaflet_height'] = array(
|
||||
'eval' => array('rgxp' => 'digit', 'tl_class' => 'w50'),
|
||||
'sql' => "varchar(64) NOT NULL default ''"
|
||||
);
|
||||
|
||||
$GLOBALS['TL_DCA']['tl_content']['fields']['leaflet_template'] = array(
|
||||
'label' => &$GLOBALS['TL_LANG']['tl_content']['leaflet_template'],
|
||||
'inputType' => 'select',
|
||||
'exclude' => true,
|
||||
'options_callback' => \Netzmacht\Contao\Toolkit\Dca::createGetTemplatesCallback('leaflet_map_js'),
|
||||
'eval' => array(
|
||||
'tl_class' => 'w50',
|
||||
'chosen' => true,
|
||||
),
|
||||
'sql' => "varchar(64) NOT NULL default ''"
|
||||
);
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
$GLOBALS['TL_DCA']['tl_module']['metapalettes']['leaflet'] = array(
|
||||
'type' => array('name', 'type', 'headline'),
|
||||
'leaflet' => array('leaflet_map', 'leaflet_width', 'leaflet_height'),
|
||||
'leaflet' => array('leaflet_map', 'leaflet_mapId', 'leaflet_width', 'leaflet_height', 'leaflet_template'),
|
||||
'templates' => array(':hide', 'customTpl'),
|
||||
'protected' => array(':hide', 'protected'),
|
||||
'expert' => array(':hide', 'guests', 'cssID', 'space'),
|
||||
@@ -33,6 +33,18 @@ $GLOBALS['TL_DCA']['tl_module']['fields']['leaflet_map'] = array(
|
||||
'sql' => "int(10) unsigned NOT NULL default '0'"
|
||||
);
|
||||
|
||||
$GLOBALS['TL_DCA']['tl_module']['fields']['leaflet_mapId'] = array(
|
||||
'label' => &$GLOBALS['TL_LANG']['tl_module']['leaflet_mapId'],
|
||||
'inputType' => 'text',
|
||||
'exclude' => true,
|
||||
'eval' => array(
|
||||
'tl_class' => 'w50',
|
||||
'chosen' => true,
|
||||
'maxlength' => 16,
|
||||
),
|
||||
'sql' => "varchar(16) NOT NULL default ''"
|
||||
);
|
||||
|
||||
$GLOBALS['TL_DCA']['tl_module']['fields']['leaflet_width'] = array(
|
||||
'label' => &$GLOBALS['TL_LANG']['tl_module']['leaflet_width'],
|
||||
'inputType' => 'inputUnit',
|
||||
@@ -53,3 +65,15 @@ $GLOBALS['TL_DCA']['tl_module']['fields']['leaflet_height'] = array(
|
||||
'eval' => array('rgxp' => 'digit', 'tl_class' => 'w50'),
|
||||
'sql' => "varchar(64) NOT NULL default ''"
|
||||
);
|
||||
|
||||
$GLOBALS['TL_DCA']['tl_module']['fields']['leaflet_template'] = array(
|
||||
'label' => &$GLOBALS['TL_LANG']['tl_module']['leaflet_template'],
|
||||
'inputType' => 'select',
|
||||
'exclude' => true,
|
||||
'options_callback' => \Netzmacht\Contao\Toolkit\Dca::createGetTemplatesCallback('leaflet_map_js'),
|
||||
'eval' => array(
|
||||
'tl_class' => 'w50',
|
||||
'chosen' => true,
|
||||
),
|
||||
'sql' => "varchar(64) NOT NULL default ''"
|
||||
);
|
||||
|
||||
@@ -14,3 +14,9 @@ $GLOBALS['TL_LANG']['MOD']['tl_leaflet_layer'] = 'Layers';
|
||||
$GLOBALS['TL_LANG']['MOD']['tl_leaflet_icon'] = 'Icons';
|
||||
$GLOBALS['TL_LANG']['MOD']['tl_leaflet_marker'] = 'Markers';
|
||||
$GLOBALS['TL_LANG']['MOD']['tl_leaflet_control'] = 'Controls';
|
||||
|
||||
$GLOBALS['TL_LANG']['FMD']['leaflet'][0] = 'Leaflet Map';
|
||||
$GLOBALS['TL_LANG']['FMD']['leaflet'][1] = 'Integrate leaflet map as frontend module.';
|
||||
|
||||
$GLOBALS['TL_LANG']['CTE']['leaflet'][0] = 'Leaflet Map';
|
||||
$GLOBALS['TL_LANG']['CTE']['leaflet'][1] = 'Integrate leaflet map as content element.';
|
||||
|
||||
12
module/languages/en/tl_content.php
Normal file
12
module/languages/en/tl_content.php
Normal file
@@ -0,0 +1,12 @@
|
||||
<?php
|
||||
|
||||
$GLOBALS['TL_LANG']['tl_content']['leaflet_map'][0] = 'Leaflet Map';
|
||||
$GLOBALS['TL_LANG']['tl_content']['leaflet_map'][1] = 'Choose a Leaflet Map';
|
||||
$GLOBALS['TL_LANG']['tl_content']['leaflet_mapId'][0] = 'Leaflet map id';
|
||||
$GLOBALS['TL_LANG']['tl_content']['leaflet_mapId'][1] = 'You can force a specific map id which is used as HTML id. Otherwise the content element id is used to generate the id.';
|
||||
$GLOBALS['TL_LANG']['tl_content']['leaflet_width'][0] = 'Map width';
|
||||
$GLOBALS['TL_LANG']['tl_content']['leaflet_width'][1] = 'Define the width of the map.';
|
||||
$GLOBALS['TL_LANG']['tl_content']['leaflet_height'][0] = 'Map height';
|
||||
$GLOBALS['TL_LANG']['tl_content']['leaflet_height'][1] = 'Define the height of the map.';
|
||||
$GLOBALS['TL_LANG']['tl_content']['leaflet_template'][0] = 'Map Template';
|
||||
$GLOBALS['TL_LANG']['tl_content']['leaflet_template'][1] = 'Choose a template to generate the map. The template has to create javscript, not HTML!';
|
||||
12
module/languages/en/tl_module.php
Normal file
12
module/languages/en/tl_module.php
Normal file
@@ -0,0 +1,12 @@
|
||||
<?php
|
||||
|
||||
$GLOBALS['TL_LANG']['tl_module']['leaflet_map'][0] = 'Leaflet Map';
|
||||
$GLOBALS['TL_LANG']['tl_module']['leaflet_map'][1] = 'Choose a Leaflet Map';
|
||||
$GLOBALS['TL_LANG']['tl_module']['leaflet_mapId'][0] = 'Leaflet map id';
|
||||
$GLOBALS['TL_LANG']['tl_module']['leaflet_mapId'][1] = 'You can force a specific map id which is used as HTML id. Otherwise the content element id is used to generate the id.';
|
||||
$GLOBALS['TL_LANG']['tl_module']['leaflet_width'][0] = 'Map width';
|
||||
$GLOBALS['TL_LANG']['tl_module']['leaflet_width'][1] = 'Define the width of the map.';
|
||||
$GLOBALS['TL_LANG']['tl_module']['leaflet_height'][0] = 'Map height';
|
||||
$GLOBALS['TL_LANG']['tl_module']['leaflet_height'][1] = 'Define the height of the map.';
|
||||
$GLOBALS['TL_LANG']['tl_module']['leaflet_template'][0] = 'Map Template';
|
||||
$GLOBALS['TL_LANG']['tl_module']['leaflet_template'][1] = 'Choose a template to generate the map. The template has to create javscript, not HTML!';
|
||||
@@ -66,7 +66,7 @@ trait HybridTrait
|
||||
*/
|
||||
public function generate()
|
||||
{
|
||||
$this->mapService->handleAjaxRequest('map_' . $this->getIdentifier());
|
||||
$this->mapService->handleAjaxRequest($this->getIdentifier());
|
||||
|
||||
if (TL_MODE === 'BE') {
|
||||
$model = MapModel::findByPK($this->leaflet_map);
|
||||
@@ -101,8 +101,9 @@ trait HybridTrait
|
||||
protected function compile()
|
||||
{
|
||||
try {
|
||||
$mapId = 'map_' . $this->getIdentifier();
|
||||
$map = $this->mapService->generate($this->leaflet_map, null, $mapId);
|
||||
$template = $this->leaflet_template ?: 'leaflet_map_js';
|
||||
$mapId = $this->getIdentifier();
|
||||
$map = $this->mapService->generate($this->leaflet_map, null, $mapId, $template);
|
||||
|
||||
$GLOBALS['TL_BODY'][] = '<script>' . $map .'</script>';
|
||||
|
||||
|
||||
@@ -47,6 +47,14 @@ class MapElement extends \ContentElement
|
||||
*/
|
||||
protected function getIdentifier()
|
||||
{
|
||||
return 'ce_' . $this->id;
|
||||
if ($this->leaflet_mapId) {
|
||||
return $this->leaflet_mapId;
|
||||
}
|
||||
|
||||
if ($this->cssID[0]) {
|
||||
return 'map_' . $this->cssID[0];
|
||||
}
|
||||
|
||||
return 'map_ce_' . $this->id;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,6 +46,14 @@ class MapModule extends \Module
|
||||
*/
|
||||
protected function getIdentifier()
|
||||
{
|
||||
return 'mod_' . $this->id;
|
||||
if ($this->leaflet_mapId) {
|
||||
return $this->leaflet_mapId;
|
||||
}
|
||||
|
||||
if ($this->cssID[0]) {
|
||||
return 'map_' . $this->cssID[0];
|
||||
}
|
||||
|
||||
return 'map_mod_' . $this->id;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user