private static function ItemMetadata($itemid)
 {
     ob_start();
     /* @var $item Marker */
     if ($itemid instanceof Marker) {
         $item = $itemid;
     } else {
         $item = MapController::LoadMapItem($itemid);
     }
     Scaffold('article.mapitem', array('item' => $item, 'imageThumb' => array(250, 210), 'maxImages' => 1, 'schema' => array('link' => 'itemprop="map"'), 'showStaticMap' => false), Core::Get('Maps')->getScaffoldsPath());
     $article = ob_get_contents();
     ob_end_clean();
     // return array(
     // 'html' => $article
     // );
     $layer = null;
     foreach (GeoliveHelper::VisibleLayers() as $l) {
         if ($l->getId() == $item->getLayerId()) {
             $layer = $l;
         }
     }
     $data = AttributesRecord::Get($item->getId(), 'marker', GeoliveHelper::AttributeTableMetadata());
     if (trim(strtolower($data['tentSites'])) == 'unknown') {
         $data['tentSites'] = '?';
     }
     return array('html' => $article, 'details' => array('coordinates' => $item->getCoordinates(), 'layer' => $layer->getName(), 'icon' => $item->getIcon()), 'attributes' => $data);
 }
<?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);
    }
}