/** * ... * * @return void */ protected function manage() { $defaultMaps = \IPS\membermap\Application::getEnabledMaps(); \IPS\Output::i()->jsVars['membermap_defaultMaps'] = $defaultMaps; \IPS\Output::i()->sidebar['actions']['preview'] = array('icon' => 'eye', 'link' => \IPS\Http\Url::external('https://leaflet-extras.github.io/leaflet-providers/preview/index.html'), 'title' => 'membermap_mapmanager_preview', 'target' => '_blank'); \IPS\Output::i()->title = \IPS\Member::loggedIn()->language()->addToStack('menu__membermap_membermap_mapmanager'); \IPS\Output::i()->output .= \IPS\Theme::i()->getTemplate('mapmanager')->wrapper(); }
/** * Show the map * * @return void */ protected function manage() { $markers = array(); /* Rebuild JSON cache if needed */ if (!\IPS\membermap\Map::i()->checkForCache()) { /* We clicked the tools menu item to force a rebuild */ if (\IPS\Request::i()->isAjax()) { \IPS\Output::i()->redirect(\IPS\Http\Url::internal('app=membermap&module=membermap&controller=showmap', NULL, 'membermap')); } } $cacheTime = isset(\IPS\Data\Store::i()->membermap_cacheTime) ? \IPS\Data\Store::i()->membermap_cacheTime : 0; $getByUser = intval(\IPS\Request::i()->member_id); if (\IPS\Request::i()->filter == 'getByUser' and $getByUser) { $markers = \IPS\membermap\Map::i()->getMarkerByMember($getByUser); } /* Get enabled maps */ $defaultMaps = \IPS\membermap\Application::getEnabledMaps(); /* Add/edit marker permissions */ $groupId = \IPS\membermap\Map::i()->getMemberGroupId(); $existing = \IPS\membermap\Map::i()->getMarkerByMember(\IPS\Member::loggedIn()->member_id, FALSE); $canAdd = \IPS\membermap\Markers\Groups::load($groupId)->can('add'); $canEdit = $existing ? $existing->canEdit() : false; $canDelete = $existing ? $existing->canDelete() : false; /* Load JS and CSS */ \IPS\Output::i()->jsFiles = array_merge(\IPS\Output::i()->jsFiles, \IPS\Output::i()->js('leaflet/leaflet-src.js', 'membermap', 'interface')); \IPS\Output::i()->jsFiles = array_merge(\IPS\Output::i()->jsFiles, \IPS\Output::i()->js('leaflet/plugins/Control.FullScreen.js', 'membermap', 'interface')); \IPS\Output::i()->jsFiles = array_merge(\IPS\Output::i()->jsFiles, \IPS\Output::i()->js('leaflet/plugins/Control.Loading.js', 'membermap', 'interface')); \IPS\Output::i()->jsFiles = array_merge(\IPS\Output::i()->jsFiles, \IPS\Output::i()->js('leaflet/plugins/leaflet-providers.js', 'membermap', 'interface')); \IPS\Output::i()->jsFiles = array_merge(\IPS\Output::i()->jsFiles, \IPS\Output::i()->js('leaflet/plugins/leaflet.awesome-markers.js', 'membermap', 'interface')); \IPS\Output::i()->jsFiles = array_merge(\IPS\Output::i()->jsFiles, \IPS\Output::i()->js('leaflet/plugins/leaflet.contextmenu-src.js', 'membermap', 'interface')); \IPS\Output::i()->jsFiles = array_merge(\IPS\Output::i()->jsFiles, \IPS\Output::i()->js('leaflet/plugins/leaflet.markercluster-src.js', 'membermap', 'interface')); \IPS\Output::i()->jsFiles = array_merge(\IPS\Output::i()->jsFiles, \IPS\Output::i()->js('leaflet/plugins/subgroup.js', 'membermap', 'interface')); \IPS\Output::i()->jsFiles = array_merge(\IPS\Output::i()->jsFiles, \IPS\Output::i()->js('front_main.js', 'membermap', 'front')); \IPS\Output::i()->jsFiles = array_merge(\IPS\Output::i()->jsFiles, \IPS\Output::i()->js('jquery/jquery-ui.js', 'membermap', 'interface')); \IPS\Output::i()->cssFiles = array_merge(\IPS\Output::i()->cssFiles, \IPS\Theme::i()->css('membermap.css', 'membermap')); \IPS\Output::i()->cssFiles = array_merge(\IPS\Output::i()->cssFiles, \IPS\Theme::i()->css('leaflet.css', 'membermap', 'global')); \IPS\Output::i()->cssFiles = array_merge(\IPS\Output::i()->cssFiles, \IPS\Theme::i()->css('jquery-ui.css', 'membermap', 'global')); \IPS\Output::i()->cssFiles = array_merge(\IPS\Output::i()->cssFiles, \IPS\Theme::i()->css('plugins.combined.css', 'membermap')); \IPS\Output::i()->title = \IPS\Member::loggedIn()->language()->addToStack('__app_membermap'); \IPS\Output::i()->sidebar['enabled'] = FALSE; /* Update session location */ \IPS\Session::i()->setLocation(\IPS\Http\Url::internal('app=membermap&module=membermap&controller=showmap', 'front', 'membermap'), array(), 'loc_membermap_viewing_membermap'); /* Things we need to know in the Javascript */ \IPS\Output::i()->jsVars = array_merge(\IPS\Output::i()->jsVars, array('is_supmod' => \IPS\Member::loggedIn()->modPermission() ?: 0, 'member_id' => \IPS\Member::loggedIn()->member_id ?: 0, 'membermap_canAdd' => $canAdd ?: 0, 'membermap_canEdit' => $canEdit ?: 0, 'membermap_canDelete' => $canDelete ?: 0, 'membermap_cacheTime' => $cacheTime, 'membermap_bbox' => json_decode(\IPS\Settings::i()->membermap_bbox), 'membermap_bbox_zoom' => intval(\IPS\Settings::i()->membermap_bbox_zoom), 'membermap_defaultMaps' => $defaultMaps, 'membermap_mapquestAPI' => \IPS\membermap\Application::getApiKeys('mapquest'), 'membermap_enable_clustering' => \IPS\Settings::i()->membermap_enable_clustering == 1 ? 1 : 0, 'membermap_groupByMemberGroup' => \IPS\Settings::i()->membermap_groupByMemberGroup == 1 ? 1 : 0)); \IPS\Output::i()->endBodyCode .= <<<EOF \t\t<script type='text/javascript'> \t\t\tips.membermap.initMap(); \t\t</script> EOF; \IPS\Output::i()->output = \IPS\Theme::i()->getTemplate('map')->showMap($markers, $cacheTime, $canAdd, $canEdit); }