function farm_map_add_behavior in farmOS 7
Add a farmOS-map behavior to the page.
Parameters
string $behavior: The behavior name.
array $settings: Optionally provide settings to override defaults.
11 calls to farm_map_add_behavior()
- farm_area_farm_map_view in modules/
farm/ farm_area/ farm_area.farm_map.inc - Implements hook_farm_map_view().
- farm_area_generate_farm_map_view in modules/
farm/ farm_area/ farm_area_generate/ farm_area_generate.farm_map.inc - Implements hook_farm_map_view().
- farm_mapknitter_farm_map_view in modules/
farm/ farm_mapknitter/ farm_mapknitter.farm_map.inc - Implements hook_farm_map_view().
- farm_map_farm_map_view in modules/
farm/ farm_map/ farm_map.farm_map.inc - Implements hook_farm_map_view().
- farm_map_geofield_farm_map_view in modules/
farm/ farm_map/ farm_map_geofield/ farm_map_geofield.farm_map.inc - Implements hook_farm_map_view().
File
- modules/
farm/ farm_map/ farm_map.module, line 236
Code
function farm_map_add_behavior($behavior, $settings = array()) {
// Ask modules for behaviors.
$hook = 'farm_map_behaviors';
$modules = module_implements($hook);
foreach ($modules as $module) {
// Get the module's behaviors.
$behaviors = module_invoke($module, $hook);
// If the desired behavior isn't defined, skip.
if (!(array_key_exists($behavior, $behaviors) && !empty($behaviors[$behavior]['js']))) {
continue;
}
// If the module defines settings for the behavior, add them as JS settings.
$settings_hook = 'farm_map_behavior_settings';
$default_settings = array();
if (function_exists($module . '_' . $settings_hook)) {
$default_settings = module_invoke($module, $settings_hook, $behavior);
}
$settings = array_merge($default_settings, $settings);
if (!empty($settings)) {
drupal_add_js(array(
'farm_map' => array(
'behaviors' => array(
$behavior => $settings,
),
),
), array(
'type' => 'setting',
));
}
// Add the behavior JS to the page.
$path = drupal_get_path('module', $module) . '/' . $behaviors[$behavior]['js'];
drupal_add_js($path);
}
}