diff options
-rw-r--r-- | boot.php | 58 | ||||
-rw-r--r-- | include/auth.php | 10 | ||||
-rw-r--r-- | index.php | 4 | ||||
-rw-r--r-- | mod/openid.php | 5 | ||||
-rw-r--r-- | mod/profile.php | 4 | ||||
-rw-r--r-- | view/theme/default/style.css | 24 | ||||
-rw-r--r-- | view/theme/duepuntozero/style.css | 24 |
7 files changed, 125 insertions, 4 deletions
@@ -182,6 +182,7 @@ class App { public $strings; public $path; public $hooks; + public $timezone; 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; + +}} + diff --git a/include/auth.php b/include/auth.php index d2bcb68dc..a0244571b 100644 --- a/include/auth.php +++ b/include/auth.php @@ -53,8 +53,11 @@ if((isset($_SESSION)) && (x($_SESSION,'authenticated')) && ((! (x($_POST,'auth-p $a->user = $r[0]; $_SESSION['theme'] = $a->user['theme']; $_SESSION['page_flags'] = $a->user['page-flags']; - if(strlen($a->user['timezone'])) + + if(strlen($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']; @@ -183,8 +186,11 @@ else { notice( t("Welcome back ") . $record['username'] . EOL); $a->user = $record; - if(strlen($a->user['timezone'])) + + if(strlen($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", intval($_SESSION['uid'])); @@ -71,7 +71,9 @@ if(! $install) { 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(); diff --git a/mod/openid.php b/mod/openid.php index 91efbbbc4..2e1025692 100644 --- a/mod/openid.php +++ b/mod/openid.php @@ -72,8 +72,11 @@ function openid_content(&$a) { notice( t("Welcome back ") . $r[0]['username'] . EOL); $a->user = $r[0]; - if(strlen($a->user['timezone'])) + + if(strlen($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", intval($_SESSION['uid'])); diff --git a/mod/profile.php b/mod/profile.php index e8eee810b..9b8388177 100644 --- a/mod/profile.php +++ b/mod/profile.php @@ -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'); $like_tpl = load_view_file('view/like.tpl'); diff --git a/view/theme/default/style.css b/view/theme/default/style.css index 240ace896..fd14c6bdd 100644 --- a/view/theme/default/style.css +++ b/view/theme/default/style.css @@ -1957,3 +1957,27 @@ a.mail-list-link { #plugin-settings-link, #account-settings-link { 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; +} diff --git a/view/theme/duepuntozero/style.css b/view/theme/duepuntozero/style.css index f64ad3fb8..37670df01 100644 --- a/view/theme/duepuntozero/style.css +++ b/view/theme/duepuntozero/style.css @@ -1854,3 +1854,27 @@ a.mail-list-link { font-size: 120%; 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; +} |