コード例 #1
0
    }
    public static function QueriedSiteListInAreas($areas, $iteratorCallback, $accessGroups = null)
    {
        if (is_null($accessGroups)) {
            $accessGroups = Core::Client()->getAccessGroups();
        }
        $from = "FROM " . GeoliveHelper::AttributeTable() . " a inner join " . GeoliveHelper::MapitemTable() . " m on a.mapitem = m.id WHERE m.lid IN (" . implode(', ', array_map(function ($layer) {
            return $layer->getId();
        }, self::VisibleLayers($accessGroups))) . ")";
        $paWhere = 'AND (' . implode(' OR ', array_map(function ($pa) {
            return 'lower(trim(a.paddlingArea)) = lower(trim(\'' . GeoliveHelper::Database()->escape($pa) . '\'))';
        }, $areas)) . ')';
        $query = "SELECT * {$from} {$paWhere} order by m.name";
        self::Database()->iterate($query, $iteratorCallback);
    }
    public static function QueriedSiteListInAreasInIdList($areas, $ids, $iteratorCallback)
    {
        $from = "FROM " . GeoliveHelper::AttributeTable() . " a inner join " . GeoliveHelper::MapitemTable() . " m on a.mapitem = m.id WHERE m.lid IN (" . implode(', ', array_map(function ($layer) {
            return $layer->getId();
        }, self::VisibleLayers())) . ") AND m.id IN(" . implode(', ', array_map(function ($id) {
            return (int) $id;
        }, $ids)) . ")";
        $paWhere = 'AND (' . implode(' OR ', array_map(function ($pa) {
            return 'lower(trim(a.paddlingArea))  = lower(trim(\'' . GeoliveHelper::Database()->escape($pa) . '\'))';
        }, $areas)) . ')';
        $query = "SELECT * {$from} {$paWhere} order by m.name";
        self::Database()->iterate($query, $iteratorCallback);
    }
}
GeoliveHelper::LoadCoreLibs();