getlocations_mapbox.module in Get Locations 7
Same filename and directory in other branches
getlocations_mapbox.module @author Bob Hutchinson http://drupal.org/user/52366 @copyright GNU GPL
Provides mapbox maps integration for Leaflet.
File
modules/getlocations_mapbox/getlocations_mapbox.moduleView source
<?php
/**
* @file
* getlocations_mapbox.module
* @author Bob Hutchinson http://drupal.org/user/52366
* @copyright GNU GPL
*
* Provides mapbox maps integration for Leaflet.
*
*
*/
function getlocations_mapbox_get_map_layers() {
$mapbox_info = variable_get('getlocations_leaflet_mapbox', '');
$add = array();
if (!empty($mapbox_info) && isset($mapbox_info['mapbox_info']) && is_array($mapbox_info['mapbox_info'])) {
foreach ($mapbox_info['mapbox_info'] as $k => $info) {
if (isset($info['key']) && $info['key'] && isset($info['label']) && $info['label']) {
$add['MapBox' . '.' . $info['label']] = array(
'label' => $info['label'],
'type' => isset($info['type']) ? $info['type'] : 'base',
'options' => array(
'id' => $info['key'],
'accessToken' => $info['token'],
),
);
}
}
}
return $add;
}
function getlocations_mapbox_settings_form() {
$form = array();
// mapbox
$getlocations_leaflet_mapbox = variable_get('getlocations_leaflet_mapbox', array(
'mapbox_info' => array(),
));
$mapnum = count($getlocations_leaflet_mapbox['mapbox_info']);
$form['getlocations_leaflet_mapbox'] = array(
'#type' => 'fieldset',
'#title' => t('MapBox maps'),
// This will store all the defaults in one variable.
'#tree' => TRUE,
'#collapsible' => TRUE,
'#collapsed' => $mapnum ? FALSE : TRUE,
);
if ($mapnum == 0) {
$mapnum = 2;
}
else {
$mapnum++;
}
for ($ct = 0; $ct < $mapnum; $ct++) {
$form['getlocations_leaflet_mapbox']['mapbox_info'][$ct]['label'] = getlocations_element_map_tf(t('Name of map @n', array(
'@n' => $ct + 1,
)), isset($getlocations_leaflet_mapbox['mapbox_info'][$ct]['label']) ? $getlocations_leaflet_mapbox['mapbox_info'][$ct]['label'] : '', t('The name of the map, to be shown on selection lists'), 40);
$form['getlocations_leaflet_mapbox']['mapbox_info'][$ct]['key'] = getlocations_element_map_tf(t('Key of map @n', array(
'@n' => $ct + 1,
)), isset($getlocations_leaflet_mapbox['mapbox_info'][$ct]['key']) ? $getlocations_leaflet_mapbox['mapbox_info'][$ct]['key'] : '', t('The identifier provided by <a target="_blank" href="@mapbox">MapBox</a>', array(
'@mapbox' => 'https://www.mapbox.com/',
)), 40);
// token
$form['getlocations_leaflet_mapbox']['mapbox_info'][$ct]['token'] = getlocations_element_map_tf(t('Access token of map @n', array(
'@n' => $ct + 1,
)), isset($getlocations_leaflet_mapbox['mapbox_info'][$ct]['token']) ? $getlocations_leaflet_mapbox['mapbox_info'][$ct]['token'] : '', t('The access token provided by Mapbox.'), 40);
$form['getlocations_leaflet_mapbox']['mapbox_info'][$ct]['type'] = getlocations_element_dd(t('Type of map @n', array(
'@n' => $ct + 1,
)), isset($getlocations_leaflet_mapbox['mapbox_info'][$ct]['type']) ? $getlocations_leaflet_mapbox['mapbox_info'][$ct]['type'] : 'base', array(
'base' => t('Base'),
'overlay' => t('Overlay'),
));
}
// for theme
$form['getlocations_leaflet_mapbox']['mapnum'] = array(
'#type' => 'value',
'#value' => $mapnum,
);
return $form;
}
function getlocations_mapbox_settings_validate($form_state) {
// dump empty mapbox
$mapnum = count($form_state['values']['getlocations_leaflet_mapbox']['mapbox_info']);
$emptyfound = FALSE;
for ($ct = 0; $ct < $mapnum; $ct++) {
if (empty($form_state['values']['getlocations_leaflet_mapbox']['mapbox_info'][$ct]['key']) || empty($form_state['values']['getlocations_leaflet_mapbox']['mapbox_info'][$ct]['label']) || empty($form_state['values']['getlocations_leaflet_mapbox']['mapbox_info'][$ct]['token'])) {
unset($form_state['values']['getlocations_leaflet_mapbox']['mapbox_info'][$ct]);
$emptyfound = TRUE;
}
}
// reorder them in case some clown empties one before the last one
if ($emptyfound) {
$mapnum = count($form_state['values']['getlocations_leaflet_mapbox']['mapbox_info']);
$temp = array();
$ct = 0;
foreach ($form_state['values']['getlocations_leaflet_mapbox']['mapbox_info'] as $k => $v) {
$temp[$ct] = $v;
$ct++;
}
if (count($temp)) {
$form_state['values']['getlocations_leaflet_mapbox']['mapbox_info'] = $temp;
}
}
return $form_state;
}
Functions
Name | Description |
---|---|
getlocations_mapbox_get_map_layers | @file getlocations_mapbox.module @author Bob Hutchinson http://drupal.org/user/52366 @copyright GNU GPL |
getlocations_mapbox_settings_form | |
getlocations_mapbox_settings_validate |