public static function VisibleLayers($accessGroups = null)
 {
     if (is_null($accessGroups)) {
         $accessGroups = Core::Client()->getAccessGroups();
     }
     if (is_null(self::$visibleLayers)) {
         $readAccessFilter = array('readAccess' => array('comparator' => 'IN', 'value' => '(\'' . implode('\', \'', $accessGroups) . '\')', 'qoutes' => false));
         $layers = MapController::GetAllLayers($readAccessFilter);
         self::$visibleLayers = $layers;
     }
     return self::$visibleLayers;
 }
<?php

include_once dirname(__DIR__) . '/administrator/components/com_geolive/core.php';
include_once Core::LibDir() . DS . 'easycsv' . DS . 'EasyCsv.php';
$csv = EasyCsv::OpenCsv(__DIR__ . DS . 'sites.csv');
Core::LoadPlugin('Maps');
$layers = MapController::GetAllLayers();
$ShowNew = true;
$ShowExisting = false;
?>
<pre><?php 
foreach ($layers as $layer) {
    /* @var $layer Layer */
    print_r(array($layer->getId(), $layer->getName()));
}
$layerMap = array('community paper' => 1, 'daily paper - free' => 1, 'daily paper - paid' => 1, 'online' => 4, 'TV - private' => 3, 'TV - public' => 3, 'radio - public' => 2, 'radio - private' => 2);
if (!EasyCsv::DistinctValues($csv, 'Name')) {
    die('Expected \'Name\' field to contain unique values');
}
EasyCsv::IterateRows_Assoc($csv, function ($row) use($layerMap, $ShowNew, $ShowExisting) {
    //$typeOfNews=$row['Type of news'];
    $typeOfNews = trim(array_shift(explode(':', $row['0'])));
    if (key_exists($typeOfNews, $layerMap)) {
        if (MapController::GetFeatureWithName($row['Name'])) {
            if ($ShowSkipped) {
                echo 'Existing Marker: ' . $row['Name'] . "\n";
            }
            return;
            // skip.
        } else {
        }