public static function showthesheet($search) { if (!\mod\user\Main::userIsLoggedIn()) { return "not logged"; } $columns = "ark_site.si_id, da_name, si_city_name, si_name, "; $columns .= "(SELECT pe_name_fr||'/'||pe_name_de FROM ark_period WHERE pe_id=min(sp_period_start)) AS period_start, "; $columns .= "(SELECT pe_name_fr||'/'||pe_name_de FROM ark_period WHERE pe_id=max(sp_period_end)) AS period_end "; $res = ArkeoGIS::search_sites($search, $columns, array('ark_database' => true), 1500, 'ark_site.si_id, da_id', 'ark_site.si_id', true, false); $total_count = $res['total_count']; $sites =& $res['sites']; $strings = ArkeoGIS::load_strings(); foreach ($sites as $k => $row) { //\core\Core::log($row); //$sites[$k]['period_start'] = ArkeoGIS::node_path_to_str($row['period_start'], $strings['period'], '/'); //$sites[$k]['period_end'] = ArkeoGIS::node_path_to_str($row['period_end'], $strings['period'], '/'); $realestate = \core\Core::$db->fetchOne("SELECT array_agg(r1.node_path) FROM ark_site_period sp1 LEFT JOIN ark_siteperiod_realestate spr1 ON spr1.sr_site_period_id = sp1.sp_id LEFT JOIN ark_realestate r1 ON r1.re_id = spr1.sr_realestate_id WHERE sp1.sp_site_id = ?", array($row['si_id'])); $furniture = \core\Core::$db->fetchOne("SELECT array_agg(f1.node_path) FROM ark_site_period sp1 LEFT JOIN ark_siteperiod_furniture spf1 ON spf1.sf_site_period_id = sp1.sp_id LEFT JOIN ark_furniture f1 ON f1.fu_id = spf1.sf_furniture_id WHERE sp1.sp_site_id = ?", array($row['si_id'])); $production = \core\Core::$db->fetchOne("SELECT array_agg(p1.node_path) FROM ark_site_period sp1 LEFT JOIN ark_siteperiod_production spp1 ON spp1.sp_site_period_id = sp1.sp_id LEFT JOIN ark_production p1 ON p1.pr_id = spp1.sp_production_id WHERE sp1.sp_site_id = ?", array($row['si_id'])); $landscape = \core\Core::$db->fetchOne("SELECT array_agg(l1.node_path) FROM ark_site_period sp1 LEFT JOIN ark_siteperiod_landscape spl1 ON spl1.sl_site_period_id = sp1.sp_id LEFT JOIN ark_landscape l1 ON l1.la_id = spl1.sl_landscape_id WHERE sp1.sp_site_id = ?", array($row['si_id'])); $sites[$k]['realestate'] = implode(ArkeoGIS::node_path_array_to_str($realestate, $strings['realestate'], '/'), '<br />'); $sites[$k]['furniture'] = implode(ArkeoGIS::node_path_array_to_str($furniture, $strings['furniture'], '/'), '<br />'); $sites[$k]['production'] = implode(ArkeoGIS::node_path_array_to_str($production, $strings['production'], '/'), '<br />'); $sites[$k]['landscape'] = implode(ArkeoGIS::node_path_array_to_str($landscape, $strings['landscape'], '/'), '<br />'); } return $res; }
public static function hook_mod_arkeogis_export_sheet($hookname, $userdata, $urlmatches) { if (!\mod\user\Main::userIsLoggedIn()) { return self::hook_mod_arkeogis_public($hookname, $userdata); } if (!\mod\user\Main::userBelongsToGroup('Admin') && !\mod\user\Main::userBelongsToGroup('Chercheur')) { return self::display_html_error(\mod\lang\Main::ch_t('arkeogis', "Vous n'avez pas la permission de télécharger au format csv")); } $q = json_decode(urldecode($urlmatches[1]), true); $columns = "ark_site.si_id, si_code, si_name, si_description, si_city_name, si_city_code, ST_AsGeoJSON(si_geom) as coords, si_centroid, si_occupation, si_creation, si_modification"; // ark_site $columns .= ", da_name, da_description, da_creation, da_modification"; // ark_database $columns .= ", ark_site_period.sp_id, sp_knowledge_type, sp_comment, sp_bibliography"; // ark_site_period $columns .= ", (SELECT node_path FROM ark_period WHERE pe_id=sp_period_start) AS period_start"; $columns .= ", (SELECT node_path FROM ark_period WHERE pe_id=sp_period_end) AS period_end"; $res = ArkeoGIS::search_sites($q, $columns, array('ark_city' => false, 'ark_database' => true), false, 'ark_site.si_id, ark_site_period.sp_id, da_id', '', 'ark_site.si_code, ark_site.si_id, ark_site_period.sp_id', false, false); \mod\arkeogis\ArkeoGIS::sitesToCsv($res['sites']); }