function _loginNotice($user) { if ($GLOBALS['prefs']->getValue('login_notify') != 1 || !$GLOBALS['registry']->hasInterface('letter')) { return; } require_once FOLKS_BASE . '/lib/Friends.php'; $friends_driver = Folks_Friends::singleton(); $friends = $friends_driver->getFriends(); if ($friends instanceof PEAR_Error) { return $friends; } elseif (empty($friends)) { return true; } $users = $GLOBALS['folks_driver']->getOnlineUsers(); if ($users instanceof PEAR_Error) { return $users; } elseif (empty($users)) { return true; } $notify = array(); foreach ($friends as $friend) { if (array_key_exists($friend, $users)) { $notify[] = $friend; } } if (empty($notify)) { return true; } $body = _("User %s just logged in.\n%s"); $params = array($notify, array('title' => _("Login reminder"), 'content' => sprintf($body, $user, Folks::getUrlFor('user', $user, true)))); $GLOBALS['registry']->callByPackage('letter', 'sendMessage', $params); }
/** */ protected function _content() { require_once __DIR__ . '/../base.php'; $friends_driver = Folks_Friends::singleton(); $friend_list = $friends_driver->getFriends(); if ($friend_list instanceof PEAR_Error) { return $friend_list; } // Get friends activities $list = array(); foreach ($friend_list as $user) { $activities = $GLOBALS['folks_driver']->getActivity($user); if ($activities instanceof PEAR_Error) { return $activities; } foreach ($activities as $activity) { $list[$activity['activity_date']] = $activity; } } krsort($list); $list = array_slice($list, 0, $this->_params['limit']); $GLOBALS['page_output']->addScriptFile('stripe.js', 'horde'); ob_start(); require FOLKS_TEMPLATES . '/block/activities.php'; return ob_get_clean(); }
/** */ protected function _content() { require_once __DIR__ . '/../base.php'; $friends_driver = Folks_Friends::singleton(); $list = $friends_driver->getPossibleFriends(20); if ($list instanceof PEAR_Error) { return $list; } // Prepare actions $actions = array(array('url' => Horde::url('edit/friends/add.php'), 'id' => 'user', 'name' => _("Add friend")), array('url' => Horde::url('user.php'), 'id' => 'user', 'name' => _("View profile"))); if ($GLOBALS['registry']->hasInterface('letter')) { $actions[] = array('url' => $GLOBALS['registry']->callByPackage('letter', 'compose', ''), 'id' => 'user_to', 'name' => _("Send message")); } $GLOBALS['page_output']->addScriptFile('stripe.js', 'horde'); ob_start(); require FOLKS_TEMPLATES . '/block/users.php'; return ob_get_clean(); }
/** */ protected function _content() { require_once __DIR__ . '/../base.php'; $friends_driver = Folks_Friends::singleton(); $friends = $friends_driver->getFriends(); if ($friends instanceof PEAR_Error) { return $friends; } $users = $GLOBALS['folks_driver']->getOnlineUsers(); if ($users instanceof PEAR_Error) { return $users; } if (empty($this->_params['display']) || $this->_params['display'] == 'all') { $list = $friends; } else { $list = array(); foreach ($friends as $friend) { if ($this->_params['display'] == 'online') { if (array_key_exists($friend, $users)) { $list[] = $friend; } } elseif ($this->_params['display'] == 'offline') { if (!array_key_exists($friend, $users)) { $list[] = $friend; } } } } // Prepare actions $actions = array(array('url' => Horde::url('user.php'), 'id' => 'user', 'name' => _("View profile"))); if ($GLOBALS['registry']->hasInterface('letter')) { $actions[] = array('url' => $GLOBALS['registry']->callByPackage('letter', 'compose', ''), 'id' => 'user_to', 'name' => _("Send message")); } $GLOBALS['page_output']->addScriptFile('stripe.js', 'horde'); ob_start(); require FOLKS_TEMPLATES . '/block/users.php'; return ob_get_clean(); }
/** * Return all friends of out frends * and make a top list of common users * * @param int $limit Users * * @return array users */ public function getPossibleFriends($limit = 0) { $possibilities = array(); $my_list = $this->getFriends(); if ($my_list instanceof PEAR_Error) { return $my_list; } foreach ($my_list as $friend) { $friends = Folks_Friends::singleton(null, array('user' => $friend)); $friend_friends = $friends->getFriends(); if ($friend_friends instanceof PEAR_Error) { continue; } foreach ($friend_friends as $friend_friend) { if ($friend_friend == $this->_user || in_array($friend_friend, $my_list)) { continue; } elseif (isset($possibilities[$friend_friend])) { $possibilities[$friend_friend] += 1; } else { $possibilities[$friend_friend] = 0; } } } arsort($possibilities); if ($limit) { $possibilities = array_slice($possibilities, 0, $limit, true); $possibilities = array_keys($possibilities); } return $possibilities; }
} $title = _("Friends"); $vars = Horde_Variables::getDefaultVariables(); $form = new Folks_Activity_Form($vars, _("What are you doing right now?"), 'short'); if ($form->validate()) { $result = $form->execute(); if ($result instanceof PEAR_Error) { $notification->push($result); } else { $notification->push(_("Activity successfully posted"), 'horde.success'); Horde::url('friends.php')->redirect(); } } // Load driver require_once FOLKS_BASE . '/lib/Friends.php'; $friends = Folks_Friends::singleton(); // Get friends $friend_list = $friends->getFriends(); if ($friend_list instanceof PEAR_Error) { $notification->push($friend_list); $friend_list = array(); } // Get friends activities $firendActivities = array(); foreach ($friend_list as $user) { $activities = $folks_driver->getActivity($user); if ($activities instanceof PEAR_Error) { continue; } foreach ($activities as $activity) { $firendActivities[$activity['activity_date']] = $activity;
* did not receive this file, see http://www.horde.org/licenses/gpl. * * @author Duck <*****@*****.**> * @package Folks */ $folks_authentication = 'none'; require_once __DIR__ . '/../lib/base.php'; $auth = $injector->getInstance('Horde_Core_Factory_Auth')->create(); if (!$GLOBALS['registry']->getAuth() && (!isset($_SERVER['PHP_AUTH_USER']) || !$auth->authenticate($_SERVER['PHP_AUTH_USER'], array('password' => isset($_SERVER['PHP_AUTH_PW']) ? $_SERVER['PHP_AUTH_PW'] : null)))) { header('WWW-Authenticate: Basic realm="Letter RSS Interface"'); header('HTTP/1.0 401 Unauthorized'); echo '401 Unauthorized'; exit; } require_once FOLKS_BASE . '/lib/Friends.php'; $friends_driver = Folks_Friends::singleton(); // Get friends $friend_list = $friends_driver->getFriends(); if ($friend_list instanceof PEAR_Error) { $notification->push($friend_list); $friend_list = array(); } // Get friends activities $firendActivities = array(); foreach ($friend_list as $user) { $activities = $folks_driver->getActivity($user); if ($activities instanceof PEAR_Error) { continue; } foreach ($activities as $activity) { $firendActivities[$activity['activity_date']] = array('message' => $activity['activity_message'], 'scope' => $activity['activity_scope'], 'user' => $user);
/** * Lists users with birthdays/goout dates as time objects. * * @param array $categories The time categories (from listTimeObjectCategories) to list. * @param Horde_Date $start The start date of the period. * @param Horde_Date $end The end date of the period. */ public function listTimeObjects($categories, $start, $end) { require_once __DIR__ . '/base.php'; require_once FOLKS_BASE . '/lib/Friends.php'; $friends_driver = Folks_Friends::singleton('sql'); $friends = $friends_driver->getFriends(); if ($friends instanceof PEAR_Error) { return array(); } $objects = array(); foreach ($friends as $friend) { $user = $GLOBALS['folks_driver']->getProfile($friend); if ($user instanceof PEAR_Error) { continue; } $user['user_birthday'] = date('Y') . substr($user['user_birthday'], 4); $born = strtotime($user['user_birthday']); if ($born === false || $born < $start->timestamp() || $born > $end->timestamp()) { continue; } $age = Folks::calcAge($user['user_birthday']); $desc = $age['age'] . ' (' . $age['sign'] . ')'; $objects[$friend] = array('title' => $friend, 'description' => $desc, 'id' => $friend, 'start' => date('Y-m-d\\TH:i:s', $born), 'end' => date('Y-m-d\\TH:i:s', $born + 1), 'params' => array('user' => $friend), 'link' => Folks::getUrlFor('user', $friend, true)); } return $objects; }
* did not receive this file, see http://www.horde.org/licenses/gpl. * * @author Duck <*****@*****.**> * @package Folks */ require_once __DIR__ . '/lib/base.php'; // Load profile $user = Horde_Util::getFormData('user', $GLOBALS['registry']->getAuth()); $profile = $folks_driver->getProfile($user); if ($profile instanceof PEAR_Error) { $notification->push($profile); Folks::getUrlFor('list', 'list')->redirect(); } // Load its friend list require_once FOLKS_BASE . '/lib/Friends.php'; $friends_driver = Folks_Friends::singleton(null, array('user' => $user)); // Log user view $folks_driver->logView($user); // Get user activity if ($profile['activity_log'] == 'all' || $registry->isAuthenticated() && ($profile['activity_log'] == 'authenticated' || $profile['activity_log'] == 'friends' && $friends_driver->isFriend($user))) { $profile['activity_log'] = $folks_driver->getActivity($user); if ($profile['activity_log'] instanceof PEAR_Error) { $notification->push($profile); $profile['activity_log'] = array(); } } else { $profile['activity_log'] = array(); } // Prepare an process activity form if ($user == $GLOBALS['registry']->getAuth()) { require_once FOLKS_BASE . '/lib/Forms/Activity.php';
header('HTTP/1.0 401 Unauthorized'); echo '401 Unauthorized'; exit; } require_once FOLKS_BASE . '/lib/Friends.php'; $friends_driver = Folks_Friends::singleton(); // Get friends $my_list = $friends_driver->getFriends(); if ($my_list instanceof PEAR_Error) { $notification->push($my_list); $my_list = array(); } // Get all friends of frends and make a top list of common users $users = array(); foreach ($my_list as $friend) { $friends = Folks_Friends::singleton(null, array('user' => $friend)); $friend_friends = $friends->getFriends(); if ($friend_friends instanceof PEAR_Error) { continue; } foreach ($friend_friends as $friend_friend) { if ($friend_friend == $GLOBALS['registry']->getAuth() || in_array($friend_friend, $my_list)) { continue; } elseif (isset($users[$friend_friend])) { $users[$friend_friend] += 1; } else { $users[$friend_friend] = 0; } } } arsort($users);