/** * Get an array of type_subtype_pairs for using in global map search getter * @return array */ function get_mappable_type_subtype_pairs() { $type_subtype_pairs = array(); if (elgg_get_plugin_setting('search_users', PLUGIN_ID)) { $type_subtype_pairs['user'] = ''; } if (elgg_get_plugin_setting('search_groups', PLUGIN_ID)) { $type_subtype_pairs['group'] = ''; } if (elgg_get_plugin_setting('search_objects', PLUGIN_ID)) { $type_subtype_pairs['object'] = get_mappable_object_subtypes(); } return $type_subtype_pairs; }
/** * Setup group maps * * @param string $hook * @param string $type * @param array $return * @param array $params * @return string */ function setup_group_search_maps($hook, $type, $return, $params) { $group = elgg_extract('entity', $params); if (!elgg_instanceof($group, 'group')) { return $return; } if (elgg_get_plugin_setting('search_group_members', PLUGIN_ID)) { $return['group_members'] = array('title' => elgg_echo('maps:search:group_members'), 'options' => array('id' => "group-members-{$group->guid}", 'types' => 'user', 'relationship' => 'member', 'relationship_guid' => $group->guid, 'inverse_relationship' => true), 'getter' => 'elgg_get_entities_from_relationship', 'access' => 'logged_in'); } if (elgg_get_plugin_setting('search_group_content', PLUGIN_ID)) { $return['group_content'] = array('title' => elgg_echo('maps:search:group_content'), 'options' => array('id' => "group-content-{$group->guid}", 'types' => 'object', 'subtypes' => get_mappable_object_subtypes(), 'container_guids' => $group->guid), 'getter' => 'elgg_get_entities', 'access' => 'logged_in'); } return $return; }
<?php namespace hypeJunction\Maps; $subtypes = array_intersect(get_mappable_object_subtypes(), get_input('mappable_subtypes', array())); if (!count($subtypes)) { $subtypes = get_mappable_object_subtypes(); } $vars['options']['subtypes'] = $subtypes; echo ElggMap::showMap($vars);