3 /* XXX: Show links to other objects. Don't show cities by default. */
5 if ($_POST['city_name']) {
6 $id = add_city($_POST['city_name'], $_POST['city_postcode_area']);
8 echo "<p>Added city.</p>\n";
9 $parameters = array($_POST['city_name'], $id);
13 function show_cities($offset, $per_page, $name = null) {
16 if (isset($name)) $q->filterByName($name);
17 $p = $q->paginate($offset, $per_page);
19 foreach ($p as $city) {
20 echo "<br>\nCity: " . $city->getStrongLink(get_city_displayname($city));
21 printf(" <a class=\"small\" href=\"/area/in/%s/%d\">Areas</a>", urlencode($city->getName()), $city->getID());
22 printf(" <a class=\"small\" href=\"/contact/in/city/%s/%d\">Contacts</a>", urlencode($city->getName()), $city->getId());
23 printf(" <a class=\"small\" href=\"/donation/in/city/%s/%d\">Donations</a>", urlencode($city->getName()), $city->getId());
24 printf(" <a class=\"small\" href=\"/order/in/city/%s/%d\">Orders</a>", urlencode($city->getName()), $city->getId());
26 echo " " . $city->getDeleteLink();
34 function show_new_city_form() {
35 if (! check_admin(1)) return;
37 echo "<form method=\"POST\" action=\"" . $_SERVER['REQUEST_URI'] . "\">\n";
38 echo "<p>Add a new city <input name=\"city_name\">\n";
39 echo "with postcode prefix <input name=\"city_postcode_area\" size=4 maxlength=4>\n";
40 echo "<input type=\"submit\" value=\"Add\"></p>\n";
43 function add_city($name, $postcode) {
44 if (! check_admin(1, "add a city")) return;
46 if (preg_match('/^([A-Za-z]+)/', $postcode, $m)) {
47 $prefix = strtoupper($m[1]);
50 echo "<p>Invalid postcode prefix!</p>\n";
54 $city = get_city_by_name($name, $prefix, false);
56 echo "<p>$name already exists!</p>\n";
57 show_city($name, $city->getId());
62 $city->setName($name);
63 $city->setPostcodeArea($prefix);
68 catch (Exception $e) {
69 echo "<p>Error adding $name!</p>\n";
74 return $city->getId();
77 function delete_city($name, $id = null) {
78 if (! check_admin(1, "delete a city")) return;
80 if (isset($id)) $city = get_city_by_id($id);
81 else $city = get_city_by_name($name);
82 if (! $city) return false;
86 echo "<p>Deleted city.</p>\n";
88 catch (Exception $e) {
89 echo "<p>Error deleting $name!</p>\n";
90 /* XXX: Why? Check for addresses in use... */
97 function show_city($name, $id = null) {
98 if (isset($id)) $city = get_city_by_id($id);
99 else $city = get_city_by_name($name);
102 echo "<p>City: <span class=\"strong\">" . get_city_displayname($city) . "</span>";
103 printf(" <a class=\"small\" href=\"/area/in/city/%s/%d\">Areas</a>", urlencode($city->getName), $city->getID());
104 printf(" <a class=\"small\" href=\"/contact/in/city/%s/%d\">Contacts</a>", urlencode($city->getName()), $city->getId());
105 printf(" <a class=\"small\" href=\"/donation/in/city/%s/%d\">Donations</a>", urlencode($city->getName()), $city->getId());
106 printf(" <a class=\"small\" href=\"/order/in/city/%s/%d\">Orders</a>", urlencode($city->getName()), $city->getId());
107 if (check_admin(1)) {
108 echo " " . $city->getDeleteLink();
112 $areas = $q->filterByCityId($city->getId())->find();
114 foreach ($areas as $area) {
115 echo "<br>\nArea: " . $area->getLink();
122 list($name, $id, $args) = parse_parameters($parameters);
123 //echo "<p>$name($id) " . print_r($args, true) . "</p>\n";
127 delete_city($name, $id);
131 show_cities(0, 10, $name);
132 show_new_city_form();
136 else if (isset($name)) show_city($name, $id);
139 show_new_city_form();
142 # XXX: Format URL in branch case...
143 if (count($parameters))
144 echo "<p>Show all <a href=\"/city\">cities</a></p>\n";