]> git.mxchange.org Git - friendica.git/commitdiff
functionise birthday
authorFriendika <info@friendika.com>
Mon, 7 Feb 2011 06:41:07 +0000 (22:41 -0800)
committerFriendika <info@friendika.com>
Mon, 7 Feb 2011 06:41:07 +0000 (22:41 -0800)
boot.php
include/items.php
include/notifier.php

index 5327688ddd078c439c0c2e40760ee0e3a621de12..4dcd6db66094946eaa7c3bd848fd9f921ce4f401 100644 (file)
--- a/boot.php
+++ b/boot.php
@@ -2323,3 +2323,46 @@ function current_theme_url() {
        
 }}
 
+if(! function_exists('feed_birthday')) {
+function feed_birthday($uid,$tz) {
+
+       /**
+        *
+        * Determine the next birthday, but only if the birthday is published
+        * in the default profile. We _could_ also look for a private profile that the
+        * recipient can see, but somebody could get mad at us if they start getting
+        * public birthday greetings when they haven't made this info public. 
+        *
+        * Assuming we are able to publish this info, we are then going to convert
+        * the start time from the owner's timezone to UTC. 
+        *
+        * This will potentially solve the problem found with some social networks
+        * where birthdays are converted to the viewer's timezone and salutations from
+        * elsewhere in the world show up on the wrong day. We will convert it to the
+        * viewer's timezone also, but first we are going to convert it from the birthday
+        * person's timezone to GMT - so the viewer may find the birthday starting at
+        * 6:00PM the day before, but that will correspond to midnight to the birthday person.
+        *
+        */
+
+       $birthday = '';
+
+       $p = q("SELECT `dob` FROM `profile` WHERE `is-default` = 1 AND `uid` = %d LIMIT 1",
+               intval($uid)
+       );
+
+       if($p && count($p)) {
+               $tmp_dob = substr($p[0]['dob'],5);
+               if(intval($tmp_dob)) {
+                       $y = datetime_convert($tz,$tz,'now','Y');
+                       $bd = $y . '-' . $tmp_dob . ' 00:00';
+                       $t_dob = strtotime($bd);
+                       $now = strtotime(datetime_convert($tz,$tz,'now'));
+                       if($t_dob < $now)
+                               $bd = $y + 1 . '-' . $tmp_dob . ' 00:00';
+                       $birthday = datetime_convert($tz,'UTC',$bd,ATOM_TIME); 
+               }
+       }
+
+       return $birthday;
+}}
\ No newline at end of file
index 15fd262f4c0d35958f545f476d28c5698c893844..5b99ca17148bf4bf76bd1765a83da740e8bbdca5 100644 (file)
@@ -37,44 +37,7 @@ function get_feed_for(&$a, $dfrn_id, $owner_nick, $last_update, $direction = 0)
        else
                killme();
 
-
-       /**
-        *
-        * Determine the next birthday, but only if the birthday is published
-        * in the default profile. We _could_ also look for a private profile that the
-        * recipient can see, but somebody could get mad at us if they start getting
-        * public birthday greetings when they haven't made this info public. 
-        *
-        * Assuming we are able to publish this info, we are then going to convert
-        * the start time from the owner's timezone to UTC. 
-        *
-        * This will potentially solve the problem found with some social networks
-        * where birthdays are converted to the viewer's timezone and salutations from
-        * elsewhere in the world show up on the wrong day. We will convert it to the
-        * viewer's timezone also, but first we are going to convert it from the birthday
-        * person's timezone to GMT - so the viewer may find the birthday starting at
-        * 6:00PM the day before, but that will correspond to midnight to the birthday person.
-        *
-        */
-
-       $birthday = '';
-
-       $p = q("SELECT `dob` FROM `profile` WHERE `is-default` = 1 AND `uid` = %d LIMIT 1",
-               intval($owner_id)
-       );
-
-       if($p && count($p)) {
-               $tmp_dob = substr($p[0]['dob'],5);
-               if(intval($tmp_dob)) {
-                       $y = datetime_convert($owner_tz,$owner_tz,'now','Y');
-                       $bd = $y . '-' . $tmp_dob . ' 00:00';
-                       $t_dob = strtotime($bd);
-                       $now = strtotime(datetime_convert($owner_tz,$owner_tz,'now'));
-                       if($t_dob < $now)
-                               $bd = $y + 1 . '-' . $tmp_dob . ' 00:00';
-                       $birthday = datetime_convert($owner_tz,'UTC',$bd,ATOM_TIME); 
-               }
-       }
+       $birthday = feed_birthday($owner_id,$owner_tz);
 
        if($dfrn_id && $dfrn_id != '*') {
 
index 07bde7c4d669019fcd4c5798984e6347f831e4c4..ca0aa0df38b661b0d927da0addfa6273d4e2ad28 100644 (file)
@@ -87,7 +87,7 @@ function notifier_run($argv, $argc){
                }
        }
 
-       $r = q("SELECT `contact`.*, `user`.`nickname`, `user`.`sprvkey`, `user`.`spubkey`, `user`.`page-flags` 
+       $r = q("SELECT `contact`.*, `user`.`timezone`, `user`.`nickname`, `user`.`sprvkey`, `user`.`spubkey`, `user`.`page-flags` 
                FROM `contact` LEFT JOIN `user` ON `user`.`uid` = `contact`.`uid` 
                WHERE `contact`.`uid` = %d AND `contact`.`self` = 1 LIMIT 1",
                intval($uid)
@@ -194,6 +194,10 @@ function notifier_run($argv, $argc){
                }
        }
 
+       $birthday = feed_birthday($owner['uid'],$owner['timezone']);
+       if($birthday)
+               $birthday = '<dfrn:birthday>' . xmlify($birthday) . '</dfrn:birthday>';
+
        $atom .= replace_macros($feed_template, array(
                        '$version'      => xmlify(FRIENDIKA_VERSION),
                        '$feed_id'      => xmlify($a->get_baseurl() . '/profile/' . $owner['nickname'] ),
@@ -208,7 +212,7 @@ function notifier_run($argv, $argc){
                        '$picdate'      => xmlify(datetime_convert('UTC','UTC',$owner['avatar-date'] . '+00:00' , ATOM_TIME)) ,
                        '$uridate'      => xmlify(datetime_convert('UTC','UTC',$owner['uri-date']    . '+00:00' , ATOM_TIME)) ,
                        '$namdate'      => xmlify(datetime_convert('UTC','UTC',$owner['name-date']   . '+00:00' , ATOM_TIME)) ,
-                       '$birthday'     => ''
+                       '$birthday'     => $birthday
        ));
 
        if($cmd === 'mail') {