source: subversion/applications/mobile/healthwhere/edit.php @ 34887

Last change on this file since 34887 was 21241, checked in by avantman42, 9 years ago

Removed source column in OS-created postcode DB. No need for it, and should make DB file smaller
Now using OS postcode data (OS OpenData? Code-Point® Open)
Re-licensed (GPL v2) because PHPCoord is licensed under GPL v2

File size: 7.4 KB
Line 
1<?php
2/*
3Healthwhere, a web service to find local pharmacies and hospitals
4Copyright (C) 2009-2010 Russell Phillips (russ@phillipsuk.org)
5
6This program is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 2 of the License, or
9(at your option) any later version.
10
11This program is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License along
17with this program; if not, write to the Free Software Foundation, Inc.,
1851 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19*/
20
21require_once ("inc_head.php");
22require_once ("inc_edit.php");
23
24$id = (int) $_GET ["id"];
25$dist = (float) $_GET ["dist"];
26$display_name = $_GET ["name"];
27
28// Get data from OSM
29$sXML = file_get_contents ("http://www.openstreetmap.org/api/0.6/node/$id");
30$xml = new SimpleXMLElement($sXML);
31
32if ($sXML != '') {
33        foreach ($xml->node[0]->tag as $tag) {
34                if ($tag ['k'] == "name")
35                        $name = (string) $tag ['v'];
36                if ($tag ['k'] == "operator")
37                        $operator = (string) $tag ['v'];
38                if ($tag ['k'] == "dispensing")
39                        $dispensing = (string) $tag ['v'];
40                if ($tag ['k'] == "emergency")
41                        $emergency = (string) $tag ['v'];
42                if ($tag ['k'] == "phone" || $tag ['k'] == "telephone" || $tag ['k'] == "telephone_number")
43                        $phone = (string) $tag ['v'];
44                if ($tag ['k'] == "description")
45                        $description = (string) $tag ['v'];
46                if ($tag ['k'] == "url" || $tag ['k'] == "website")
47                        $website = (string) $tag ['v'];
48        }
49        if (isset ($_POST ["btnSubmit"])) {
50                //Compare XML values from OSM to posted values. Where they differ, update XML
51                if ($name != "" && $name != $_POST ["txtName"]) {
52                        $xml->node [0]->tag [$i_name]['v'] = $_POST ["txtName"];
53                        $name = $_POST ["txtName"];
54                }
55                if ($operator != "" && $operator != $_POST ["txtOperator"]) {
56                        $xml->node [0]->tag [$i_operator]['v'] = $_POST ["txtOperator"];
57                        $operator = $_POST ["txtOperator"];
58                }
59                if ($_COOKIE ["SearchType"] == "pharmacy") {
60                        if ($dispensing != $_POST ["selDispensing"]) {
61                                $xml->node [0]->tag [$i_dispensing]['v'] = $_POST ["selDispensing"];
62                                $dispensing = $_POST ["selDispensing"];
63                        }
64                }
65                if ($_COOKIE ["SearchType"] == "hospital") {
66                        if ($emergency != $_POST ["selEmergency"]) {
67                                $xml->node [0]->tag [$i_emergency]['v'] = $_POST ["selEmergency"];
68                                $emergency = $_POST ["selEmergency"];
69                        }
70                }
71                if ($phone != "" && $phone != $_POST ["txtPhone"]) {
72                        $xml->node [0]->tag [$i_phone]['v'] = $_POST ["txtPhone"];
73                        $phone = $_POST ["txtPhone"];
74                }
75                if ($description != "" && $description != $_POST ["txtDescription"]) {
76                        $xml->node [0]->tag [$i_description]['v'] = $_POST ["txtDescription"];
77                        $description = $_POST ["txtDescription"];
78                }
79                if ($website != "" && $website != $_POST ["txtWebsite"]) {
80                        $xml->node [0]->tag [$i_website]['v'] = $_POST ["txtWebsite"];
81                        $website = $_POST ["txtWebsite"];
82                }
83
84                //Add new values
85                if ($name == "" && $_POST ["txtName"] != "") {
86                        $tag = $xml->node [0]->addChild("tag");
87                        $tag->addAttribute ("k", "name");
88                        $tag->addAttribute ("v", $_POST ["txtName"]);
89                        $name = $_POST ["txtName"];
90                }
91                if ($operator == "" && $_POST ["txtOperator"] != "") {
92                        $tag = $xml->node [0]->addChild("tag");
93                        $tag->addAttribute ("k", "operator");
94                        $tag->addAttribute ("v", $_POST ["txtOperator"]);
95                        $name = $_POST ["txtOperator"];
96                }
97                if ($_COOKIE ["SearchType"] == "pharmacy") {
98                        if ($_POST ["selDispensing"] != "") {
99                                $tag = $xml->node [0]->addChild("tag");
100                                $tag->addAttribute ("k", "dispensing");
101                                $tag->addAttribute ("v", $_POST ["selDispensing"]);
102                                $name = $_POST ["selDispensing"];
103                        }
104                }
105                if ($_COOKIE ["SearchType"] == "hospital") {
106                        if ($_POST ["selEmergency"] != "") {
107                                $tag = $xml->node [0]->addChild("tag");
108                                $tag->addAttribute ("k", "emergency");
109                                $tag->addAttribute ("v", $_POST ["selEmergency"]);
110                                $name = $_POST ["selEmergency"];
111                        }
112                }
113                if ($phone == "" && $_POST ["txtPhone"] != "") {
114                        $tag = $xml->node [0]->addChild("tag");
115                        $tag->addAttribute ("k", "phone");
116                        $tag->addAttribute ("v", $_POST ["txtPhone"]);
117                        $phone = $_POST ["txtPhone"];
118                }
119                if ($description == "" && $_POST ["txtDescription"] != "") {
120                        $tag = $xml->node [0]->addChild("tag");
121                        $tag->addAttribute ("k", "description");
122                        $tag->addAttribute ("v", $_POST ["txtDescription"]);
123                        $description = $_POST ["txtDescription"];
124                }
125                if ($website == "" && $_POST ["txtWebsite"] != "") {
126                        $tag = $xml->node [0]->addChild("tag");
127                        $tag->addAttribute ("k", "website");
128                        $tag->addAttribute ("v", $_POST ["txtWebsite"]);
129                        $website = $_POST ["txtWebsite"];
130                }
131
132                //Update OSM
133                if (isset ($_COOKIE ['csID']))
134                        $iCS = $_COOKIE ['csID'];
135                else
136                        $iCS = osm_create_changeset ();
137                osm_update_node ($id, $xml->asXML (), $iCS);
138                //Changeset is not closed, in case further edits are made.
139                //It will be closed automatically at the server
140                //osm_close_changeset ($iCS);
141                header("Location: " . BASE_URL . "/detail.php?id=$id&amp;dist=$dist&amp;edit=yes&amp;waynode=$waynode");
142        }
143require_once ("inc_head_html.php");
144?>
145        <p>
146        <form action = "edit.php?id=<?=$id?>&amp;name=<?php echo urlencode ($display_name); ?>&amp;dist=<?=$dist?>&amp;waynode=<?=$waynode?>" method = "post">
147        <table border = "0">
148        <tr><th colspan = "2" align = "center"><?php echo htmlentities (stripslashes ($display_name)); ?></th></tr>
149        <tr><td>Name:</td>
150        <td><input name = "txtName" value = "<?=stripslashes ($name)?>" class = 'default'></td></tr>
151        <tr><td>Operator:</td>
152        <td><input name = "txtOperator" value = "<?=stripslashes ($operator)?>" class = 'default'></td></tr>
153        <?php
154        if ($_COOKIE ["SearchType"] == "pharmacy") {
155                echo "<tr><td>Dispensing:</td>\n";
156                echo "<td><select name = 'selDispensing' class = 'default'>\n";
157                $selected = $dispensing;
158        }
159        elseif ($_COOKIE ["SearchType"] == "hospital") {
160                echo "<tr><td>Emergency:</td>\n";
161                echo "<td><select name = 'selEmergency' class = 'default'>\n";
162                $selected = $emergency;
163        }
164
165        //Write out OPTION tags
166        if ($selected == "yes") {
167                echo "<option value = ''>unknown</option>\n";
168                echo "<option value = 'no'>no</option>\n";
169                echo "<option value = 'yes' selected>yes</option>\n";
170        }
171        elseif ($selected == "no") {
172                echo "<option value = ''>unknown</option>\n";
173                echo "<option value = 'no' selected>no</option>\n";
174                echo "<option value = 'yes'>yes</option>\n";
175        }
176        else {
177                echo "<option value = '' selected>unknown</option>\n";
178                echo "<option value = 'no'>no</option>\n";
179                echo "<option value = 'yes'>yes</option>\n";
180        }
181        ?>
182        </select>
183        </td></tr>
184        <tr><td>Phone:</td>
185        <td><input name = "txtPhone" value = "<?=$phone?>" class = 'default'></td></tr>
186        <tr><td>Description:</td>
187        <td><input name = "txtDescription" value = "<?=$description?>" class = 'default'></td></tr>
188        <tr><td>Website:</td>
189        <td><input name = "txtWebsite" value = "<?=$website?>" class = 'default'></td></tr>
190
191        <tr><td align = "center"><input type = "reset" value = "Reset"></td>
192        <td align = "center"><input type = "submit" value = "Submit" name = "btnSubmit"></td></tr>
193        <tr><td align = "center" colspan = "2">
194        <a href = "detail.php?id=<?=$id?>&amp;dist=<?=$dist?>&amp;waynode=<?=$waynode?>">Cancel</a>
195        </td></tr>
196        </table>
197        </form>
198        </p>
199        <?php
200}
201else
202        echo "<p>Error: unable to get existing data</p>\n";
203
204require ("inc_foot.php");
205?>
Note: See TracBrowser for help on using the repository browser.