]> git.mxchange.org Git - friendica.git/blobdiff - include/identity.php
provide local time for notifications
[friendica.git] / include / identity.php
index 580539c07155cbd4e106b08394b2ada65350401b..bf05a005160eb81d83e7a1012bf21052f98bba82 100644 (file)
@@ -71,8 +71,8 @@ function profile_load(&$a, $nickname, $profile = 0, $profiledata = array()) {
 
        $a->page['title'] = $a->profile['name'] . " @ " . $a->config['sitename'];
 
-//             if (!$profiledata)
-//                     $_SESSION['theme'] = $a->profile['theme'];
+               if (!$profiledata  && !get_pconfig(local_user(),'system','always_my_theme'))
+                       $_SESSION['theme'] = $a->profile['theme'];
 
        $_SESSION['mobile-theme'] = $a->profile['mobile-theme'];
 
@@ -138,7 +138,7 @@ function get_profiledata_by_nick($nickname, $uid = 0, $profile = 0) {
                                        $r = q("SELECT `profile-id` FROM `contact` WHERE `id` = %d LIMIT 1",
                                                intval($visitor['cid'])
                                        );
-                                       if(count($r))
+                                       if (dbm::is_result($r))
                                                $profile = $r[0]['profile-id'];
                                        break;
                                }
@@ -149,17 +149,23 @@ function get_profiledata_by_nick($nickname, $uid = 0, $profile = 0) {
 
        if($profile) {
                $profile_int = intval($profile);
-               $r = q("SELECT `profile`.`uid` AS `profile_uid`, `profile`.* , `contact`.`avatar-date` AS picdate, `contact`.`addr`, `user`.* FROM `profile`
-                               INNER JOIN `contact` on `contact`.`uid` = `profile`.`uid` INNER JOIN `user` ON `profile`.`uid` = `user`.`uid`
-                               WHERE `user`.`nickname` = '%s' AND `profile`.`id` = %d AND `contact`.`self` = 1 LIMIT 1",
+               $r = q("SELECT `contact`.`id` AS `contact_id`, `profile`.`uid` AS `profile_uid`, `profile`.*,
+                               `contact`.`avatar-date` AS picdate, `contact`.`addr`, `user`.*
+                       FROM `profile`
+                       INNER JOIN `contact` on `contact`.`uid` = `profile`.`uid` AND `contact`.`self`
+                       INNER JOIN `user` ON `profile`.`uid` = `user`.`uid`
+                       WHERE `user`.`nickname` = '%s' AND `profile`.`id` = %d LIMIT 1",
                                dbesc($nickname),
                                intval($profile_int)
                );
        }
-       if((!$r) && (!count($r))) {
-               $r = q("SELECT `profile`.`uid` AS `profile_uid`, `profile`.* , `contact`.`avatar-date` AS picdate, `contact`.`addr`, `user`.* FROM `profile`
-                               INNER JOIN `contact` ON `contact`.`uid` = `profile`.`uid` INNER JOIN `user` ON `profile`.`uid` = `user`.`uid`
-                               WHERE `user`.`nickname` = '%s' AND `profile`.`is-default` = 1 AND `contact`.`self` = 1 LIMIT 1",
+       if (!dbm::is_result($r)) {
+               $r = q("SELECT `contact`.`id` AS `contact_id`, `profile`.`uid` AS `profile_uid`, `profile`.*,
+                               `contact`.`avatar-date` AS picdate, `contact`.`addr`, `user`.*
+                       FROM `profile`
+                       INNER JOIN `contact` ON `contact`.`uid` = `profile`.`uid` AND `contact`.`self`
+                       INNER JOIN `user` ON `profile`.`uid` = `user`.`uid`
+                       WHERE `user`.`nickname` = '%s' AND `profile`.`is-default` LIMIT 1",
                                dbesc($nickname)
                );
        }
@@ -230,7 +236,7 @@ function profile_sidebar($profile, $block = 0) {
 
                $r = q("SELECT * FROM `contact` WHERE NOT `pending` AND `uid` = %d AND `nurl` = '%s'",
                        local_user(), $profile_url);
-               if (count($r))
+               if (dbm::is_result($r))
                        $connect = false;
        }
 
@@ -283,7 +289,7 @@ function profile_sidebar($profile, $block = 0) {
                        'entries' => array(),
                );
 
-               if(count($r)) {
+               if (dbm::is_result($r)) {
 
                        foreach($r as $rr) {
                                $profile['menu']['entries'][] = array(
@@ -310,15 +316,8 @@ function profile_sidebar($profile, $block = 0) {
                );
        }
 
-       // check if profile is a forum
-       if((intval($profile['page-flags']) == PAGE_COMMUNITY)
-                       || (intval($profile['page-flags']) == PAGE_PRVGROUP)
-                       || (isset($profile['forum']) && intval($profile['forum']))
-                       || (isset($profile['prv']) && intval($profile['prv']))
-                       || (isset($profile['community']) && intval($profile['community'])))
-               $account_type = t('Forum');
-       else
-               $account_type = "";
+       // Fetch the account type
+       $account_type = account_type($profile);
 
        if((x($profile,'address') == 1)
                        || (x($profile,'location') == 1)
@@ -337,6 +336,8 @@ function profile_sidebar($profile, $block = 0) {
 
        $about = ((x($profile,'about') == 1) ?  t('About:') : False);
 
+       $xmpp = ((x($profile,'xmpp') == 1) ?  t('XMPP:') : False);
+
        if(($profile['hidewall'] || $block) && (! local_user()) && (! remote_user())) {
                $location = $pdesc = $gender = $marital = $homepage = $about = False;
        }
@@ -345,18 +346,21 @@ function profile_sidebar($profile, $block = 0) {
                        ? trim(substr($profile['name'],0,strpos($profile['name'],' '))) : $profile['name']);
        $lastname = (($firstname === $profile['name']) ? '' : trim(substr($profile['name'],strlen($firstname))));
 
-       $diaspora = array(
-               'guid' => $profile['guid'],
-               'podloc' => $a->get_baseurl(),
-               'searchable' => (($profile['publish'] && $profile['net-publish']) ? 'true' : 'false' ),
-               'nickname' => $profile['nickname'],
-               'fullname' => $profile['name'],
-               'firstname' => $firstname,
-               'lastname' => $lastname,
-               'photo300' => $a->get_baseurl() . '/photo/custom/300/' . $profile['uid'] . '.jpg',
-               'photo100' => $a->get_baseurl() . '/photo/custom/100/' . $profile['uid'] . '.jpg',
-               'photo50' => $a->get_baseurl() . '/photo/custom/50/'  . $profile['uid'] . '.jpg',
-       );
+       if ($profile['guid'] != "")
+               $diaspora = array(
+                       'guid' => $profile['guid'],
+                       'podloc' => $a->get_baseurl(),
+                       'searchable' => (($profile['publish'] && $profile['net-publish']) ? 'true' : 'false' ),
+                       'nickname' => $profile['nickname'],
+                       'fullname' => $profile['name'],
+                       'firstname' => $firstname,
+                       'lastname' => $lastname,
+                       'photo300' => $a->get_baseurl() . '/photo/custom/300/' . $profile['uid'] . '.jpg',
+                       'photo100' => $a->get_baseurl() . '/photo/custom/100/' . $profile['uid'] . '.jpg',
+                       'photo50' => $a->get_baseurl() . '/photo/custom/50/'  . $profile['uid'] . '.jpg',
+               );
+       else
+               $diaspora = false;
 
        if (!$block){
                $contact_block = contact_block();
@@ -364,17 +368,17 @@ function profile_sidebar($profile, $block = 0) {
                if(is_array($a->profile) AND !$a->profile['hide-friends']) {
                        $r = q("SELECT `gcontact`.`updated` FROM `contact` INNER JOIN `gcontact` WHERE `gcontact`.`nurl` = `contact`.`nurl` AND `self` AND `uid` = %d LIMIT 1",
                                intval($a->profile['uid']));
-                       if(count($r))
+                       if (dbm::is_result($r))
                                $updated =  date("c", strtotime($r[0]['updated']));
 
-                       $r = q("SELECT COUNT(*) AS `total` FROM `contact` WHERE `uid` = %d AND `self` = 0 AND `blocked` = 0 AND `pending` = 0 AND `hidden` = 0 AND `archive` = 0
+                       $r = q("SELECT COUNT(*) AS `total` FROM `contact` WHERE `uid` = %d AND NOT `self` AND NOT `blocked` AND NOT `hidden` AND NOT `archive`
                                        AND `network` IN ('%s', '%s', '%s', '')",
                                intval($profile['uid']),
                                dbesc(NETWORK_DFRN),
                                dbesc(NETWORK_DIASPORA),
                                dbesc(NETWORK_OSTATUS)
                        );
-                       if(count($r))
+                       if (dbm::is_result($r))
                                $contacts = intval($r[0]['total']);
                }
        }
@@ -402,6 +406,7 @@ function profile_sidebar($profile, $block = 0) {
        $tpl = get_markup_template('profile_vcard.tpl');
        $o .= replace_macros($tpl, array(
                '$profile' => $p,
+               '$xmpp' => $xmpp,
                '$connect'  => $connect,
                '$remoteconnect'  => $remoteconnect,
                '$subscribe_feed' => $subscribe_feed,
@@ -455,7 +460,7 @@ function get_birthdays() {
                        dbesc(datetime_convert('UTC','UTC','now'))
        );
 
-       if($r && count($r)) {
+       if (dbm::is_result($r)) {
                $total = 0;
                $now = strtotime('now');
                $cids = array();
@@ -538,7 +543,7 @@ function get_events() {
                        dbesc(datetime_convert('UTC','UTC','now - 1 days'))
        );
 
-       if($r && count($r)) {
+       if (dbm::is_result($r)) {
                $now = strtotime('now');
                $istoday = false;
                foreach($r as $rr) {
@@ -684,6 +689,8 @@ function advanced_profile(&$a) {
 
                return replace_macros($tpl, array(
                        '$title' => t('Profile'),
+                       '$basic' => t('Basic'),
+                       '$advanced' => t('Advanced'),
                        '$profile' => $profile
                ));
        }
@@ -737,8 +744,8 @@ function profile_tabs($a, $is_owner=False, $nickname=Null){
                ),
        );
 
-       if ($is_owner){
-               if ($a->theme_events_in_profile)
+       // the calendar link for the full featured events calendar
+       if ($is_owner && $a->theme_events_in_profile) {
                        $tabs[] = array(
                                'label' => t('Events'),
                                'url'   => $a->get_baseurl() . '/events',
@@ -747,6 +754,20 @@ function profile_tabs($a, $is_owner=False, $nickname=Null){
                                'id' => 'events-tab',
                                'accesskey' => 'e',
                        );
+       // if the user is not the owner of the calendar we only show a calendar
+       // with the public events of the calendar owner
+       } elseif (! $is_owner) {
+               $tabs[] = array(
+                               'label' => t('Events'),
+                               'url'   => $a->get_baseurl() . '/cal/' . $nickname,
+                               'sel'   =>((!isset($tab)&&$a->argv[0]=='cal')?'active':''),
+                               'title' => t('Events and Calendar'),
+                               'id' => 'events-tab',
+                               'accesskey' => 'e',
+                       );
+       }
+
+       if ($is_owner){
                $tabs[] = array(
                        'label' => t('Personal Notes'),
                        'url'   => $a->get_baseurl() . '/notes',
@@ -792,14 +813,13 @@ function zrl_init(&$a) {
 
                $result = Cache::get("gprobe:".$urlparts["host"]);
                if (!is_null($result)) {
-                       $result = unserialize($result);
                        if (in_array($result["network"], array(NETWORK_FEED, NETWORK_PHANTOM))) {
                                logger("DDoS attempt detected for ".$urlparts["host"]." by ".$_SERVER["REMOTE_ADDR"].". server data: ".print_r($_SERVER, true), LOGGER_DEBUG);
                                return;
                        }
                }
 
-               proc_run('php','include/gprobe.php',bin2hex($tmp_str));
+               proc_run(PRIORITY_LOW, 'include/gprobe.php',bin2hex($tmp_str));
                $arr = array('zrl' => $tmp_str, 'url' => $a->cmd);
                call_hooks('zrl_init',$arr);
        }