Exemple #1
0
 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;
 }
Exemple #2
0
 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']);
 }