Add App::poi to store the "person of interest" for a given page. This is so we can comanchificate the vcard_from_xchan widget -- it will pick up the target xchan from the page environment.

This commit is contained in:
friendica 2013-12-18 14:53:18 -08:00
parent 38fd8410eb
commit 1a4c91ccf5
4 changed files with 31 additions and 32 deletions

View File

@ -572,10 +572,11 @@ function startup() {
class App {
public $account = null; // account record
public $channel = null; // channel record
public $observer = null; // xchan record
public $profile_uid = 0; // If applicable, the uid of the person whose stuff this is.
public $account = null; // account record of the logged-in account
public $channel = null; // channel record of the current channel of the logged-in account
public $observer = null; // xchan record of the page observer
public $profile_uid = 0; // If applicable, the channel_id of the "page owner"
public $poi = null; // "person of interest", generally a referenced connection
public $layout = array(); // Comanche parsed template

View File

@ -38,17 +38,16 @@ function chanview_content(&$a) {
);
}
if($r) {
$xchan = $r[0];
$a->poi = $r[0];
}
// Here, let's see if we have an xchan. If we don't, how we proceed is determined by what
// info we do have. If it's a URL, we can offer to visit it directly. If it's a webbie or
// address, we can and should try to import it. If it's just a hash, we can't continue, but we
// probably wouldn't have a hash if we don't already have an xchan for this channel.
if(! $xchan) {
if(! $a->poi) {
logger('mod_chanview: fallback');
// This is hackish - construct a zot address from the url
if($_REQUEST['url']) {
@ -68,20 +67,20 @@ function chanview_content(&$a) {
dbesc($_REQUEST['address'])
);
if($r)
$xchan = $r[0];
$a->poi = $r[0];
}
}
}
if(! $xchan) {
if(! $a->poi) {
notice( t('Channel not found.') . EOL);
return;
}
$url = (($observer)
? z_root() . '/magic?f=&dest=' . $xchan['xchan_url'] . '&addr=' . $xchan['xchan_addr']
: $xchan['xchan_url']
? z_root() . '/magic?f=&dest=' . $a->poi['xchan_url'] . '&addr=' . $a->poi['xchan_addr']
: $a->poi['xchan_url']
);
// let somebody over-ride the iframed viewport presentation
@ -90,8 +89,8 @@ function chanview_content(&$a) {
goaway($url);
if($xchan['xchan_hash'])
$a->set_widget('vcard',vcard_from_xchan($xchan,$observer,'chanview'));
if($a->poi['xchan_hash'])
$a->set_widget('vcard',vcard_from_xchan($a->poi,$observer,'chanview'));
$o = replace_macros(get_markup_template('chanview.tpl'),array(
'$url' => $url,

View File

@ -21,7 +21,7 @@ function connedit_init(&$a) {
intval(argv(1))
);
if($r) {
$a->data['abook'] = $r[0];
$a->poi = $r[0];
}
}
@ -37,9 +37,9 @@ function connedit_aside(&$a) {
if (! local_user())
return;
if(x($a->data,'abook')) {
$a->set_widget('vcard',vcard_from_xchan($a->data['abook'],$a->get_observer()));
$a->set_widget('collections', group_side('connections','group',false,0,$a->data['abook']['abook_xchan']));
if($a->poi) {
$a->set_widget('vcard',vcard_from_xchan($a->poi,$a->get_observer()));
$a->set_widget('collections', group_side('connections','group',false,0,$a->poi['abook_xchan']));
}
$a->set_widget('suggest',widget_suggestions(array()));
@ -123,8 +123,8 @@ function connedit_post(&$a) {
else
notice( t('Failed to update connection record.') . EOL);
if((x($a->data,'abook')) && $a->data['abook']['abook_my_perms'] != $abook_my_perms
&& (! ($a->data['abook']['abook_flags'] & ABOOK_FLAG_SELF))) {
if($a->poi && $a->poi['abook_my_perms'] != $abook_my_perms
&& (! ($a->poi['abook_flags'] & ABOOK_FLAG_SELF))) {
proc_run('php', 'include/notifier.php', 'permission_update', $contact_id);
}
@ -135,7 +135,7 @@ function connedit_post(&$a) {
require_once('include/group.php');
$g = group_rec_byhash(local_user(),$default_group);
if($g)
group_add_member(local_user(),'',$a->data['abook_xchan'],$g['id']);
group_add_member(local_user(),'',$a->poi['abook_xchan'],$g['id']);
}
@ -159,11 +159,11 @@ function connedit_post(&$a) {
intval($contact_id)
);
if($r) {
$a->data['abook'] = $r[0];
$a->poi = $r[0];
}
if($new_friend) {
$arr = array('channel_id' => local_user(), 'abook' => $a->data['abook']);
$arr = array('channel_id' => local_user(), 'abook' => $a->poi);
call_hooks('accept_follow', $arr);
}
@ -175,9 +175,9 @@ function connedit_post(&$a) {
function connedit_clone(&$a) {
if(! array_key_exists('abook',$a->data))
if(! $a->poi)
return;
$clone = $a->data['abook'];
$clone = $a->poi;
unset($clone['abook_id']);
unset($clone['abook_account']);
@ -315,10 +315,10 @@ function connedit_content(&$a) {
}
}
if((x($a->data,'abook')) && (is_array($a->data['abook']))) {
if($a->poi) {
$contact_id = $a->data['abook']['abook_id'];
$contact = $a->data['abook'];
$contact_id = $a->poi['abook_id'];
$contact = $a->poi;
$tabs = array(

View File

@ -374,15 +374,14 @@ function message_content(&$a) {
return $o;
}
$other_channel = null;
if($messages[0]['to_xchan'] === $channel['channel_hash'])
$other_channel = $messages[0]['from'];
$a->poi = $messages[0]['from'];
else
$other_channel = $messages[0]['to'];
$a->poi = $messages[0]['to'];
require_once('include/Contact.php');
$a->set_widget('mail_conversant',vcard_from_xchan($other_channel,$get_observer_hash,'mail'));
$a->set_widget('mail_conversant',vcard_from_xchan($a->poi,$get_observer_hash,'mail'));
$tpl = get_markup_template('msg-header.tpl');