aboutsummaryrefslogtreecommitdiffstats
path: root/mod/chanview.php
blob: 601df88fd7e29b748b17849b867b56085e192938 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<?php

require_once('include/Contact.php');

function chanview_content(&$a) {

	$xchan = null;

	$r = null;

	if($_REQUEST['hash']) {
		$r = q("select * from xchan where xchan_hash = '%s' limit 1",
			dbesc($_REQUEST['hash'])
		);
	}
	if($_REQUEST['address']) {
		$r = q("select * from xchan where xchan_addr = '%s' limit 1",
			dbesc($_REQUEST['address'])
		);
	}
	elseif(local_user() && intval($_REQUEST['cid'])) {
		$r = q("SELECT abook.*, xchan.* 
			FROM abook left join xchan on abook_xchan = xchan_hash
			WHERE abook_channel = %d and abook_id = %d LIMIT 1",
			intval(local_user()),
			intval($_REQUEST['cid'])
		);
	}	
	elseif($_REQUEST['url']) {
		$r = q("select * from xchan where xchan_url = '%s' limit 1",
			dbesc($_REQUEST['url'])
		);
		if(! $r)
			$r = array(array('xchan_url' => $_REQUEST['url']));
	}
	if($r) {
		$xchan = $r[0];
		if($xchan['xchan_hash'])
			$a->set_widget('vcard',vcard_from_xchan($xchan));

	}
	else {
		notice( t('No valid channel provided.') . EOL);
		return;
	}

	$observer = $a->get_observer();

	$url = (($observer) 
		? z_root() . '/magic?f=&dest=' . $xchan['xchan_url'] . '&addr=' . $xchan['xchan_addr'] 
		: $xchan['xchan_url']
	);

	$o = replace_macros(get_markup_template('chanview.tpl'),array(
		'$url' => $url
	));

	return $o;

}