git.gnu.io has moved to IP address 209.51.188.249 -- please double check where you are logging in.

location.php 2.38 KB
Newer Older
tobyink's avatar
tobyink committed
1 2
<?php

3
/* GNU FM -- a free network service for sharing your music listening habits
tobyink's avatar
tobyink committed
4

5
   Copyright (C) 2009 Free Software Foundation, Inc
tobyink's avatar
tobyink committed
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21

   This program is free software: you can redistribute it and/or modify
   it under the terms of the GNU Affero General Public License as published by
   the Free Software Foundation, either version 3 of the License, or
   (at your option) any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU Affero General Public License for more details.

   You should have received a copy of the GNU Affero General Public License
   along with this program.  If not, see <http://www.gnu.org/licenses/>.

*/

22
require_once('database.php');
tobyink's avatar
tobyink committed
23 24 25 26 27
require_once('templating.php');
require_once('data/sanitize.php');
require_once('data/Server.php');
require_once('data/User.php');

28
if (strtolower(substr($connect_string, 0, 5)) == 'mysql') {
tobyink's avatar
tobyink committed
29
	$random = 'RAND';
30
} else if (strtolower(substr($connect_string, 0, 5)) == 'mssql') {
tobyink's avatar
tobyink committed
31
	$random = 'NEWID';  // I don't think we try to support MSSQL, but here's how it's done theoretically anyway
32
} else {
tobyink's avatar
tobyink committed
33
	$random = 'RANDOM';  // postgresql, sqlite, possibly others
34
}
clint's avatar
clint committed
35

36
if ($_REQUEST['country']) {
elleo's avatar
elleo committed
37
	$q = sprintf('SELECT u.* FROM Users u INNER JOIN Places p ON u.location_uri=p.location_uri AND p.country=%s ORDER BY %s() LIMIT 100',
clint's avatar
clint committed
38
		$adodb->qstr(strtoupper($_REQUEST['country'])),
tobyink's avatar
tobyink committed
39
		$random);
clint's avatar
clint committed
40

clint's avatar
clint committed
41 42
	$adodb->SetFetchMode(ADODB_FETCH_ASSOC);
	$res = $adodb->GetAll($q);
clint's avatar
clint committed
43

44
	foreach ($res as &$row) {
45 46 47
		try {
			$userlist[] = new User($row['username'], $row);
		} catch (Exception $e) {}
tobyink's avatar
tobyink committed
48
	}
clint's avatar
clint committed
49

50
	$smarty->assign('country', strtoupper($_REQUEST['country']));
clint's avatar
clint committed
51 52
	$row = $adodb->GetRow(sprintf('SELECT * FROM Countries WHERE country=%s LIMIT 1',
		$adodb->qstr(strtoupper($_REQUEST['country']))));
53
	if ($row) {
54 55
		$smarty->assign('country_info', $row);
	}
clint's avatar
clint committed
56

tobyink's avatar
tobyink committed
57
	$smarty->assign('userlist', $userlist);
clint's avatar
clint committed
58

tobyink's avatar
tobyink committed
59 60
	$smarty->assign('extra_head_links', array(
			array(
61 62
				'rel'   => 'meta',
				'type'  => 'application/rdf+xml',
tobyink's avatar
tobyink committed
63
				'title' => 'FOAF',
64
				'href'  => $base_url . '/rdf.php?fmt=xml&page=' . rawurlencode(str_replace($base_url, '', $_SERVER['REQUEST_URI']))
tobyink's avatar
tobyink committed
65
				)
tobyink's avatar
tobyink committed
66
		));
clint's avatar
clint committed
67

tobyink's avatar
tobyink committed
68
	$smarty->display('location-country.tpl');
69
} else {
Jonas Haraldsson's avatar
Jonas Haraldsson committed
70
	displayError("Location not found", "Location not found, shall I call in a missing locations report?");
71
}