diff --git a/boot.php b/boot.php index 5cc77182aa..61f14d9bc0 100644 --- a/boot.php +++ b/boot.php @@ -9,7 +9,7 @@ require_once('include/nav.php'); require_once('include/cache.php'); define ( 'FRIENDICA_PLATFORM', 'Friendica'); -define ( 'FRIENDICA_VERSION', '2.3.1199' ); +define ( 'FRIENDICA_VERSION', '2.3.1200' ); define ( 'DFRN_PROTOCOL_VERSION', '2.22' ); define ( 'DB_UPDATE_VERSION', 1112 ); @@ -1036,6 +1036,8 @@ function get_birthdays() { if($r && count($r)) { $total = 0; $now = strtotime('now'); + $cids = array(); + $istoday = false; foreach($r as $rr) { if(strlen($rr['name'])) @@ -1052,6 +1054,13 @@ function get_birthdays() { foreach($r as $rr) { if(! strlen($rr['name'])) continue; + + // avoid duplicates + + if(in_array($rr['cid'],$cids)) + continue; + $cids[] = $rr['cid']; + $today = (((strtotime($rr['start'] . ' +00:00') < $now) && (strtotime($rr['finish'] . ' +00:00') > $now)) ? true : false); $sparkle = ''; $url = $rr['url']; diff --git a/include/bbcode.php b/include/bbcode.php index a8e3bed701..5218a06e85 100644 --- a/include/bbcode.php +++ b/include/bbcode.php @@ -11,7 +11,7 @@ function stripcode_br_cb($s) { function tryoembed($match){ $url = ((count($match)==2)?$match[1]:$match[2]); - logger('tryoembed: $url'); + logger("tryoembed: $url"); $o = oembed_fetch_url($url); diff --git a/include/conversation.php b/include/conversation.php index 0c319e802f..9cc5c258b4 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -294,7 +294,7 @@ function conversation(&$a, $items, $mode, $update) { $arr = array('item' => $item, 'output' => $tmp_item); call_hooks('display_item', $arr); - $threads[$threadsid]['id'] = $arr[$item['item_id']]; + $threads[$threadsid]['id'] = $item['item_id']; $threads[$threadsid]['html'] .= $arr['output']; } diff --git a/include/diaspora.php b/include/diaspora.php index 7f1e4a8e33..fdf756610e 100644 --- a/include/diaspora.php +++ b/include/diaspora.php @@ -188,6 +188,13 @@ function diaspora_msg_build($msg,$user,$contact,$prvkey,$pubkey,$public = false) logger('diaspora_msg_build: ' . $msg, LOGGER_DATA); + // without a public key nothing will work + + if(! $pubkey) { + logger('diaspora_msg_build: pubkey missing: contact id: ' . $contact['id']); + return ''; + } + $inner_aes_key = random_string(32); $b_inner_aes_key = base64_encode($inner_aes_key); $inner_iv = random_string(16); @@ -1672,6 +1679,12 @@ function diaspora_profile($importer,$xml) { $birthday = datetime_convert('UTC','UTC',$birthday,'Y-m-d'); + // this is to prevent multiple birthday notifications in a single year + // if we already have a stored birthday and the 'm-d' part hasn't changed, preserve the entry, which will preserve the notify year + + if(substr($birthday,5) === substr($contact['bd'],5)) + $birthday = $contact['bd']; + $r = q("UPDATE `contact` SET `name` = '%s', `name-date` = '%s', `photo` = '%s', `thumb` = '%s', `micro` = '%s', `avatar-date` = '%s' , `bd` = '%s' WHERE `id` = %d AND `uid` = %d LIMIT 1", dbesc($name), dbesc(datetime_convert()), diff --git a/include/socgraph.php b/include/socgraph.php index 60bf075d3e..79d7340a4e 100644 --- a/include/socgraph.php +++ b/include/socgraph.php @@ -58,6 +58,9 @@ function poco_load($cid,$uid = 0,$url = null) { logger('poco_load: json: ' . print_r($j,true),LOGGER_DATA); + if(! isset($j->entry)) + return; + $total = 0; foreach($j->entry as $entry) { diff --git a/mod/profile.php b/mod/profile.php index 642e198b79..d2f9d7e298 100644 --- a/mod/profile.php +++ b/mod/profile.php @@ -32,7 +32,7 @@ function profile_init(&$a) { if(! $blocked) { $keywords = ((x($a->profile,'pub_keywords')) ? $a->profile['pub_keywords'] : ''); - $keywords = str_replace(array(',',' ',',,'),array(' ',',',','),$keywords); + $keywords = str_replace(array('#',',',' ',',,'),array('',' ',',',','),$keywords); if(strlen($keywords)) $a->page['htmlhead'] .= '' . "\r\n" ; } diff --git a/view/theme/purplezero/style.css b/view/theme/purplezero/style.css index f624fadac3..f0d5b96b94 100644 --- a/view/theme/purplezero/style.css +++ b/view/theme/purplezero/style.css @@ -1,6 +1,6 @@ @import url('../duepuntozero/style.css'); -a, a:visited { color: #7433af; text-decoration: none; } +a, a:link, a:visited { color: #7433af; text-decoration: none; } a:hover {text-decoration: underline; }