/** * move the map feature into an active layer using * a icon set map to choose the layer id. * * @param int $id unique id for a map feature */ function unarchive_map_feature($id) { $prefix = 'components/com_geolive/users_files/user_files_983/Uploads/'; // $icons = array('[ImAgE]_JYp_[G]_rP7_SHq.png', 'ivy_[ImAgE]_lwU_[G]_VVF.png', 'tEk_[G]_[ImAgE]_L7_xIy.png', '[G]_aAJ_hLP_RDn_[ImAgE].png'); $layers = array(1, 2, 3, 4); $archive = array('[G]_[ImAgE]_gZf_JiS_E65.png', '[G]_LGt_eGZ_kDt_[ImAgE].png', 'AQc_zn7_[G]_[ImAgE]_sTC.png', '0o6_Je3_[ImAgE]_[G]_PMR.png'); $iconToLayerMap = array_combine($icons, $layers); $archiveToLayerMap = array_combine($archive, $layers); $archiveToIconMap = array_combine($archive, $icons); Core::Get('Maps'); $marker = MapController::LoadMapItem($id); $iconUrl = $marker->getIcon(); $icon = substr($iconUrl, strrpos($iconUrl, '/') + 1); $layer = 6; $newIcon = $icon; if (key_exists($icon, $iconToLayerMap)) { $layer = $iconToLayerMap[$icon]; } if (key_exists($icon, $archiveToLayerMap)) { $layer = $archiveToLayerMap[$icon]; $newIcon = $archiveToIconMap[$icon]; } $marker->setLayerId($layer); $marker->setIcon($prefix . $newIcon); MapController::StoreMapFeature($marker); file_put_contents(__DIR__ . DS . '.custom.log', 'unarchive (' . $id . ')' . $icon . " -> " . $newIcon . ', layer -> ' . $layer . "\n\n", FILE_APPEND); }
public static function ArticlesForSites() { $args = json_decode(UrlVar('json', '{}')); $sites = array(); if (is_array($args->sites)) { foreach ($args->sites as $id) { $site = MapController::LoadMapItem((int) $id); if (Auth('read', $site, 'mapitem')) { $sites[] = array_merge(array('id' => $site->getId(), 'name' => $site->getName()), self::ItemMetadata($site)); } else { echo json_encode(array('success' => false, 'message' => 'invalid id:' . $id . ' in list, or no access'), JSON_PRETTY_PRINT); return; } } } echo json_encode(array('sites' => $sites, 'success' => true), JSON_PRETTY_PRINT); }
<?php // decide whether to archive or unarchive if (!empty($eventArgs)) { Core::LoadPlugin('Attributes'); Core::LoadPlugin('Maps'); $marker = MapController::LoadMapItem($eventArgs->mapitem); $tableMetadata = AttributesTable::GetMetadata('markerAttributes'); $values = AttributesRecord::GetFields($marker->getId(), $marker->getType(), 'sessionDate', $tableMetadata); $sessionDate = $values['sessionDate']; $date = strtotime($sessionDate); $limit = time() - 30 * 24 * 3600; // Unarchive items without data, or within date range if (empty($sessionDate) || $date > $limit) { file_put_contents(__DIR__ . DS . '.custom.log', 'detect revive (' . $marker->getId() . ': ' . $sessionDate . ')' . "\n\n", FILE_APPEND); Core::Emit('custom.revive', $eventArgs); } else { file_put_contents(__DIR__ . DS . '.custom.log', 'detect expire (' . $marker->getId() . ': ' . $sessionDate . ')' . "\n\n", FILE_APPEND); Core::Emit('custom.expire', $eventArgs); } }