Example #1
0
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);
}
Example #2
0
 /**
  */
 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();
 }
Example #3
0
 /**
  */
 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();
 }
Example #4
0
 /**
  */
 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();
 }
Example #5
0
 /**
  * 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;
 }
Example #6
0
}
$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;
Example #7
0
File: sql.php Project: horde/horde
 /**
  * Constructs a new SQL storage object.
  *
  * @param array $params  A hash containing connection parameters.
  */
 protected function __construct($params = array())
 {
     parent::__construct($params);
     $this->_params = $params;
     $this->_connect();
 }
Example #8
0
 * 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);
Example #9
0
 /**
  * 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;
 }
Example #10
0
 * 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';
Example #11
0
    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);