$this->make_hook('map', AUTH_COOKIE), 'map/ajax' => $this->make_hook('map_ajax', AUTH_COOKIE) ); } function handler_map($page) { global $globals; $page->changeTpl('geoloc/index.tpl'); $map_url = $globals->maps->dynamic_map . '?&sensor=false&v=' . $globals->maps->api_version . '&language=' . $globals->maps->language; $page->addJsLink($map_url, false); $page->addJsLink('maps.js'); $page->addJsLink('markerclusterer_packed.js'); $page->addJsLink('markerwithlabel_packed.js'); $page->assign('pl_extra_header', ''); $page->assign('latitude', 0); $page->assign('longitude', 0); } function handler_map_ajax($page) { $data = XDB::rawFetchAllAssoc('SELECT pa.latitude, pa.longitude, GROUP_CONCAT(DISTINCT p.hrpid SEPARATOR \',\') AS hrpid, GROUP_CONCAT(DISTINCT CONCAT(pd.private_name, \' (\', pd.promo, \')\') SEPARATOR \',\') AS name FROM profile_addresses AS pa INNER JOIN profiles AS p ON (pa.pid = p.pid) INNER JOIN profile_display AS pd ON (pd.pid = pa.pid) WHERE pa.type = \'home\' AND pa.latitude IS NOT NULL AND pa.longitude IS NOT NULL GROUP BY pa.latitude, pa.longitude'); $page->jsonAssign('data', $data); return PL_JSON; } } // vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8: ?>