3 A feature represents a location. It has index _fid_. It has two dimensions:
4 _lagitude_ and _longitude_. It may have an image represented by it's url.
5 This field is called _imgurl_; it may also have a _title_ and/or a _description_.
7 # client to server communication:
9 Client submits a classic html form to server.
11 **note**: In this documentation, php notation is used (`_POST` and `_FILES`),
12 but server may be written in any language.
14 `_POST["request"]` is either:
17 asks for authentication
19 * ` _POST["password"]` must contains user password
24 * `_POST["lon"]` must contain feature longitude
25 * `_POST["lat"]` must contain feature latitude
26 * `_POST["title"]` may contain feature title
27 * `_POST["description"]` may contain feature description
28 * `_FILES["image_file"]` may contain an uploaded image
31 to delete an existing feature
33 * `_POST["fid"]` must contain feature id
36 to modify an existing feature
38 * `_POST["fid"]` must contain feature id
39 * `_POST["lon"]` must contain feature longitude
40 * `_POST["lat"]` must contain feature latitude
41 * `_POST["title"]` may contain feature title
42 * `_POST["description"]` may contain feature description
44 if `_POST["keep_img"]` is "yes", feature image will not be modified.
45 Otherwise, `_FILES["photo_file"]` is checked for an uploaded file. If
46 `_FILES["photo_file"]` is empty, existing feature image will be deleted.
47 Otherwise, uploaded file will replace current feature image.
49 # server reply to client:
50 Server replies with xml content. In an ideal world, reply would be just xml
51 content. But due to technical issues, syp must wrap xml content in the body of a
52 html document. So for example, instead of sending
54 `<error reason="unauthorized"></error>`
56 as _text/xml_, syp sends
58 `<html><head></head><body><error reason="unauthorized"></error></body></html>`
64 reply is something like `<error reason="?reason?"></error>` with _?reason?_ can be either:
66 * `unauthorized`: user is not authorized to execute request, or authentication failed
67 * `server`: an error occured on server side (such as database problem)
68 * `request`: server could not understand request
69 * `toobig`: uploaded file was too big
70 * `notation`: uploaded file was not an image
71 * `nochange`: when trying to update a feature, there is nothing to update (ie: no field of the feature has changed)
75 * `<success request="auth"></success>`:
76 authentication was successfull
78 * `<success request="del">
83 deletion was successfull. _?id?_ was property of deleted feature
85 * `<success request="add">
88 <imgurl>?imgurl?</imgurl>
89 <description>?description?</description>
90 <heading>?heading?</heading>
95 addition was successfull. _?id?_, _?imgurl?_, _?description?_,
96 _?heading?_, _?lon?_, _?lat?_ are properties of added feature;
98 * `<success request="update">
101 <imgurl>?imgurl?</imgurl>
102 <description>?description?</description>
103 <heading>?heading?</heading>
108 update was successfull. _?id?_, _?imgurl?_, _?description?_, _?heading?_,
109 _?lon?_, _?lat?_ are properties of updated feature;