editable=true; $this->type=$object_type; $this->id=$object_id; $objects = array(); switch($this->type){ case TYPE_RECORD : $objects[]= array( 'layer' => "record", 'ids' => array($this->id) ); break; case TYPE_LOCATION : $objects[]= array( 'layer' => "location", 'ids' => array($this->id) ); break; case TYPE_SUR_LOCATION : $objects[]= array( 'layer' => "sur_location", 'ids' => array($this->id) ); break; case AUT_TABLE_CATEG : $objects[]= array( 'type' => $this->type, 'layer' => "authority", 'ids' => array($this->id) ); break; } $this->model = new map_model($map_hold, $objects,0); $this->model->set_mode("edition"); } // end of member function __construct public function get_json_informations(){ global $opac_url_base; global $dbh; $map_hold = $this->get_bounding_box(); if (!$map_hold) { return ""; } $coords = $map_hold->get_coords(); if (!count($coords)) { return ""; } return "initialFit: [ ".map_objects_controler::get_coord_initialFit($coords)."], layers : ".json_encode($this->model->get_json_informations(false, $opac_url_base,$this->editable)); } public function get_bounding_box(){ return $this->model->get_bounding_box(); } public function get_map() { global $dbh; global $opac_map_base_layer_type; global $oapc_map_base_layer_params; global $opac_map_size_notice_edition; global $opac_map_size_location_edition; $layer_params = json_decode($opac_map_base_layer_params,true); $baselayer = "baseLayerType: dojox.geo.openlayers.BaseLayerType.".$oapc_map_base_layer_type; if(count($layer_params)){ if($layer_params['name']) $baselayer.=",baseLayerName:\"".$layer_params['name']."\""; if($layer_params['url']) $baselayer.=",baseLayerUrl:\"".$layer_params['url']."\""; if($layer_params['options']) $baselayer.=",baseLayerOptions:".json_encode($layer_params['options']); } $ids[]=$this->id; $size=explode("*",$opac_map_size_notice_edition); switch($this->type){ case TYPE_RECORD : $objects[]= array( 'layer' => "record", 'ids' => $ids ); break; case TYPE_LOCATION : $objects[]= array( 'layer' => "location", 'ids' => $ids ); $size=explode("*",$opac_map_size_location_edition); break; case TYPE_SUR_LOCATION : $objects[]= array( 'layer' => "sur_location", 'ids' => $ids ); $size=explode("*",$opac_map_size_location_edition); break; case AUT_TABLE_CATEG : $objects[]= array( 'type' => $this->type, 'layer' => "authority", 'ids' => $ids ); break; } $map_hold = null; if(count($size)!=2){ $map_size="width:800px; height:480px;"; } else { if (is_numeric($size[0])) { $size[0] = $size[0] . "px"; } if (is_numeric($size[1])) { $size[1] = $size[1] . "px"; } $map_size= "width:".$size[0]."; height:".$size[1].";"; } $map = "
"; return $map; } public function get_form() { global $dbh,$msg; $form_map=""; switch($this->type){ case TYPE_RECORD : $form_map="
".$this->get_map()."
"; break; case TYPE_LOCATION : $form_map="
".$this->get_map()."
"; break; case TYPE_SUR_LOCATION : $form_map="
".$this->get_map()."
"; break; case AUT_TABLE_CATEG : $form_map="
".$this->get_map()."
"; break; } return $form_map; } public function save_form() { global $dbh; global $map_wkt; $this->delete(); // save des emprises: if(count($map_wkt)){ for($i=0 ; $itype." and map_emprise_obj_num=".$this->id; $result = pmb_mysql_query($req, $dbh); if (pmb_mysql_num_rows($result)) { $row = pmb_mysql_fetch_object($result); $req="DELETE FROM map_emprises where map_emprise_type=".$this->type." and map_emprise_obj_num=".$this->id; pmb_mysql_query($req,$dbh); //Partie map_hold_areas $req_areas="DELETE FROM map_hold_areas where type_obj=".$this->type." and id_obj=".$row->map_emprise_id; pmb_mysql_query($req_areas,$dbh); } } } // end of map_edition_controler