set_time_limit(0);
-define ( 'FRIENDIKA_VERSION', '2.1.939' );
-define ( 'DFRN_PROTOCOL_VERSION', '2.2' );
-define ( 'DB_UPDATE_VERSION', 1046 );
+define ( 'FRIENDIKA_VERSION', '2.1.945' );
+define ( 'DFRN_PROTOCOL_VERSION', '2.21' );
+define ( 'DB_UPDATE_VERSION', 1048 );
define ( 'EOL', "<br />\r\n" );
define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' );
load_config('system');
- if(! x($_SERVER,'SERVER_NAME'))
- return;
-
$build = get_config('system','build');
if(! x($build))
$build = set_config('system','build',DB_UPDATE_VERSION);
$url = get_config('system','url');
- if(! x($url))
+
+ // if the url isn't set or the stored url is radically different
+ // than the currently visited url, store the current value accordingly.
+ // "Radically different" ignores common variations such as http vs https
+ // and www.example.com vs example.com.
+
+ if((! x($url)) || (! link_compare($url,$a->get_baseurl())))
$url = set_config('system','url',$a->get_baseurl());
if($build != DB_UPDATE_VERSION) {
// pre-quoted, don't put quotes on %s
if(count($urls)) {
- $r = q("SELECT `id`,`url` FROM `contact` WHERE `uid` = %d AND `url` IN ( %s ) AND `network` = 'dfrn' AND `self` = 0 AND `blocked` = 0 ",
+ $r = q("SELECT `id`,`network`,`url` FROM `contact` WHERE `uid` = %d AND `url` IN ( %s ) AND `self` = 0 AND `blocked` = 0 ",
intval($uid),
implode(',',$urls)
);
if(count($r)) {
$ret = array();
- foreach($r as $rr)
- $ret[$rr['url']] = $rr['id'];
+ $authors = array();
+ foreach($r as $rr){
+ if ($rr['network']=='dfrn')
+ $ret[$rr['url']] = $rr['id'];
+ $authors[$r['url']]= $rr;
+ }
+ $a->authors = $authors;
return $ret;
}
}
$a = get_app();
if (!isset($a->authors)){
- $rr = q("SELECT id, network, url FROM contact WHERE uid=%d AND self!=1", intval(local_user()));
+ $rr = q("SELECT `id`, `network`, `url` FROM `contact` WHERE `uid`=%d AND `self`=0 AND `blocked`=0 ", intval(local_user()));
$authors = array();
foreach($rr as $r) $authors[$r['url']]= $r;
$a->authors = $authors;
// Then check if we can use a sparkle (redirect) link to the profile by virtue of it being our contact
// or a friend's contact that we both have a connection to.
- if(((local_user() && ($profile_owner == 0))
- || ($profile_owner && $profile_owner == local_user()))
- && strlen($item['author-link'])) {
-
- if(link_compare($item['author-link'],$item['url']) && ($item['network'] === 'dfrn') && (! $item['self'])) {
- $status_link = $redirect_url."?url=status";
- $profile_link = $redirect_url."?url=profile";
- $photos_link = $redirect_url."?url=photos";
- $pm_url = $a->get_baseurl() . '/message/new/' . $item['cid'];
- $contact_url = $item['self']?"":$a->get_baseurl() . '/contacts/' . $item['cid'];
- }
+ if((local_user() && ($profile_owner == 0))
+ || ($profile_owner && $profile_owner == local_user())) {
+
+ if(strlen($item['author-link']) && link_compare($item['author-link'],$item['url']))
+ $redir = $redirect_url;
elseif(isset($a->authors[$item['author-link']])) {
- $redirect_url = $a->get_baseurl() . '/redir/' . $a->authors[$item['author-link']]['id'];
- $status_link = $redirect_url."?url=status";
- $profile_link = $redirect_url."?url=profile";
- $photos_link = $redirect_url."?url=photos";
- if ($a->authors[$item['author-link']]['network']==='dfrn'){
- $pm_url = $a->get_baseurl() . '/message/new/' . $a->authors[$item['author-link']]['id'];
- }
- $contact_url = $item['self']?"":$a->get_baseurl() . '/contacts/' . $a->authors[$item['author-link']]['id'] ;
+ $redir = $a->get_baseurl() . '/redir/' . $a->authors[$item['author-link']]['id'];
+ $cid = $a->authors[$item['author-link']]['id'];
}
+
+ if($item['network'] === 'dfrn' && (! $item['self'])) {
+ $status_link = $redir . "?url=status";
+ $profile_link = $redir . "?url=profile";
+ $photos_link = $redir . "?url=photos";
+ $pm_url = $a->get_baseurl() . '/message/new/' . $cid;
+ }
+
+ $contact_url = $item['self']?"":$a->get_baseurl() . '/contacts/' . (($item['cid']) ? $item['cid'] : $cid);
}