From: Duck (Jakob Munih) Date: Sun, 22 Feb 2009 13:47:04 +0000 (+0100) Subject: Create a lists of people someone know from user's friends list. X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=3db24c99804513a59a17269fb4db5aa423750a63;p=horde.git Create a lists of people someone know from user's friends list. Clean up friends list template --- diff --git a/folks/edit/friends/blacklist.php b/folks/edit/friends/blacklist.php index ce5267a32..2dbd1cc67 100644 --- a/folks/edit/friends/blacklist.php +++ b/folks/edit/friends/blacklist.php @@ -68,9 +68,18 @@ if ($groups instanceof PEAR_Error) { $groups = array(); } -$friend_form = new Folks_AddFriend_Form($vars, _("Add or remove user"), 'blacklist'); +// Prepare actions +$actions = array( + array('url' => Horde::applicationUrl('edit/friends/blacklist.php'), + 'img' => Horde::img('delete.png', '', '', $registry->getImageDir('horde')), + 'id' => 'user', + 'name' => _("Remove")), + array('url' => Horde::applicationUrl('user.php'), + 'img' => Horde::img('user.png', '', '', $registry->getImageDir('horde')), + 'id' => 'user', + 'name' => _("Profile"))); -Horde::addScriptFile('tables.js', 'horde', true); +$friend_form = new Folks_AddFriend_Form($vars, _("Add or remove user"), 'blacklist'); require FOLKS_TEMPLATES . '/common-header.inc'; require FOLKS_TEMPLATES . '/menu.inc'; diff --git a/folks/edit/friends/for.php b/folks/edit/friends/for.php index f6ee604a0..16a35e567 100644 --- a/folks/edit/friends/for.php +++ b/folks/edit/friends/for.php @@ -16,25 +16,37 @@ require_once FOLKS_BASE . '/edit/tabs.php'; $title = _("Users waiting our approval"); -$letter_url = ''; -$profile_img = Horde::img('user.png', '', '', $registry->getImageDir('horde')); -if ($registry->hasInterface('letter')) { - $letter_url = $registry->get('webroot', 'letter') . '/compose.php'; - $letter_img = Horde::img('letter.png', '', '', $registry->getImageDir('letter')); -} - // Load driver require_once FOLKS_BASE . '/lib/Friends.php'; $friends = Folks_Friends::singleton(); // Get list -$list = $friends->waitingApprovalFrom(); +$list = $friends->waitingApprovalFor(); if ($list instanceof PEAR_Error) { $notification->push($list); $list = array(); } -Horde::addScriptFile('tables.js', 'horde', true); +// Prepare actions +$actions = array( + array('url' => Horde::applicationUrl('user.php'), + 'img' => Horde::img('user.png', '', '', $registry->getImageDir('horde')), + 'id' => 'user', + 'name' => _("Profile")), + array('url' => Horde::applicationUrl('edit/friends/approve.php'), + 'img' => Horde::img('tick.png', '', '', $registry->getImageDir('horde')), + 'id' => 'user', + 'name' => _("Approve")), + array('url' => Horde::applicationUrl('edit/friends/reject.php'), + 'img' => Horde::img('cross.png', '', '', $registry->getImageDir('horde')), + 'id' => 'user', + 'name' => _("Reject"))); +if ($registry->hasInterface('letter')) { + $actions[] = array('url' => Horde::applicationUrl('user.php'), + 'img' => Horde::img('letter.png', '', '', $registry->getImageDir('letter')), + 'id' => 'user_to', + 'name' => $registry->get('name', 'letter')); +} require FOLKS_TEMPLATES . '/common-header.inc'; require FOLKS_TEMPLATES . '/menu.inc'; diff --git a/folks/edit/friends/friends.php b/folks/edit/friends/friends.php index 85b1eb5af..73c6b9dc4 100644 --- a/folks/edit/friends/friends.php +++ b/folks/edit/friends/friends.php @@ -16,54 +16,11 @@ require_once FOLKS_BASE . '/lib/Forms/AddFriend.php'; require_once FOLKS_BASE . '/edit/tabs.php'; $title = _("Friends"); -$remove_url = Horde::applicationUrl('edit/friends/index.php'); -$remove_img = Horde::img('delete.png', '', '', $registry->getImageDir('horde')); -$profile_img = Horde::img('user.png', '', '', $registry->getImageDir('horde')); -$letter_url = ''; -if ($registry->hasInterface('letter')) { - $letter_url = $registry->get('webroot', 'letter') . '/compose.php'; - $letter_img = Horde::img('letter.png', '', '', $registry->getImageDir('letter')); -} // Load driver require_once FOLKS_BASE . '/lib/Friends.php'; $friends = Folks_Friends::singleton(); -// Perform action -$user = Util::getGet('user'); -if ($user) { - if ($friends->isFriend($user)) { - $result = $friends->removeFriend($user); - if ($result instanceof PEAR_Error) { - $notification->push($result); - } else { - $notification->push(sprintf(_("User \"%s\" was removed from your friend list."), $user), 'horde.success'); - } - } else { - $result = $friends->addFriend($user); - if ($result instanceof PEAR_Error) { - $notification->push($result); - } elseif ($friends->needsApproval($user)) { - $notification->push(sprintf(_("A confirmation was send to \"%s\"."), $user), 'horde.warning'); - $title = sprintf(_("%s added you as a friend on %s"), - Auth::getAuth(), - $GLOBALS['registry']->get('name', 'horde')); - $body = sprintf(_("User %s added you to his firends list on %s. \nTo approve, go to: %s \nTo reject, go to: %s \nTo see to his profile, go to: %s \n"), - Auth::getAuth(), - $registry->get('name', 'horde'), - Util::addParameter(Horde::applicationUrl('edit/friends/approve.php', true, -1), 'user', Auth::getAuth()), - Util::addParameter(Horde::applicationUrl('edit/friends/reject.php', true, -1), 'user', Auth::getAuth()), - Folks::getUrlFor('user', Auth::getAuth(), true, -1)); - $friends->sendNotification($user, $title, $body); - } else { - $notification->push(sprintf(_("User \"%s\" was added as your friend."), $user), 'horde.success'); - } - } - - header('Location: ' . Horde::applicationUrl('edit/friends/index.php')); - exit; -} - // Get friends $list = $friends->getFriends(); if ($list instanceof PEAR_Error) { @@ -71,9 +28,22 @@ if ($list instanceof PEAR_Error) { $list = array(); } -$form = new Folks_AddFriend_Form($vars, _("Add or remove user"), 'blacklist'); - -Horde::addScriptFile('tables.js', 'horde', true); +// Prepare actions +$actions = array( + array('url' => Horde::applicationUrl('edit/friends/add.php'), + 'img' => Horde::img('delete.png', '', '', $registry->getImageDir('horde')), + 'id' => 'user', + 'name' => _("Remove")), + array('url' => Horde::applicationUrl('user.php'), + 'img' => Horde::img('user.png', '', '', $registry->getImageDir('horde')), + 'id' => 'user', + 'name' => _("Profile"))); +if ($registry->hasInterface('letter')) { + $actions[] = array('url' => Horde::applicationUrl('user.php'), + 'img' => Horde::img('letter.png', '', '', $registry->getImageDir('letter')), + 'id' => 'user_to', + 'name' => $registry->get('name', 'letter')); +} require FOLKS_TEMPLATES . '/common-header.inc'; require FOLKS_TEMPLATES . '/menu.inc'; diff --git a/folks/edit/friends/from.php b/folks/edit/friends/from.php index 5140ab336..da9e20f05 100644 --- a/folks/edit/friends/from.php +++ b/folks/edit/friends/from.php @@ -16,13 +16,6 @@ require_once FOLKS_BASE . '/edit/tabs.php'; $title = _("Friends we are waiting approval from"); -$letter_url = ''; -$profile_img = Horde::img('user.png', '', '', $registry->getImageDir('horde')); -if ($registry->hasInterface('letter')) { - $letter_url = $registry->get('webroot', 'letter') . '/compose.php'; - $letter_img = Horde::img('letter.png', '', '', $registry->getImageDir('letter')); -} - // Load driver require_once FOLKS_BASE . '/lib/Friends.php'; $friends = Folks_Friends::singleton(); @@ -34,7 +27,18 @@ if ($list instanceof PEAR_Error) { $list = array(); } -Horde::addScriptFile('tables.js', 'horde', true); +// Prepare actions +$actions = array( + array('url' => Horde::applicationUrl('user.php'), + 'img' => Horde::img('user.png', '', '', $registry->getImageDir('horde')), + 'id' => 'user', + 'name' => _("Profile"))); +if ($registry->hasInterface('letter')) { + $actions[] = array('url' => Horde::applicationUrl('user.php'), + 'img' => Horde::img('letter.png', '', '', $registry->getImageDir('letter')), + 'id' => 'user_to', + 'name' => $registry->get('name', 'letter')); +} require FOLKS_TEMPLATES . '/common-header.inc'; require FOLKS_TEMPLATES . '/menu.inc'; diff --git a/folks/edit/friends/index.php b/folks/edit/friends/index.php index e6c258426..41ecc085b 100644 --- a/folks/edit/friends/index.php +++ b/folks/edit/friends/index.php @@ -14,15 +14,7 @@ require_once dirname(__FILE__) . '/../../lib/base.php'; require_once FOLKS_BASE . '/edit/tabs.php'; -$title = _("Friends"); -$remove_url = Horde::applicationUrl('edit/friends.php'); -$remove_img = Horde::img('delete.png', '', '', $registry->getImageDir('horde')); -$profile_img = Horde::img('user.png', '', '', $registry->getImageDir('horde')); -$letter_url = ''; -if ($registry->hasInterface('letter')) { - $letter_url = $registry->get('webroot', 'letter') . '/compose.php'; - $letter_img = Horde::img('letter.png', '', '', $registry->getImageDir('letter')); -} +$title = _("All"); // Load driver require_once FOLKS_BASE . '/lib/Friends.php'; @@ -35,7 +27,22 @@ if ($list instanceof PEAR_Error) { $list = array(); } -Horde::addScriptFile('tables.js', 'horde', true); +// Prepare actions +$actions = array( + array('url' => Horde::applicationUrl('edit/friends/add.php'), + 'img' => Horde::img('delete.png', '', '', $registry->getImageDir('horde')), + 'id' => 'user', + 'name' => _("Remove")), + array('url' => Horde::applicationUrl('user.php'), + 'img' => Horde::img('user.png', '', '', $registry->getImageDir('horde')), + 'id' => 'user', + 'name' => _("Profile"))); +if ($registry->hasInterface('letter')) { + $actions[] = array('url' => Horde::applicationUrl('user.php'), + 'img' => Horde::img('letter.png', '', '', $registry->getImageDir('letter')), + 'id' => 'user_to', + 'name' => $registry->get('name', 'letter')); +} require FOLKS_TEMPLATES . '/common-header.inc'; require FOLKS_TEMPLATES . '/menu.inc'; diff --git a/folks/edit/friends/of.php b/folks/edit/friends/of.php index ecebbc57c..11a7084b6 100644 --- a/folks/edit/friends/of.php +++ b/folks/edit/friends/of.php @@ -16,13 +16,6 @@ require_once FOLKS_BASE . '/edit/tabs.php'; $title = _("We are friends of"); -$letter_url = ''; -$profile_img = Horde::img('user.png', '', '', $registry->getImageDir('horde')); -if ($registry->hasInterface('letter')) { - $letter_url = $registry->get('webroot', 'letter') . '/compose.php'; - $letter_img = Horde::img('letter.png', '', '', $registry->getImageDir('letter')); -} - // Load driver require_once FOLKS_BASE . '/lib/Friends.php'; $friends = Folks_Friends::singleton(); @@ -34,7 +27,18 @@ if ($list instanceof PEAR_Error) { $list = array(); } -Horde::addScriptFile('tables.js', 'horde', true); +// Prepare actions +$actions = array( + array('url' => Horde::applicationUrl('user.php'), + 'img' => Horde::img('user.png', '', '', $registry->getImageDir('horde')), + 'id' => 'user', + 'name' => _("Profile"))); +if ($registry->hasInterface('letter')) { + $actions[] = array('url' => Horde::applicationUrl('user.php'), + 'img' => Horde::img('letter.png', '', '', $registry->getImageDir('letter')), + 'id' => 'user_to', + 'name' => $registry->get('name', 'letter')); +}; require FOLKS_TEMPLATES . '/common-header.inc'; require FOLKS_TEMPLATES . '/menu.inc'; diff --git a/folks/edit/friends/reject.php b/folks/edit/friends/reject.php index 3f17323f3..512cb264f 100644 --- a/folks/edit/friends/reject.php +++ b/folks/edit/friends/reject.php @@ -25,7 +25,7 @@ if (empty($user)) { exit; } -$friends = Folks_Friends::singleton($conf['friends'], array('user' => $user)); +$friends = Folks_Friends::singleton(null, array('user' => $user)); $result = $friends->removeFriend(Auth::getAuth()); if ($result instanceof PEAR_Error) { $notification->push($result); diff --git a/folks/lib/Friends.php b/folks/lib/Friends.php index f3b463fba..4b06b2815 100644 --- a/folks/lib/Friends.php +++ b/folks/lib/Friends.php @@ -301,8 +301,8 @@ class Folks_Friends { // Add friend to backend $result = $this->_addFriend($friend, $group); - if ($friends instanceof PEAR_Error) { - return $friends; + if ($result instanceof PEAR_Error) { + return $result; } // If we do not need an approval just expire cache @@ -411,7 +411,7 @@ class Folks_Friends { } /** - * Get users who have you on friendlist + * Get users who have us on their friendlist * * @return array users */ diff --git a/folks/lib/Friends/sql.php b/folks/lib/Friends/sql.php index 3b905abac..39e5c5f5b 100644 --- a/folks/lib/Friends/sql.php +++ b/folks/lib/Friends/sql.php @@ -91,8 +91,9 @@ class Folks_Friends_sql extends Folks_Friends { protected function _addFriend($friend) { $approve = $this->needsApproval($friend) ? 1 : 0; + $query = 'INSERT INTO ' . $this->_params['friends'] - . ' (user_uid, friend_uid, friend_ask) VALUES (?, ?, ?, ?)'; + . ' (user_uid, friend_uid, friend_ask) VALUES (?, ?, ?)'; return $this->_write_db->query($query, array($this->_user, $friend, $approve)); } @@ -140,10 +141,10 @@ class Folks_Friends_sql extends Folks_Friends { protected function _getFriends() { $query = 'SELECT friend_uid FROM ' . $this->_params['friends'] - . ' WHERE user_uid = ?' + . ' WHERE user_uid = ? and friend_ask = ?' . ' ORDER BY friend_uid ASC'; - return $this->_db->getCol($query, 0, array($this->_user)); + return $this->_db->getCol($query, 0, array($this->_user, 0)); } /** diff --git a/folks/templates/edit/friends.php b/folks/templates/edit/friends.php index 060021220..0dee0a710 100644 --- a/folks/templates/edit/friends.php +++ b/folks/templates/edit/friends.php @@ -22,7 +22,8 @@ if (empty($list)) { -
' . $user ?> + ' + . '
' . $user ?> - - - - - - - - - - - - - + '; + echo '' + . $action['img'] . ' ' . $action['name'] . ''; + echo ''; + } + ?> diff --git a/folks/templates/edit/tabs.php b/folks/templates/edit/tabs.php index b471414e1..1f1675309 100644 --- a/folks/templates/edit/tabs.php +++ b/folks/templates/edit/tabs.php @@ -28,6 +28,7 @@ foreach ($groups as $group_id => $group_name) { $ftabs->addTab($group_name, Horde::applicationUrl('edit/friends/friends.php'), $group_id); } +$ftabs->addTab(_("Might know"), Horde::applicationUrl('edit/friends/know.php'), 'know'); $ftabs->addTab(_("Wainting for"), Horde::applicationUrl('edit/friends/for.php'), 'for'); $ftabs->addTab(_("Wainting from"), Horde::applicationUrl('edit/friends/from.php'), 'from'); $ftabs->addTab(_("I am friend of"), Horde::applicationUrl('edit/friends/of.php'), 'of');