Merge branch 'master' of git://github.com/friendika/friendika
This commit is contained in:
commit
30551b24ec
8 changed files with 179 additions and 7 deletions
58
boot.php
58
boot.php
|
@ -182,6 +182,7 @@ class App {
|
||||||
public $strings;
|
public $strings;
|
||||||
public $path;
|
public $path;
|
||||||
public $hooks;
|
public $hooks;
|
||||||
|
public $timezone;
|
||||||
public $interactive = true;
|
public $interactive = true;
|
||||||
|
|
||||||
|
|
||||||
|
@ -2118,3 +2119,60 @@ function call_hooks($name, &$data = null) {
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
|
|
||||||
|
|
||||||
|
if(! function_exists('day_translate')) {
|
||||||
|
function day_translate($s) {
|
||||||
|
$ret = str_replace(array('Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday'),
|
||||||
|
array( t('Monday'), t('Tuesday'), t('Wednesday'), t('Thursday'), t('Friday'), t('Saturday'), t('Sunday')),
|
||||||
|
$s);
|
||||||
|
|
||||||
|
$ret = str_replace(array('January','February','March','April','May','June','July','August','September','October','November','December'),
|
||||||
|
array( t('January'), t('February'), t('March'), t('April'), t('May'), t('June'), t('July'), t('August'), t('September'), t('October'), t('November'), t('December')),
|
||||||
|
$ret);
|
||||||
|
|
||||||
|
return $ret;
|
||||||
|
}}
|
||||||
|
|
||||||
|
if(! function_exists('get_birthdays')) {
|
||||||
|
function get_birthdays() {
|
||||||
|
|
||||||
|
$a = get_app();
|
||||||
|
$o = '';
|
||||||
|
|
||||||
|
if(! local_user())
|
||||||
|
return $o;
|
||||||
|
|
||||||
|
$bd_format = get_config('system','birthday_format');
|
||||||
|
if(! $bd_format)
|
||||||
|
$bd_format = 'g A l F d' ; // 8 AM Friday January 18
|
||||||
|
|
||||||
|
$r = q("SELECT `event`.*, `event`.`id` AS `eid`, `contact`.* FROM `event`
|
||||||
|
LEFT JOIN `contact` ON `contact`.`id` = `event`.`cid`
|
||||||
|
WHERE `event`.`uid` = %d AND `type` = 'birthday' AND `start` < '%s' AND `finish` > '%s'
|
||||||
|
ORDER BY `start` DESC ",
|
||||||
|
intval(local_user()),
|
||||||
|
dbesc(datetime_convert('UTC','UTC','now + 6 days')),
|
||||||
|
dbesc(datetime_convert('UTC','UTC','now'))
|
||||||
|
);
|
||||||
|
|
||||||
|
if($r && count($r)) {
|
||||||
|
$o .= '<div id="birthday-wrapper"><div id="birthday-title">' . t('Birthdays this week:') . '</div>';
|
||||||
|
$o .= '<div id="birthday-adjust">' . t("\x28Adjusted for local time\x29") . '</div>';
|
||||||
|
$o .= '<div id="birthday-title-end"></div>';
|
||||||
|
|
||||||
|
foreach($r as $rr) {
|
||||||
|
$now = strtotime('now');
|
||||||
|
$today = (((strtotime($rr['start']) < $now) && (strtotime($rr['finish']) > $now)) ? true : false);
|
||||||
|
|
||||||
|
$o .= '<div class="birthday-list" id="birthday-' . $rr['eid'] . '"><a class="sparkle" href="'
|
||||||
|
. $a->get_baseurl() . '/redir/' . $rr['cid'] . '">' . $rr['name'] . '</a> '
|
||||||
|
. day_translate(datetime_convert('UTC', $a->timezone, $rr['start'], $bd_format)) . (($today) ? ' ' . t('[today]') : '') ;
|
||||||
|
}
|
||||||
|
|
||||||
|
$o .= '</div>';
|
||||||
|
}
|
||||||
|
|
||||||
|
return $o;
|
||||||
|
|
||||||
|
}}
|
||||||
|
|
||||||
|
|
|
@ -53,8 +53,11 @@ if((isset($_SESSION)) && (x($_SESSION,'authenticated')) && ((! (x($_POST,'auth-p
|
||||||
$a->user = $r[0];
|
$a->user = $r[0];
|
||||||
$_SESSION['theme'] = $a->user['theme'];
|
$_SESSION['theme'] = $a->user['theme'];
|
||||||
$_SESSION['page_flags'] = $a->user['page-flags'];
|
$_SESSION['page_flags'] = $a->user['page-flags'];
|
||||||
if(strlen($a->user['timezone']))
|
|
||||||
|
if(strlen($a->user['timezone'])) {
|
||||||
date_default_timezone_set($a->user['timezone']);
|
date_default_timezone_set($a->user['timezone']);
|
||||||
|
$a->timezone = $a->user['timezone'];
|
||||||
|
}
|
||||||
|
|
||||||
$_SESSION['my_url'] = $a->get_baseurl() . '/profile/' . $a->user['nickname'];
|
$_SESSION['my_url'] = $a->get_baseurl() . '/profile/' . $a->user['nickname'];
|
||||||
|
|
||||||
|
@ -183,8 +186,11 @@ else {
|
||||||
|
|
||||||
notice( t("Welcome back ") . $record['username'] . EOL);
|
notice( t("Welcome back ") . $record['username'] . EOL);
|
||||||
$a->user = $record;
|
$a->user = $record;
|
||||||
if(strlen($a->user['timezone']))
|
|
||||||
|
if(strlen($a->user['timezone'])) {
|
||||||
date_default_timezone_set($a->user['timezone']);
|
date_default_timezone_set($a->user['timezone']);
|
||||||
|
$a->timezone = $a->user['timezone'];
|
||||||
|
}
|
||||||
|
|
||||||
$r = q("SELECT * FROM `contact` WHERE `uid` = %s AND `self` = 1 LIMIT 1",
|
$r = q("SELECT * FROM `contact` WHERE `uid` = %s AND `self` = 1 LIMIT 1",
|
||||||
intval($_SESSION['uid']));
|
intval($_SESSION['uid']));
|
||||||
|
|
|
@ -872,7 +872,7 @@ function dfrn_deliver($owner,$contact,$atom) {
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function consume_feed($xml,$importer,$contact, &$hub, $datedir = 0) {
|
function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0) {
|
||||||
|
|
||||||
require_once('simplepie/simplepie.inc');
|
require_once('simplepie/simplepie.inc');
|
||||||
|
|
||||||
|
@ -890,7 +890,7 @@ function consume_feed($xml,$importer,$contact, &$hub, $datedir = 0) {
|
||||||
$new_name = '';
|
$new_name = '';
|
||||||
$photo_timestamp = '';
|
$photo_timestamp = '';
|
||||||
$photo_url = '';
|
$photo_url = '';
|
||||||
|
$birthday = '';
|
||||||
|
|
||||||
$hubs = $feed->get_links('hub');
|
$hubs = $feed->get_links('hub');
|
||||||
|
|
||||||
|
@ -908,10 +908,14 @@ function consume_feed($xml,$importer,$contact, &$hub, $datedir = 0) {
|
||||||
$photo_timestamp = datetime_convert('UTC','UTC',$elems['link'][0]['attribs'][NAMESPACE_DFRN]['updated']);
|
$photo_timestamp = datetime_convert('UTC','UTC',$elems['link'][0]['attribs'][NAMESPACE_DFRN]['updated']);
|
||||||
$photo_url = $elems['link'][0]['attribs']['']['href'];
|
$photo_url = $elems['link'][0]['attribs']['']['href'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if((x($rawtags[0]['child'], NAMESPACE_DFRN)) && (x($rawtags[0]['child'][NAMESPACE_DFRN],'birthday'))) {
|
||||||
|
$birthday = datetime_convert('UTC','UTC', $rawtags[0]['child'][NAMESPACE_DFRN]['birthday'][0]['data']);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if((is_array($contact)) && ($photo_timestamp) && (strlen($photo_url)) && ($photo_timestamp > $contact['avatar-date'])) {
|
if((is_array($contact)) && ($photo_timestamp) && (strlen($photo_url)) && ($photo_timestamp > $contact['avatar-date'])) {
|
||||||
logger('Consume feed: Updating photo for ' . $contact['name']);
|
logger('consume_feed: Updating photo for ' . $contact['name']);
|
||||||
require_once("Photo.php");
|
require_once("Photo.php");
|
||||||
$photo_failure = false;
|
$photo_failure = false;
|
||||||
$have_photo = false;
|
$have_photo = false;
|
||||||
|
@ -973,6 +977,53 @@ function consume_feed($xml,$importer,$contact, &$hub, $datedir = 0) {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(strlen($birthday)) {
|
||||||
|
if(substr($birthday,0,4) != $contact['bdyear']) {
|
||||||
|
logger('consume_feed: updating birthday: ' . $birthday);
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* Add new birthday event for this person
|
||||||
|
*
|
||||||
|
* $bdtext is just a readable placeholder in case the event is shared
|
||||||
|
* with others. We will replace it during presentation to our $importer
|
||||||
|
* to contain a sparkle link and perhaps a photo.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
$bdtext = '[url=' . $contact['url'] . ']' . $contact['name'] . '[/url]' . t('\'s birthday');
|
||||||
|
|
||||||
|
|
||||||
|
$r = q("INSERT INTO `event` (`uid`,`cid`,`created`,`edited`,`start`,`finish`,`desc`,`type`)
|
||||||
|
VALUES ( %d, %d, '%s', '%s', '%s', '%s', '%s', '%s' ) ",
|
||||||
|
intval($contact['uid']),
|
||||||
|
intval($contact['id']),
|
||||||
|
dbesc(datetime_convert()),
|
||||||
|
dbesc(datetime_convert()),
|
||||||
|
dbesc(datetime_convert('UTC','UTC', $birthday)),
|
||||||
|
dbesc(datetime_convert('UTC','UTC', $birthday . ' + 1 day ')),
|
||||||
|
dbesc($bdtext),
|
||||||
|
dbesc('birthday')
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
// update bdyear
|
||||||
|
|
||||||
|
q("UPDATE `contact` SET `bdyear` = '%s' WHERE `uid` = %d AND `id` = %d LIMIT 1",
|
||||||
|
dbesc(substr($birthday,0,4)),
|
||||||
|
intval($contact['uid']),
|
||||||
|
intval($contact['id'])
|
||||||
|
);
|
||||||
|
|
||||||
|
// This function is called twice without reloading the contact
|
||||||
|
// Make sure we only create one event. This is why &$contact
|
||||||
|
// is a reference var in this function
|
||||||
|
|
||||||
|
$contact['bdyear'] = substr($birthday,0,4);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
// Now process the feed
|
// Now process the feed
|
||||||
if($feed->get_item_quantity()) {
|
if($feed->get_item_quantity()) {
|
||||||
|
|
||||||
|
|
|
@ -71,7 +71,9 @@ if(! $install) {
|
||||||
|
|
||||||
require_once("datetime.php");
|
require_once("datetime.php");
|
||||||
|
|
||||||
date_default_timezone_set(($default_timezone) ? $default_timezone : 'UTC');
|
$a->timezone = (($default_timezone) ? $default_timezone : 'UTC');
|
||||||
|
|
||||||
|
date_default_timezone_set($a->timezone);
|
||||||
|
|
||||||
$a->init_pagehead();
|
$a->init_pagehead();
|
||||||
|
|
||||||
|
|
|
@ -72,8 +72,11 @@ function openid_content(&$a) {
|
||||||
|
|
||||||
notice( t("Welcome back ") . $r[0]['username'] . EOL);
|
notice( t("Welcome back ") . $r[0]['username'] . EOL);
|
||||||
$a->user = $r[0];
|
$a->user = $r[0];
|
||||||
if(strlen($a->user['timezone']))
|
|
||||||
|
if(strlen($a->user['timezone'])) {
|
||||||
date_default_timezone_set($a->user['timezone']);
|
date_default_timezone_set($a->user['timezone']);
|
||||||
|
$a->timezone = $a->user['timezone'];
|
||||||
|
}
|
||||||
|
|
||||||
$r = q("SELECT * FROM `contact` WHERE `uid` = %s AND `self` = 1 LIMIT 1",
|
$r = q("SELECT * FROM `contact` WHERE `uid` = %s AND `self` = 1 LIMIT 1",
|
||||||
intval($_SESSION['uid']));
|
intval($_SESSION['uid']));
|
||||||
|
|
|
@ -228,6 +228,10 @@ function profile_content(&$a, $update = 0) {
|
||||||
|
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
if($is_owner && ! $update)
|
||||||
|
$o .= get_birthdays();
|
||||||
|
|
||||||
$cmnt_tpl = load_view_file('view/comment_item.tpl');
|
$cmnt_tpl = load_view_file('view/comment_item.tpl');
|
||||||
|
|
||||||
$like_tpl = load_view_file('view/like.tpl');
|
$like_tpl = load_view_file('view/like.tpl');
|
||||||
|
|
|
@ -1957,3 +1957,27 @@ a.mail-list-link {
|
||||||
#plugin-settings-link, #account-settings-link {
|
#plugin-settings-link, #account-settings-link {
|
||||||
margin-bottom: 25px;
|
margin-bottom: 25px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#birthday-title {
|
||||||
|
float: left;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
#birthday-adjust {
|
||||||
|
float: left;
|
||||||
|
font-size: 75%;
|
||||||
|
margin-left: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#birthday-title-end {
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
|
||||||
|
.birthday-list {
|
||||||
|
margin-left: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#birthday-wrapper {
|
||||||
|
margin-bottom: 15px;
|
||||||
|
}
|
||||||
|
|
|
@ -1854,3 +1854,27 @@ a.mail-list-link {
|
||||||
font-size: 120%;
|
font-size: 120%;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#birthday-title {
|
||||||
|
float: left;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
#birthday-adjust {
|
||||||
|
float: left;
|
||||||
|
font-size: 75%;
|
||||||
|
margin-left: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#birthday-title-end {
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
|
||||||
|
.birthday-list {
|
||||||
|
margin-left: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#birthday-wrapper {
|
||||||
|
margin-bottom: 15px;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue