public function types() { App::import('model', 'MPCache'); $MPCache = new MPCache(); $data = $MPCache->getDataSource()->get('prawo/stats.json'); return json_decode($data, true); }
<?php $posiedzenie = $this->DB->selectAssoc("SELECT `pl_gminy_krakow_posiedzenia`.`id`, `pl_gminy_krakow_posiedzenia`.`date`, `pl_gminy_krakow_posiedzenia`.`numer`, `pl_gminy_krakow_sesje`.`numer` as 'sesja_numer' FROM `pl_gminy_krakow_posiedzenia` JOIN `pl_gminy_krakow_sesje` ON `pl_gminy_krakow_posiedzenia`.`sesja_id` = `pl_gminy_krakow_sesje`.`id` ORDER BY `pl_gminy_krakow_posiedzenia`.`date` DESC LIMIT 1"); if ($posiedzenie) { App::import('model', 'MPCache'); $MPCache = new MPCache(); $terms = $MPCache->getDataSource()->get('stats/krakow_posiedzenia/terms/' . $posiedzenie['id'] . '*/*'); $terms = json_decode($terms, true); return array('data' => $posiedzenie, 'terms' => $terms); } else { return false; }
<?php /** * Zwraca obiekt GeoJson Feature zawierający obszar województwa (cache w redis) wraz z dynamicznie dociąganymi właściwościami */ App::import('Vendor', 'geoPHP', array('file' => '/phayes/geophp/geoPHP.inc')); App::import('model', 'MPCache'); // Try cache $cacheKey = 'geojson/wojewodztwo/' . $id . ($simplify ? 's' : ''); $cache = new MPCache(); $cacheClient = $cache->getDataSource()->getRedisClient(); if ($cacheClient->exists($cacheKey)) { $geojson = json_decode($cache->get($cacheKey)); } else { // Build geojson $wkt = $this->DB->selectAssoc("SELECT AsWKT(spat) AS wkt FROM wojewodztwa WHERE id = {$id}"); if (!$wkt['wkt']) { return null; } $spat = geoPHP::load($wkt['wkt'], 'wkt'); if ($simplify) { // w tej postaci bedzie to nierównomiernie robił w pioniie i poziomie ze względu na CRS (ale roznica wymiarow tylko 2x) $spat = $spat->simplify(0.005, true); } $geojsonConverter = new GeoJSON(); $geojson = $geojsonConverter->write($spat, true); MpUtils::transposeCoordinates($geojson); // Put in cache $cacheClient->set($cacheKey, json_encode($geojson)); } $feat = array("type" => "Feature", "id" => $this->data['_id'], "properties" => $this->data['data'], "geometry" => $geojson);
<?php /** * Zwraca obiekt GeoJson FeatureCollection zawierający wszystkie gminy tego powiatu (właściwości są keszowane także) */ App::import('model', 'MPCache'); App::uses('Model', 'Dane.Dataobject'); // Try cache $cacheKey = 'geojson/agg/gminy/powiat/' . $id; $cache = new MPCache(); $cacheClient = $cache->getDataSource()->getRedisClient(); if ($cacheClient->exists($cacheKey)) { return json_decode($cacheClient->get($cacheKey)); } else { // Build geojson feature collection $gminy_ids = $this->DB->selectValues("SELECT id FROM epf.pl_gminy WHERE pl_powiat_id = {$id} AND akcept = '1'"); if (!$gminy_ids) { throw new Exception("Nie znaleziono gmin dla pl_powiat_id = {$id}"); } $gminy = array(); foreach ($gminy_ids as $gid) { $d = new Dataobject(); $g = $d->getObjectLayer('gminy', $gid, 'geojson', $params = array()); unset($g['crs']); $gminy[] = $g; } $featc = array("type" => "FeatureCollection", "features" => $gminy); MpUtils::geoStampCRS($featc); // Put in cache $cacheClient->set($cacheKey, json_encode($featc)); return $featc;
public function categories() { // Try cache $cacheKey = 'bdl/categories'; $cache = new MPCache(); $cacheClient = $cache->getDataSource()->getRedisClient(); if ($cacheClient->exists($cacheKey)) { $categories = json_decode($cacheClient->get($cacheKey)); } else { $tree_data = ConnectionManager::getDataSource('default')->query("SELECT pg.tytul AS pg_tytul, pg.id AS pg_id, g.tytul AS g_tytul, g.id AS g_id,\n k.w_tytul AS k_tytul, k.id AS k_id\n FROM epf.BDL_podgrupy pg INNER JOIN BDL_grupy g ON (pg.grupa_id = g.id)\n INNER JOIN BDL_kategorie k ON (pg.kategoria_id = k.id)\n WHERE k.okres = 'R' AND k.deleted = '0' AND g.deleted = '0' AND pg.deleted = '0' AND pg.akcept = '1'\n ORDER BY k_id ASC, g_id ASC, pg_tytul ASC;"); $categories = array(); $kategoria = null; $grupa = null; $last_kategoria = null; $last_grupa = null; foreach ($tree_data as $row) { // dodaj nowa kategorie if ($row['k']['k_id'] != $last_kategoria) { $k = array('groups' => array(), 'name' => $row['k']['k_tytul']); array_push($categories, $k); $kategoria =& $categories[count($categories) - 1]; } // dodaj nowa grupe if ($row['g']['g_id'] != $last_grupa) { $g = array('subgroups' => array(), 'name' => $row['g']['g_tytul']); array_push($kategoria['groups'], $g); $grupa =& $kategoria['groups'][count($kategoria['groups']) - 1]; } array_push($grupa['subgroups'], array('name' => $row['pg']['pg_tytul'], 'url' => Router::url(array('plugin' => 'Dane', 'controller' => 'Dataobjects', 'action' => 'view', 'dataset' => 'bdl_wskazniki', 'id' => $row['pg']['pg_id']), true))); $last_grupa = $row['g']['g_id']; $last_kategoria = $row['k']['k_id']; } $cacheClient->setex($cacheKey, BDL_CACHE_TTL_SEC, json_encode($categories)); } $this->setSerialized('tree', $categories); }
<?php App::import('model', 'MPCache'); $MPCache = new MPCache(); $data = $MPCache->getDataSource()->get('stats/krakow_posiedzenia/terms/' . $id . '*/*'); return json_decode($data, true);
<?php App::import('model', 'MPCache'); $MPCache = new MPCache(); $data = $MPCache->getDataSource()->get('poslowie/stats/terms/' . $id . '*/*'); return json_decode($data, true);