[Mapbender-users] Mapbender3: Change digitizing
Dr. Kai Behncke
info at blumige-landschaften.de
Mon Apr 11 21:49:51 PDT 2016
Oh, sorry, wrong link.
To set entries by digitizing a link like
http://www.blumige-landschaft.de/mapbender3/application/Blumige-Landschaften?anwender=blablablabla@
is used.
Best regards, Kai
Am 12.04.2016 um 05:55 schrieb Dr. Kai Behncke:
> Hi you all,
>
>
> we found a solution for that, well not a very nice one, because of no
> knowledge of symfony, the code is "hot-chaos", but it works:
>
>
> In:
> mapbender3/vendor/mapbender/digitizer/Mapbender/DigitizerBundle/Element/Digitizer.php
>
>
> From line 169:
>
>
> 169 public function httpAction($action)
> 170 {
> 171 /**
> 172 * @var $requestService Request
> 173 */
> 174 $der_nutzername=$this->container->get('request');
> 175
> 176
> 177 if ((substr_count($der_nutzername,'anwender=')==1) AND
> (substr_count($der_nu tzername,'@')==1)) {
> 178
> 179
> 180 $der_nutzername_array = explode ('anwender=', $der_nutzername );
> 181 $der_nutzername=$der_nutzername_array[1];
> 182
> 183 $der_nutzername=trim($der_nutzername);
> 184 $der_nutzername_array2=explode ('@',$der_nutzername);
> 185 $der_nutzername=$der_nutzername_array2[0];
> 186 $der_nutzername=str_replace(" ","",$der_nutzername);
> 187 $der_nutzername="digiowner='".$der_nutzername."'";
> 188 $der_nutzername=trim($der_nutzername);
> 189 $der_nutzername=str_replace(" ","",$der_nutzername);
> 190 // $der_nutzername="nnn".$der_nutzername->get('Referer');
> 191 }
> 192 else {
> 193
> 194 $der_nutzername="digiowner='xxxxx'";
> 195 }
>
> ....
> ......
> (This is to get the user of a request; for that, in the digitite-table
> (e.g. "poi" a column "digiowner" is important)
>
> In
> mapbender3/vendor/mapbender/digitizer/Mapbender/DigitizerBundle/Entity/FeatureType.php
>
> In line 396:
>
> public function search(array $criteria = array(),$neue_variable)
> {
>
> // In $neue_variable a username is transported
>
> 422: $where=$neue_variable;
> 423 if($where){
> 424 $queryBuilder->andWhere($where);
> 425 }
>
> And: in
> mapbender/digitizer/Mapbender/DigitizerBundle/Resources/public/mapbender.element.digitizer.js
>
> Line 1305: var the_request=JSON.stringify(request);
> 1306 the_request+=""
>
> ...
>
> .....
> 1315 if (uri=="save"){
> 1316
> 1317
> the_request=the_request.replace('}',',"digiowner":"'+der_nutzername+'"}');
> ....
> ........
>
> A changed request is build so a geometry belongs to a specific user...
>
>
> So if someone calls:
>
> http://www.blumige-landschaft.de/mapbender3/application/Blumige-Landschaften
>
> he can`t insert entries.
> If one calls:
> http://www.blumige-landschaft.de/mapbender3/application/Blumige-Landschaften?anwender=blablablabla
>
> he can.
>
>
> I know, it`s not a "save"-procedure at all, but enough for the
> purposes of that project :-)
>
> the project is: http://blumige-landschaften.de
>
> A databse-trigger sets area and time of an entry
>
>
> CREATE OR REPLACE FUNCTION datum_einspielen()
> RETURNS trigger AS
> $BODY$
> DECLARE
>
> the_id integer;
> abfrage1 text;
>
> BEGIN
> the_id:=max(gid) as gid from poi;
>
> abfrage1:='UPDATE poi SET date_favorite=TO_CHAR(CURRENT_DATE,
> ''DD.MM.YYYY'') WHERE gid='||the_id;
> EXECUTE abfrage1;
> RAISE NOTICE 'Here we go........%',the_id;
> RETURN NULL;
> END;
> $BODY$
> LANGUAGE 'plpgsql' VOLATILE;
>
>
>
> CREATE TRIGGER Trigger_after_poi_entry
> AFTER INSERT on poi
> FOR EACH ROW
> EXECUTE PROCEDURE datum_einspielen();
>
>
>
> CREATE OR REPLACE FUNCTION give_me_area_and_date()
> RETURNS trigger AS
> $BODY$
> DECLARE
>
> the_id integer;
> the_area numeric;
> abfrage1 text;
> abfrage2 text;
> block text;
> BEGIN
> the_id:=max(gid) as gid from polygons;
> the_area:=round(cast(st_area(st_transform(geom,31467)) as numeric),2)
> from polygons where gid=the_id;
>
> abfrage1:='UPDATE polygons SET date_favorite=TO_CHAR(CURRENT_DATE,
> ''DD.MM.YYYY'') WHERE gid='||the_id;
> EXECUTE abfrage1;
> abfrage2:='UPDATE polygons SET area='''||the_area||''' WHERE
> gid='||the_id;
> EXECUTE abfrage2;
>
> RETURN NULL;
> END;
> $BODY$
> LANGUAGE 'plpgsql' VOLATILE;
>
>
>
> CREATE TRIGGER Trigger_after_polygon_entry
> AFTER INSERT on polygons
> FOR EACH ROW
> EXECUTE PROCEDURE give_me_area_and_date();
>
> Best regards, Kai
> --
> ---------------------------
> Blumige-Landschaften.de
> Dr. Kai Behncke
> Am Wulberg 15
> 49324 Melle
> Tel.: 0176-84019660 (ab 18.00 Uhr)
>
>
> _______________________________________________
> Mapbender_users mailing list
> Mapbender_users at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/mapbender_users
--
---------------------------
Blumige-Landschaften.de
Dr. Kai Behncke
Am Wulberg 15
49324 Melle
Tel.: 0176-84019660 (ab 18.00 Uhr)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/mapbender_users/attachments/20160412/3b80adfe/attachment.html>
More information about the Mapbender_users
mailing list