Skip to content
Merged
Show file tree
Hide file tree
Changes from 106 commits
Commits
Show all changes
124 commits
Select commit Hold shift + click to select a range
5a0ac6c
Lint fixes
Br3nda Apr 5, 2026
d44f980
Lint fixes
Br3nda Apr 5, 2026
e95b0e2
Lint fixes
Br3nda Apr 5, 2026
6a5bad4
Lint fixes
Br3nda Apr 5, 2026
79f3a38
Lint fixes
Br3nda Apr 5, 2026
74c7565
Lint fixes
Br3nda Apr 5, 2026
1b06c60
Lint fixes
Br3nda Apr 5, 2026
7ed6f01
Lint fixes
Br3nda Apr 5, 2026
b8b6ae7
Lint fixes
Br3nda Apr 5, 2026
638c526
Lint fixes
Br3nda Apr 5, 2026
d0d078d
Lint fixes
Br3nda Apr 5, 2026
ba2cfc9
Lint fixes
Br3nda Apr 5, 2026
b5f38e2
adding comments
Br3nda Apr 5, 2026
454e737
replace sizeof with count
Br3nda Apr 5, 2026
f21898e
replace impode with join
Br3nda Apr 5, 2026
fe5b5d7
lint
Br3nda Apr 5, 2026
019f61d
lint
Br3nda Apr 5, 2026
02bb243
add comments
Br3nda Apr 5, 2026
02d183d
lint
Br3nda Apr 5, 2026
22c97c1
rename R_e to RADIUS_OF_EARTH
Br3nda Apr 5, 2026
504aa76
lint
Br3nda Apr 5, 2026
0f4bbdb
fix
Br3nda Apr 5, 2026
8c53a87
lint
Br3nda Apr 5, 2026
3da4a15
lint
Br3nda Apr 5, 2026
432b513
lint
Br3nda Apr 5, 2026
e746d98
lint
Br3nda Apr 5, 2026
1dae0b3
lint
Br3nda Apr 5, 2026
f00017c
lint
Br3nda Apr 5, 2026
2f4226a
lint
Br3nda Apr 5, 2026
a4047e4
lint
Br3nda Apr 5, 2026
5517fd5
lint
Br3nda Apr 5, 2026
5cb0c7e
lint
Br3nda Apr 5, 2026
1c37fd8
replace join with impode
Br3nda Apr 5, 2026
587a8f2
lint
Br3nda Apr 5, 2026
1456d8a
replace sizeof() with count()
Br3nda Apr 5, 2026
e5bcfb3
lint
Br3nda Apr 5, 2026
7fe5f97
lint
Br3nda Apr 5, 2026
9991445
lint
Br3nda Apr 5, 2026
2420b2f
lint
Br3nda Apr 5, 2026
00a1262
lint
Br3nda Apr 5, 2026
a468bbf
lint
Br3nda Apr 5, 2026
d7c6822
lint
Br3nda Apr 5, 2026
905d226
lint
Br3nda Apr 5, 2026
0b78191
lint
Br3nda Apr 5, 2026
e805dcb
lint
Br3nda Apr 5, 2026
3a00591
removing commented out code
Br3nda Apr 5, 2026
1480883
lint
Br3nda Apr 5, 2026
1b053c0
lint
Br3nda Apr 5, 2026
b9d41ac
lint
Br3nda Apr 5, 2026
4f3bcea
lint
Br3nda Apr 5, 2026
b9e15be
lint
Br3nda Apr 5, 2026
45a9508
Merge branch 'staging' into fix/lint
Br3nda Apr 5, 2026
4e2205e
changes display of recess to not need strptime
Br3nda Apr 5, 2026
6b20641
lint
Br3nda Apr 5, 2026
81ce9c1
remove commented out code
Br3nda Apr 5, 2026
c1a818f
lint
Br3nda Apr 5, 2026
08e3719
lint
Br3nda Apr 5, 2026
f5b6126
change join() to implode()
Br3nda Apr 5, 2026
5f6fe13
lint
Br3nda Apr 5, 2026
2b7f481
change sizeof to count
Br3nda Apr 5, 2026
18ca529
lint
Br3nda Apr 5, 2026
d397988
change join() to implode()
Br3nda Apr 5, 2026
a758f14
clearer logic in photo status code
Br3nda Apr 5, 2026
c0731a6
convert to switch
Br3nda Apr 5, 2026
99d4705
Merge pull request #72 from openaustralia/fix/photo-status-logic
Br3nda Apr 6, 2026
1f7194e
Merge branch 'fix/lint' into fix/recess-display
Br3nda Apr 6, 2026
0d410d7
Merge pull request #71 from openaustralia/fix/recess-display
Br3nda Apr 6, 2026
f78a26c
lint
Br3nda Apr 6, 2026
ceb557c
lint
Br3nda Apr 6, 2026
e206fbd
lint
Br3nda Apr 6, 2026
735862f
lint
Br3nda Apr 6, 2026
bc657b3
lint
Br3nda Apr 6, 2026
4daf339
lint
Br3nda Apr 6, 2026
db64044
lint
Br3nda Apr 6, 2026
c2cfd4e
lint
Br3nda Apr 6, 2026
f7208f9
lint
Br3nda Apr 6, 2026
0d0dc3b
lint
Br3nda Apr 6, 2026
3bbc20e
lint
Br3nda Apr 6, 2026
3279b08
Merge remote-tracking branch 'origin/staging' into fix/lint
Br3nda Apr 10, 2026
f13ecce
refactor: standardize formatting of conditional statements in HANSARD…
Br3nda Apr 10, 2026
5d959ae
lint
Br3nda Apr 10, 2026
40bbdea
use code blocks
Br3nda Apr 10, 2026
d2e8c50
lint
Br3nda Apr 10, 2026
0b28361
revert
Br3nda Apr 10, 2026
3fd9487
RADIUS_OF_EARTH
Br3nda Apr 10, 2026
3b5080a
fix: standardize else statement formatting across multiple files
Br3nda Apr 10, 2026
3397a5e
fix: standardize else statement formatting across multiple files
Br3nda Apr 10, 2026
2e796e6
fix: standardize else statement formatting across multiple files
Br3nda Apr 10, 2026
5dacfc8
fix: remove commented-out validation for keyword in check_input function
Br3nda Apr 10, 2026
7e2993d
Apply suggestion from @Girgias
Br3nda Apr 10, 2026
8b770d6
fix: update string replacement syntax in api_output_js function
Br3nda Apr 10, 2026
25033e1
Merge branch 'fix/lint' of github.com:openaustralia/twfy into fix/lint
Br3nda Apr 10, 2026
ca7ffa6
fix: correct indentation in RSS feed HTML structure
Br3nda Apr 10, 2026
83f9ee7
fix: standardize elseif formatting across multiple files
Br3nda Apr 10, 2026
58bfce0
fix: standardize elseif formatting across multiple files
Br3nda Apr 10, 2026
7c960bd
fix: standardize elseif formatting across multiple files
Br3nda Apr 10, 2026
020aa4d
fix: standardize elseif formatting across multiple files
Br3nda Apr 10, 2026
b44b5b1
fix: standardize elseif formatting across multiple files
Br3nda Apr 10, 2026
549adb3
fix: standardize elseif formatting across multiple files
Br3nda Apr 10, 2026
a3f5f3c
fix: standardize else formatting in page.php
Br3nda Apr 10, 2026
acdb8cc
fix: standardize else formatting in page.php
Br3nda Apr 10, 2026
241f69c
indentation
Br3nda Apr 10, 2026
79bd437
inentation
Br3nda Apr 10, 2026
af4599b
fix formatting of comment
Br3nda Apr 10, 2026
edcc13e
fix formatting of comment
Br3nda Apr 10, 2026
d8c003d
fix formatting of comment
Br3nda Apr 10, 2026
477e1fc
fix formatting of comment
Br3nda Apr 10, 2026
798b072
fix formatting of comment
Br3nda Apr 10, 2026
1646161
fix formatting of example response in api_getMSPs_front function
Br3nda Apr 10, 2026
49c401f
fix formatting of comment
Br3nda Apr 10, 2026
8e9e6ce
fix formatting of comment
Br3nda Apr 10, 2026
fb7292a
fix formatting of comments in most_recent_day function
Br3nda Apr 10, 2026
0e05f55
fix formatting of comments in _get_data_by_calendar function
Br3nda Apr 10, 2026
e1aef0a
fix formatting of comments in _get_data_by_calendar function
Br3nda Apr 10, 2026
d0bf22a
fix formatting of comments in _get_data_by_calendar function
Br3nda Apr 10, 2026
b332296
lint
Br3nda Apr 10, 2026
085ded4
lint
Br3nda Apr 10, 2026
11843dd
whitespace lint
Br3nda Apr 10, 2026
77c1599
fix formatting in member_full_name function
Br3nda Apr 10, 2026
ec8ea25
fix comment formatting in SEARCHENGINE class
Br3nda Apr 10, 2026
7791333
refactor comments for clarity and consistency in HANSARDLIST class
Br3nda Apr 10, 2026
dcf30e2
lint
Br3nda Apr 10, 2026
41265f2
the last lint error
Br3nda Apr 10, 2026
3e5977d
the last lint error
Br3nda Apr 10, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 32 additions & 29 deletions www/docs/alert/index.php
Original file line number Diff line number Diff line change
Expand Up @@ -93,11 +93,6 @@ function check_input($details) {
if (!ctype_digit($details['pid']) && $details['pid'] != '') {
$errors['pid'] = 'Please choose a valid person';
}
/*
* if (!$details['keyword']) {
* $errors['keyword'] = 'Please enter a search term';
* }
*/

if ((get_http_var('submitted') || get_http_var('only')) && !$details['pid'] && !$details['keyword']) {
$errors['keyword'] = 'Please choose a person and/or enter a keyword';
Expand All @@ -118,6 +113,7 @@ function add_alert($details) {
// Instantiate an instance of ALERT.
$ALERT = new ALERT();

// auth_verify_with_shared_secret is in phplib/auth.php. It checks the signature of the request using a shared secret, and returns true if the signature is correct.
$external_auth = auth_verify_with_shared_secret($details['email'], OPTION_AUTH_SHARED_SECRET, get_http_var('sign'));
if ($external_auth) {
$site = get_http_var('site');
Expand Down Expand Up @@ -191,8 +187,8 @@ function add_alert($details) {
$PAGE->page_end($extra);
}

/* This function creates the form for displaying an alert, prompts the user for input and creates
* the alert when submitted.
/* This function creates the form for displaying an alert, prompts the user for input and creates
* the alert when submitted.
*/

/**
Expand All @@ -206,7 +202,7 @@ function display_form($details = [], $errors = []) {

<p>This page allows you to request an email alert from OpenAustralia.org.</p>

<? if (!get_http_var('only')) { ?>
<?php if (!get_http_var('only')) { ?>
<ul>
<li>To receive an alert <strong>every time a particular person appears</strong>,
select their name from the drop-down list and
Expand All @@ -226,22 +222,27 @@ function display_form($details = [], $errors = []) {

<p>Please note that you should only enter one topic per alert - if you wish to receive alerts on more than one topic, or
for more than one person, simply fill in this form as many times as you need.</p>
<? } ?>
<?php
}
?>

<form method="post" action="<?php echo $ACTIONURL->generate(); ?>">

<?php if (!$THEUSER->loggedin()) {
<?php
if (!$THEUSER->loggedin()) {
if (isset($errors["email"]) && (get_http_var('submitted') || get_http_var('only'))) {
$PAGE->error_message($errors["email"]);
}
?>
<div class="row">
<span class="label"><label for="email">Your email address:</label></span>
<span class="formw"><input type="text" name="email" id="email" value="<?php if (isset($details["email"])) {
echo htmlentities($details["email"]);
} ?>" maxlength="255" size="30" class="form"></span>
<span class="formw"><input type="text" name="email" id="email" value="<?php
if (isset($details["email"])) {
echo htmlentities($details["email"]);
} ?>" maxlength="255" size="30" class="form"></span>
</div>
<?php }
<?php
}

if (!get_http_var('only') || !$details['keyword']) {
if (isset($errors['pid'])) {
$PAGE->error_message($errors['pid']);
Expand All @@ -254,19 +255,20 @@ function display_form($details = [], $errors = []) {
$MEMBER = new MEMBER(['person_id' => $details['pid']]);
print $MEMBER->full_name();
print '<input type="hidden" name="pid" value="' . htmlspecialchars($details['pid']) . '">';
}
else { ?><select name="pid">
<option value="Any">Any Representative or Senator</option>
<?php
// Get a list of MPs/Lords for displaying in the form using the PEOPLE class.
$LIST = new PEOPLE();
$args['order'] = 'last_name';
if ($details['pid'])
$args['pid'] = $details['pid'];
$LIST->listoptions($args);
?>
</select>
<?php } ?>
} else { ?>
<select name="pid">
<option value="Any">Any Representative or Senator</option>
<?php
// Get a list of MPs/Lords for displaying in the form using the PEOPLE class.
$LIST = new PEOPLE();
$args['order'] = 'last_name';
if ($details['pid']) {
$args['pid'] = $details['pid'];
}
$LIST->listoptions($args);
?>
</select>
<?php } ?>
</span>
</div>
<?php }
Expand All @@ -277,7 +279,8 @@ function display_form($details = [], $errors = []) {
?>
<div class="row">
<span class="label"><label for="keyword">Word or phrase you wish to receive alerts for:</label></span>
<span class="formw"><input type="text" name="keyword" id="keyword" value="<?php if ($details['keyword']) {
<span class="formw"><input type="text" name="keyword" id="keyword" value="<?php
if ($details['keyword']) {
echo htmlentities($details['keyword']);
} ?>" maxlength="255" size="30" class="form"></span>
</div>
Expand Down
8 changes: 4 additions & 4 deletions www/docs/api/api_convertURL.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,10 @@ function api_convertURL_front() {
</dl>

<h4>Example Response</h4>
<pre>{
gid : "uk.org.publicwhip/debate/2006-07-11a.1352.2",
url : "http://www.openaustralia.org/debates/?id=2006-07-11a.1311.0#g1352.2"
}</pre>
<code>{
gid : "uk.org.publicwhip/debate/2006-07-11a.1352.2",
url : "http://www.openaustralia.org/debates/?id=2006-07-11a.1311.0#g1352.2"
}</code>

<h4>Example Use</h4>
<p>This probably counts as "AJAX", though it doesn't use XMLHTTP, asynchronicity, or XML, only cross-site JavaScript...
Expand Down
8 changes: 4 additions & 4 deletions www/docs/api/api_functions.php
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ function api_log_call($key) {
if ($key == 'DOCS') {
return;
}
$ip = $_SERVER['REMOTE_ADDR'];
$ip = ip_address();
$query = $_SERVER['REQUEST_URI'];
$query = preg_replace('#key=[A-Za-z0-9]+&?#', '', $query);
$db = new ParlDB();
Expand Down Expand Up @@ -349,9 +349,9 @@ function api_output_js($v, $level = 0) {
return "null";
} elseif (is_string($v)) {
return '"' . str_replace(
["\\", '"', "\n", "\t", "\r"],
["\\\\", '\\"', '\\n', '\\t', '\\r'],
$v
search: ["\\", '"', "\n", "\t", "\r"],
replace: ["\\\\", '\\"', '\\n', '\\t', '\\r'],
subject: $v
) . '"';
} elseif (is_bool($v)) {
return $v ? 'true' : 'false';
Expand Down
56 changes: 30 additions & 26 deletions www/docs/api/api_getCommittee.php
Original file line number Diff line number Diff line change
Expand Up @@ -22,33 +22,37 @@ function api_getCommittee_front() {

<h4>Example responses</h4>

<pre>{ "committees" : [
{ "name" : "Scottish Affairs Committee" },
{ "name" : "Northern Ireland Affairs Committee" },
{ "name" : "Home Affairs Committee" },
{ "name" : "Constitutional Affairs Committee" },
{ "name" : "Environment, Food and Rural Affairs Committee" },
{ "name" : "Foreign Affairs Committee" },
{ "name" : "Welsh Affairs Committee" }
] }</pre>
<pre>
{ "committees" : [
{ "name" : "Scottish Affairs Committee" },
{ "name" : "Northern Ireland Affairs Committee" },
{ "name" : "Home Affairs Committee" },
{ "name" : "Constitutional Affairs Committee" },
{ "name" : "Environment, Food and Rural Affairs Committee" },
{ "name" : "Foreign Affairs Committee" },
{ "name" : "Welsh Affairs Committee" }
] }
</pre>

<pre>{
"committee" : "Health Committee",
"members" : [
{ "person_id" : "10009", "name" : "David Amess" },
{ "person_id" : "10018", "name" : "Charlotte Atkins" },
{ "person_id" : "10176", "name" : "Jim Dowd" },
{ "person_id" : "11603", "name" : "Anne Milton" },
{ "person_id" : "10455", "name" : "Doug Naysmith" },
{ "person_id" : "11626", "name" : "Michael Penning" },
{ "person_id" : "10571", "name" : "Howard Stoate" },
{ "person_id" : "11275", "name" : "Richard Taylor" },
{ "person_id" : "10027", "name" : "Kevin Barron", "position" : "Chairman" },
{ "person_id" : "10089", "name" : "Ronnie Campbell" },
{ "person_id" : "10677", "name" : "Sandra Gidley" }
]
}
<?php
<pre>
{
"committee" : "Health Committee",
"members" : [
{ "person_id" : "10009", "name" : "David Amess" },
{ "person_id" : "10018", "name" : "Charlotte Atkins" },
{ "person_id" : "10176", "name" : "Jim Dowd" },
{ "person_id" : "11603", "name" : "Anne Milton" },
{ "person_id" : "10455", "name" : "Doug Naysmith" },
{ "person_id" : "11626", "name" : "Michael Penning" },
{ "person_id" : "10571", "name" : "Howard Stoate" },
{ "person_id" : "11275", "name" : "Richard Taylor" },
{ "person_id" : "10027", "name" : "Kevin Barron", "position" : "Chairman" },
{ "person_id" : "10089", "name" : "Ronnie Campbell" },
{ "person_id" : "10677", "name" : "Sandra Gidley" }
]
}
</pre>
<?php
}

/**
Expand Down
26 changes: 13 additions & 13 deletions www/docs/api/api_getConstituencies.php
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,11 @@ function api_getConstituencies_front() {

<h4>Example Response</h4>
<pre>[
{ name : "Warringah" },
{ name : "Lyons" },
{ name : "Fairfax" },
...
]</pre>
{ name : "Warringah" },
{ name : "Lyons" },
{ name : "Fairfax" },
...
]</pre>

<?php
}
Expand Down Expand Up @@ -96,11 +96,11 @@ function api_getConstituencies($date = 'now()') {
api_output($output);
}

/* R_e
/* RADIUS_OF_EARTH
* Radius of the earth, in km. This is something like 6372.8 km:
* http://en.wikipedia.org/wiki/Earth_radius
* http://en.wikipedia.org/wiki/Earth_radius
*/
define('R_e', 6372.8);
define('RADIUS_OF_EARTH', 6372.8);

/**
*
Expand All @@ -126,18 +126,18 @@ function _api_getConstituencies_latitude($lat, $lon, $d) {
if (!isset($data['centre_lat']) || !isset($data['centre_lon'])) {
continue;
}
$distance = R_e * acos(
$distance = RADIUS_OF_EARTH * acos(
sin(deg2rad($lat)) * sin(deg2rad($data['centre_lat']))
+ cos(deg2rad($lat)) * cos(deg2rad($data['centre_lat']))
* cos(deg2rad($lon - $data['centre_lon']))
);
if (
deg2rad($data['centre_lat']) > deg2rad($lat) - ($d / R_e)
&& deg2rad($data['centre_lat']) < deg2rad($lat) + ($d / R_e)
deg2rad($data['centre_lat']) > deg2rad($lat) - ($d / RADIUS_OF_EARTH)
&& deg2rad($data['centre_lat']) < deg2rad($lat) + ($d / RADIUS_OF_EARTH)
// Case where search pt is near pole.
&& (abs(deg2rad($lat)) + ($d / R_e) > M_PI_2
&& (abs(deg2rad($lat)) + ($d / RADIUS_OF_EARTH) > M_PI_2
|| _api_angle_between(deg2rad($data['centre_lon']), deg2rad($lon))
< $d / (R_e * cos(deg2rad($lat + $d / R_e))))
< $d / (RADIUS_OF_EARTH * cos(deg2rad($lat + $d / RADIUS_OF_EARTH))))
&& $distance < $d
) {
$out[] = array_merge(
Expand Down
72 changes: 36 additions & 36 deletions www/docs/api/api_getDebates.php
Original file line number Diff line number Diff line change
Expand Up @@ -36,43 +36,43 @@ function api_getDebates_front() {

<h4>Example Response (search)</h4>
<pre>{
"info" : {
"s" : "cows section:lords",
"results_per_page" : 20,
"page" : 1,
"total_results" : 24,
"first_result" : 1
},
"searchdescription" : "containing the word 'cows' in Senate debates",
"rows" : [{
"gid" : "2009-02-11.70.21",
"hdate" : "2009-02-11",
"htype" : "12",
"major" : "101",
"section_id" : "5316",
"subsection_id" : "5317",
"relevance" : 99,
"speaker_id" : "100114",
"hpos" : "221",
"body" : "Shut the door. I can hear the <span class=\"hi\">cows</span> coming home!",
"listurl" : "/senate/?id=2009-02-11.66.2&amp;s=cows+section%3Alords#g70.21",
"speaker" : {
"member_id" : "100114",
"title" : "",
"first_name" : "Barnaby",
"last_name" : "Joyce",
"house" : "2",
"constituency" : "Queensland",
"party" : "National Party",
"person_id" : "10350",
"url" : "/senator/?m=100114"
"info" : {
"s" : "cows section:lords",
"results_per_page" : 20,
"page" : 1,
"total_results" : 24,
"first_result" : 1
},
"parent" : {
"body" : "Appropriation (Nation Building and Jobs) Bill (No. 1) 2008-2009; Appropriation (Nation Building and Jobs) Bill (No. 2) 2008-2009; Household Stimulus Package Bill 2009; Tax Bonus for Working Australians Bill 2009; Tax Bonus for Working Australians (Consequential Amendments) Bill 2009; Commonwealth Inscribed Stock Amendment Bill 2009: In Committee"
}
}]
}
</pre>
"searchdescription" : "containing the word 'cows' in Senate debates",
"rows" : [{
"gid" : "2009-02-11.70.21",
"hdate" : "2009-02-11",
"htype" : "12",
"major" : "101",
"section_id" : "5316",
"subsection_id" : "5317",
"relevance" : 99,
"speaker_id" : "100114",
"hpos" : "221",
"body" : "Shut the door. I can hear the <span class=\"hi\">cows</span> coming home!",
"listurl" : "/senate/?id=2009-02-11.66.2&amp;s=cows+section%3Alords#g70.21",
"speaker" : {
"member_id" : "100114",
"title" : "",
"first_name" : "Barnaby",
"last_name" : "Joyce",
"house" : "2",
"constituency" : "Queensland",
"party" : "National Party",
"person_id" : "10350",
"url" : "/senator/?m=100114"
},
"parent" : {
"body" : "Appropriation (Nation Building and Jobs) Bill (No. 1) 2008-2009; Appropriation (Nation Building and Jobs) Bill (No. 2) 2008-2009; Household Stimulus Package Bill 2009; Tax Bonus for Working Australians Bill 2009; Tax Bonus for Working Australians (Consequential Amendments) Bill 2009; Commonwealth Inscribed Stock Amendment Bill 2009: In Committee"
}
}]
}
</pre>
<?php
}

Expand Down
22 changes: 11 additions & 11 deletions www/docs/api/api_getGeometry.php
Original file line number Diff line number Diff line change
Expand Up @@ -27,17 +27,17 @@ function api_getGeometry_front() {

<h4>Example Response</h4>
<pre>
&lt;twfy&gt;
&lt;centre_lat&gt;52.204105461821&lt;/centre_lat&gt;
&lt;centre_lon&gt;0.12659823548615&lt;/centre_lon&gt;
&lt;area&gt;28775860&lt;/area&gt;
&lt;min_lat&gt;52.171543612943&lt;/min_lat&gt;
&lt;max_lat&gt;52.236635567414&lt;/max_lat&gt;
&lt;min_lon&gt;0.066543287124126&lt;/min_lon&gt;
&lt;max_lon&gt;0.18674084465674&lt;/max_lon&gt;
&lt;parts&gt;1&lt;/parts&gt;
&lt;/twfy&gt;
</pre>
&lt;twfy&gt;
&lt;centre_lat&gt;52.204105461821&lt;/centre_lat&gt;
&lt;centre_lon&gt;0.12659823548615&lt;/centre_lon&gt;
&lt;area&gt;28775860&lt;/area&gt;
&lt;min_lat&gt;52.171543612943&lt;/min_lat&gt;
&lt;max_lat&gt;52.236635567414&lt;/max_lat&gt;
&lt;min_lon&gt;0.066543287124126&lt;/min_lon&gt;
&lt;max_lon&gt;0.18674084465674&lt;/max_lon&gt;
&lt;parts&gt;1&lt;/parts&gt;
&lt;/twfy&gt;
</pre>
<?php
}

Expand Down
Loading
Loading