コード例 #1
0
/**
 * 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);
}
コード例 #2
0
 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);
    }
}