Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • 4.0_templates
  • 4.1_templates-symlink
  • develop
  • git-fixes
  • master
5 results

Target

Select target project
  • tneumann9/PlanetRed
  • JSTUREK8/PlanetRed
  • smccoy12/PlanetRed
  • dkuzelka2/PlanetRed
  • s-cwiedel5/PlanetRed
  • dxg/PlanetRed
6 results
Select Git revision
  • 4.0_templates
  • 4.1_templates-symlink
  • develop
  • git-fixes
  • master
5 results
Show changes
Showing
with 1170 additions and 0 deletions
<?php
//Get our data
$friend_guid = (int) get_input('friend');
$friend = get_user($friend_guid);
$user = elgg_get_logged_in_user_entity();
// Now we need to attempt to create the relationship
if (empty($user) || empty($friend)) {
register_error(elgg_echo('friend_request:add:failure'));
forward(REFERER);
}
// New for v1.1 - If the other user is already a friend (fan) of this user we should auto-approve the friend request...
if (check_entity_relationship($friend->getGUID(), 'friend', $user->getGUID())) {
try {
$user->addFriend($friend->getGUID());
system_message(elgg_echo('friends:add:successful', [$friend->name]));
forward(REFERER);
} catch (Exception $e) {
register_error(elgg_echo('friends:add:failure', [$friend->name]));
forward(REFERER);
}
} elseif (check_entity_relationship($friend->getGUID(), 'friendrequest', $user->getGUID())) {
// Check if your potential friend already invited you, if so make friends
if (remove_entity_relationship($friend->getGUID(), 'friendrequest', $user->getGUID())) {
// Friends mean reciprical...
$user->addFriend($friend->getGUID());
$friend->addFriend($user->getGUID());
system_message(elgg_echo('friend_request:approve:successful', [$friend->name]));
// add to river
friend_request_create_river_events($user->getGUID(), $friend->getGUID());
forward(REFERER);
} else {
register_error(elgg_echo('friend_request:approve:fail', [$friend->name]));
forward(REFERER);
}
} else {
try {
if (!add_entity_relationship($user->getGUID(), 'friendrequest', $friend->getGUID())) {
register_error(elgg_echo('friend_request:add:exists', [$friend->name]));
forward(REFERER);
}
} catch (Exception $e) {
// add_entity_relationship calls insert_data which CAN raise Exceptions.
register_error(elgg_echo('friend_request:add:exists', [$friend->name]));
forward(REFERER);
}
}
system_message(elgg_echo('friend_request:add:successful', array($friend->name)));
forward(REFERER);
<?php
// Get the GUID of the user to friend
$friend_guid = (int) get_input('friend');
// Get the user
$friend = get_user($friend_guid);
if (empty($friend)) {
register_error(elgg_echo('error:missing_data'));
forward(REFERER);
}
$user = elgg_get_logged_in_user_entity();
// remove friend from user
try {
$user->removeFriend($friend->getGUID());
// remove river items
elgg_delete_river([
'view' => 'river/relationship/friend/create',
'subject_guid' => $user->getGUID(),
'object_guid' => $friend->getGUID(),
]);
} catch (Exception $e) {
register_error(elgg_echo('friends:remove:failure', [$friend->name]));
forward(REFERER);
}
// remove user from friend
try {
// V1.1 - Old relationships might not have the 2 as friends...
$friend->removeFriend($user->getGUID());
// remove river items
elgg_delete_river([
'view' => 'river/relationship/friend/create',
'subject_guid' => $friend->getGUID(),
'object_guid' => $user->getGUID(),
]);
} catch (Exception $e) {
// do nothing
}
system_message(elgg_echo('friends:remove:successful', [$friend->name]));
forward(REFERER);
<?php
$friend_guid = (int) get_input('guid');
$friend = get_user($friend_guid);
if (empty($friend)) {
register_error(elgg_echo('error:missing_data'));
forward(REFERER);
}
$user = elgg_get_logged_in_user_entity();
if (remove_entity_relationship($user->getGUID(), 'friendrequest', $friend->getGUID())) {
system_message(elgg_echo('friend_request:revoke:success'));
} else {
register_error(elgg_echo('friend_request:revoke:fail'));
}
forward(REFERER);
<?php
namespace ColdTrick\FriendRequest;
class PageHandler {
/**
* Handle /friend_request pages
*
* @param array $page the url segments
*
* @return bool
*/
public static function friendRequest($page) {
$include_file = false;
$pages_path = elgg_get_plugins_path() . 'friend_request/pages/';
if (isset($page[0])) {
set_input('username', $page[0]);
$include_file = "{$pages_path}index.php";
}
if (!empty($include_file)) {
include($include_file);
return true;
}
return false;
}
}
<?php
namespace ColdTrick\FriendRequest;
class PageMenu {
/**
* Remove menu items from the page menu
*
* @param string $hook the name of the hook
* @param string $type the type of the hook
* @param \ElggMenuItem[] $return_value the current return value
* @param array $params supplied params
*
* @return void|\ElggMenuItem[]
*/
public static function registerCleanup($hook, $type, $return_value, $params) {
if (empty($return_value) || !is_array($return_value)) {
return;
}
$remove_items = [
'friends:of',
];
foreach ($return_value as $index => $menu_item) {
if (!in_array($menu_item->getName(), $remove_items)) {
continue;
}
unset($return_value[$index]);
}
return $return_value;
}
/**
* Add menu items to the page menu
*
* @param string $hook the name of the hook
* @param string $type the type of the hook
* @param \ElggMenuItem[] $return_value the current return value
* @param array $params supplied params
*
* @return void|\ElggMenuItem[]
*/
public static function register($hook, $type, $return_value, $params) {
$page_owner = elgg_get_page_owner_entity();
if (!($page_owner instanceof \ElggUser)) {
return;
}
if (!$page_owner->canEdit()) {
return;
}
// count pending requests
$options = [
'type' => 'user',
'count' => true,
'relationship' => 'friendrequest',
'relationship_guid' => $page_owner->getGUID(),
'inverse_relationship' => true,
];
$count = elgg_get_entities_from_relationship($options);
$extra = '';
if (!empty($count)) {
$extra = ' [' . $count . ']';
}
// add menu item
$return_value[] = \ElggMenuItem::factory([
'name' => 'friend_request',
'text' => elgg_echo('friend_request:menu') . $extra,
'href' => "friend_request/{$page_owner->username}",
'contexts' => ['friends', 'friendsof', 'collections', 'messages'],
]);
return $return_value;
}
}
<?php
namespace ColdTrick\FriendRequest;
class Relationships {
/**
* Send a notification on a friend request
*
* @param string $event the name of the event
* @param string $type the type of the event
* @param \ElggRelationship $relationship supplied param
*
* @return void
*/
public static function createFriendRequest($event, $type, $relationship) {
if (!($relationship instanceof \ElggRelationship)) {
return;
}
if ($relationship->relationship !== 'friendrequest') {
return;
}
$requester = get_user($relationship->guid_one);
$new_friend = get_user($relationship->guid_two);
if (empty($requester) || empty($new_friend)) {
return;
}
$view_friends_url = elgg_normalize_url("friend_request/{$new_friend->username}");
// Notify target user
$subject = elgg_echo('friend_request:newfriend:subject', [$requester->name]);
$message = elgg_echo('friend_request:newfriend:body', [
$requester->name,
$view_friends_url
]);
$params = [
'action' => 'friend_request',
'object' => $requester,
];
notify_user($new_friend->getGUID(), $requester->getGUID(), $subject, $message, $params);
}
}
<?php
namespace ColdTrick\FriendRequest;
class TopbarMenu {
/**
* Add menu items to the topbar
*
* @param string $hook the name of the hook
* @param string $type the type of the hook
* @param \ElggMenuItem[] $return_value the current return value
* @param array $params supplied params
*
* @return void|\ElggMenuItem[]
*/
public static function register($hook, $type, $return_value, $params) {
$user = elgg_get_logged_in_user_entity();
if (empty($user)) {
return;
}
$options = [
'type' => 'user',
'count' => true,
'relationship' => 'friendrequest',
'relationship_guid' => $user->getGUID(),
'inverse_relationship' => true,
];
$count = elgg_get_entities_from_relationship($options);
if (empty($count)) {
return;
}
$return_value[] = \ElggMenuItem::factory([
'name' => 'friend_request',
'href' => "friend_request/{$user->username}",
'text' => elgg_view_icon('user') . elgg_format_element('span', ['class' => 'friend-request-new'], $count),
'title' => elgg_echo('friend_request:menu'),
'priority' => 301
]);
return $return_value;
}
}
<?php
namespace ColdTrick\FriendRequest;
class Users {
/**
* Add menu items to the entity menu
*
* @param string $hook the name of the hook
* @param string $type the type of the hook
* @param \ElggMenuItem[] $return_value the current return value
* @param array $params supplied params
*
* @return void|\ElggMenuItem[]
*/
public static function registerEntityMenu($hook, $type, $return_value, $params) {
if (empty($params) || !is_array($params)) {
return;
}
$user = elgg_get_logged_in_user_entity();
if (empty($user)) {
return;
}
$entity = elgg_extract('entity', $params);
if (!($entity instanceof \ElggUser)) {
return;
}
if ($entity->getGUID() === $user->getGUID()) {
// looking at yourself
return;
}
// are we friends
if (!$entity->isFriendOf($user->getGUID())) {
// no, check if pending request
if (check_entity_relationship($user->getGUID(), 'friendrequest', $entity->getGUID())) {
// pending request
$return_value[] = \ElggMenuItem::factory([
'name' => 'friend_request',
'text' => elgg_echo('friend_request:friend:add:pending'),
'href' => "friend_request/{$user->username}#friend_request_sent_listing",
'priority' => 500,
]);
} else {
// add as friend
$return_value[] = \ElggMenuItem::factory([
'name' => 'add_friend',
'text' => elgg_echo('friend:add'),
'href' => "action/friends/add?friend={$entity->getGUID()}",
'is_action' => true,
'priority' => 500,
]);
}
} else {
// is friend, se remove friend link
$return_value[] = \ElggMenuItem::factory([
'name' => 'remove_friend',
'text' => elgg_echo('friend:remove'),
'href' => "action/friends/remove?friend={$entity->getGUID()}",
'is_action' => true,
'priority' => 500,
]);
}
return $return_value;
}
/**
* Add menu items to the hover menu
*
* @param string $hook the name of the hook
* @param string $type the type of the hook
* @param \ElggMenuItem[] $return_value the current return value
* @param array $params supplied params
*
* @return void|\ElggMenuItem[]
*/
public static function registerUserHoverMenu($hook, $type, $return_value, $params) {
if (empty($params) || !is_array($params)) {
return;
}
$user = elgg_get_logged_in_user_entity();
if (empty($user)) {
return;
}
$entity = elgg_extract('entity', $params);
if (!($entity instanceof \ElggUser)) {
return;
}
if ($entity->getGUID() === $user->getGUID()) {
// looking at yourself
return;
}
$requested = check_entity_relationship($user->getGUID(), 'friendrequest', $entity->getGUID());
$is_friend = $entity->isFriend($user->getGUID());
foreach ($return_value as $index => $item) {
// change the text of the button to tell you already requested a friendship
switch ($item->getName()) {
case 'add_friend':
if ($requested) {
$item->setItemClass('hidden');
}
break;
case 'remove_friend':
if (!$requested && !$is_friend) {
unset($return_value[$index]);
}
break;
}
}
if ($requested) {
$return_value[] = \ElggMenuItem::factory([
'name' => 'friend_request',
'text' => elgg_echo('friend_request:friend:add:pending'),
'href' => "friend_request/{$user->username}#friend_request_sent_listing",
'section' => 'action',
]);
}
return $return_value;
}
}
{
"name": "coldtrick/friend_request",
"description": "Let users confirm friend requests. Make friends like on Facebook or LinkedIn",
"type": "elgg-plugin",
"keywords": ["elgg", "plugin", "friends"],
"license": "GPL-2.0",
"support": {
"source": "https://github.com/ColdTrick/friend_request",
"issues": "https://github.com/ColdTrick/friend_request/issues"
},
"require": {
"composer/installers": "^1.0.8"
},
"require-dev": {
"coldtrick/sniffs": "dev-master"
}
}
\ No newline at end of file
{
"_readme": [
"This file locks the dependencies of your project to a known state",
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically"
],
"hash": "b1d86b10fb2064dd6babf7236e7b0182",
"content-hash": "9964fcb7fc93e622d853d45a46febc22",
"packages": [
{
"name": "composer/installers",
"version": "v1.0.22",
"source": {
"type": "git",
"url": "https://github.com/composer/installers.git",
"reference": "bd9b14f094c89c8b5804a4e41edeb7853bb85046"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/composer/installers/zipball/bd9b14f094c89c8b5804a4e41edeb7853bb85046",
"reference": "bd9b14f094c89c8b5804a4e41edeb7853bb85046",
"shasum": ""
},
"require": {
"composer-plugin-api": "1.0.0"
},
"replace": {
"roundcube/plugin-installer": "*",
"shama/baton": "*"
},
"require-dev": {
"composer/composer": "1.0.*@dev",
"phpunit/phpunit": "4.1.*"
},
"type": "composer-plugin",
"extra": {
"class": "Composer\\Installers\\Plugin",
"branch-alias": {
"dev-master": "1.0-dev"
}
},
"autoload": {
"psr-0": {
"Composer\\Installers\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Kyle Robinson Young",
"email": "kyle@dontkry.com",
"homepage": "https://github.com/shama"
}
],
"description": "A multi-framework Composer library installer",
"homepage": "http://composer.github.com/installers/",
"keywords": [
"Craft",
"Dolibarr",
"Hurad",
"MODX Evo",
"OXID",
"SMF",
"Thelia",
"WolfCMS",
"agl",
"aimeos",
"annotatecms",
"bitrix",
"cakephp",
"chef",
"codeigniter",
"concrete5",
"croogo",
"dokuwiki",
"drupal",
"elgg",
"fuelphp",
"grav",
"installer",
"joomla",
"kohana",
"laravel",
"lithium",
"magento",
"mako",
"mediawiki",
"modulework",
"moodle",
"phpbb",
"piwik",
"ppi",
"puppet",
"roundcube",
"shopware",
"silverstripe",
"symfony",
"typo3",
"wordpress",
"zend",
"zikula"
],
"time": "2015-10-29 23:28:48"
}
],
"packages-dev": [
{
"name": "coldtrick/sniffs",
"version": "dev-master",
"source": {
"type": "git",
"url": "https://github.com/ColdTrick/elgg-coding-standards.git",
"reference": "694bae972522ffbec467a7a9b6a2f4299beb47e6"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/ColdTrick/elgg-coding-standards/zipball/694bae972522ffbec467a7a9b6a2f4299beb47e6",
"reference": "694bae972522ffbec467a7a9b6a2f4299beb47e6",
"shasum": ""
},
"require": {
"squizlabs/php_codesniffer": ">=1.3.4"
},
"type": "library",
"autoload": {
"psr-0": {
"Elgg_Sniffs_": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"description": "Elgg coding standards",
"time": "2015-02-17 14:47:25"
},
{
"name": "squizlabs/php_codesniffer",
"version": "2.5.0",
"source": {
"type": "git",
"url": "https://github.com/squizlabs/PHP_CodeSniffer.git",
"reference": "e4fb41d5d0387d556e2c25534d630b3cce90ea67"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/e4fb41d5d0387d556e2c25534d630b3cce90ea67",
"reference": "e4fb41d5d0387d556e2c25534d630b3cce90ea67",
"shasum": ""
},
"require": {
"ext-tokenizer": "*",
"ext-xmlwriter": "*",
"php": ">=5.1.2"
},
"require-dev": {
"phpunit/phpunit": "~4.0"
},
"bin": [
"scripts/phpcs",
"scripts/phpcbf"
],
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.0.x-dev"
}
},
"autoload": {
"classmap": [
"CodeSniffer.php",
"CodeSniffer/CLI.php",
"CodeSniffer/Exception.php",
"CodeSniffer/File.php",
"CodeSniffer/Fixer.php",
"CodeSniffer/Report.php",
"CodeSniffer/Reporting.php",
"CodeSniffer/Sniff.php",
"CodeSniffer/Tokens.php",
"CodeSniffer/Reports/",
"CodeSniffer/Tokenizers/",
"CodeSniffer/DocGenerators/",
"CodeSniffer/Standards/AbstractPatternSniff.php",
"CodeSniffer/Standards/AbstractScopeSniff.php",
"CodeSniffer/Standards/AbstractVariableSniff.php",
"CodeSniffer/Standards/IncorrectPatternException.php",
"CodeSniffer/Standards/Generic/Sniffs/",
"CodeSniffer/Standards/MySource/Sniffs/",
"CodeSniffer/Standards/PEAR/Sniffs/",
"CodeSniffer/Standards/PSR1/Sniffs/",
"CodeSniffer/Standards/PSR2/Sniffs/",
"CodeSniffer/Standards/Squiz/Sniffs/",
"CodeSniffer/Standards/Zend/Sniffs/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Greg Sherwood",
"role": "lead"
}
],
"description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.",
"homepage": "http://www.squizlabs.com/php-codesniffer",
"keywords": [
"phpcs",
"standards"
],
"time": "2015-12-11 00:12:46"
}
],
"aliases": [],
"minimum-stability": "stable",
"stability-flags": {
"coldtrick/sniffs": 20
},
"prefer-stable": false,
"prefer-lowest": false,
"platform": [],
"platform-dev": []
}
<?php
$german = array(
'friend_request' => "Freundschaftsanfrage",
'friend_request:menu' => "Freundschaftsanfragen",
'friend_request:title' => "Freundschaftsanfragen für: %s",
'friend_request:new' => "Neue Freundschaftsanfrage",
'friend_request:friend:add:pending' => "Ausstehende Freundschaftsanfragen",
'friend_request:newfriend:subject' => "%s möchte mit dir befreundet sein!",
'friend_request:newfriend:body' => "%s möchte mit dir befreundet sein und wartet auf deine Bestätigung! Logge dich jetzt ein um die Anfrage zu Bestätigen!
Du kannst ausstehende Freundschaftsanfragen hier (Stelle sicher, dass du eingeloggt bist, bevor du auf den folgenden Link klickst, ansonsten wirst du nur zum Login weitergeleitet.):
%s
(Diese Email kann nicht beantwortet werden.)",
// Actions
// Anfragen
'friend_request:add:failure' => "Sorry, aufgrund eines Systemfehlers konnte deine Freundschaftsanfragen nicht abgeschlossen werden. Bitte versuche es erneut.",
'friend_request:add:successful' => "Du hast %s eine Freundschaftsanfrage gesendet. Die Freundschaftsanfrage muss erst bestätigt werden, bevor sie/er deiner Freundesliste hinzugefügt wird.",
'friend_request:add:exists' => "Du hast %s bereits eine Freundschaftsanfrage gesendet.",
// Bestätigte Anfragen
'friend_request:approve' => "Bestätigen",
'friend_request:approve:successful' => "%s ist nun mit dir befreundet",
'friend_request:approve:fail' => "Während des anfreundens mit %s ist ein Fehler aufgetreten",
// Abgelehnte Anfragen
'friend_request:decline' => "Ablehnen",
'friend_request:decline:subject' => "%s hat deine Freundschaftsanfrage abgelehnt",
'friend_request:decline:message' => "Liebe/r %s,
%s hat deine Freundschaftsanfrage abgelehnt.",
'friend_request:decline:success' => "Freundschaftsanfrage abgelehnt",
'friend_request:decline:fail' => "Während der Ablehnung der Freundschaftsanfrage ist ein Fehler aufgetreten. Bitte versuche es erneut.",
// Widerrufene Anfragen
'friend_request:revoke' => "Widerrufen",
'friend_request:revoke:success' => "Die Freundschaftsanfragen wurde widerrufen",
'friend_request:revoke:fail' => "Während des Widerrufs der Freundschaftsanfrage ist ein Fehler aufgetreten. Bitte versuche es erneut.",
// Views
// Empfangen
'friend_request:received:title' => "Empfangene Freundschaftsanfragen",
'friend_request:received:none' => "Es warten keine ausstehenden Freundschaftsanfragen auf Bestätigung.",
// Gesendet
'friend_request:sent:title' => "Gesendete Freundschaftsanfragen",
'friend_request:sent:none' => "Es stehen keine gesendete Freundschaftsanfragen aus",
);
add_translation("de", $german);
<?php
return [
'friend_request' => "Friend Request",
'friend_request:menu' => "Friend Requests",
'friend_request:title' => "Friend Requests for: %s",
'friend_request:new' => "New friend request",
'friend_request:friend:add:pending' => "Friend request pending",
// plugins settings
'friend_request:settings:add_river' => "Create river entries when a friend request is accepted",
// notifications
'friend_request:newfriend:subject' => "%s wants to be your friend!",
'friend_request:newfriend:body' => "%s wants to be your friend! But they are waiting for you to approve the request...so login now so you can approve the request!
You can view your pending friend requests at:
%s
Make sure you are logged into the website before clicking on the following link otherwise you will be redirected to the login page.
(You cannot reply to this email.)",
// Actions
// Add request
'friend_request:add:failure' => "Sorry, because of a system error we were unable to complete your request. Please try again.",
'friend_request:add:successful' => "You have requested to be friends with %s. They must approve your request before they will show on your friends list.",
'friend_request:add:exists' => "You've already requested to be friends with %s.",
// Approve request
'friend_request:approve' => "Approve",
'friend_request:approve:subject' => "%s has accepted your friend request",
'friend_request:approve:message' => "Dear %s,
%s has accepted your request to become a friend.",
'friend_request:approve:successful' => "%s is now a friend",
'friend_request:approve:fail' => "Error while creating friend relation with %s",
// Decline request
'friend_request:decline' => "Decline",
'friend_request:decline:subject' => "%s has declined your friend request",
'friend_request:decline:message' => "Dear %s,
%s has declined your request to become a friend.",
'friend_request:decline:success' => "Friend request successfully declined",
'friend_request:decline:fail' => "Error while declining Friend request, please try again",
// Revoke request
'friend_request:revoke' => "Revoke",
'friend_request:revoke:success' => "Friend request successfully revoked",
'friend_request:revoke:fail' => "Error while revoking Friend request, please try again",
// Views
// Received
'friend_request:received:title' => "Received Friend requests",
'friend_request:received:none' => "No requests pending your approval",
// Sent
'friend_request:sent:title' => "Sent Friend requests",
'friend_request:sent:none' => "No sent requests pending approval",
];
<?php
$spanish = array(
'friend_request' => "Solicitud de Amistad",
'friend_request:menu' => "Solicitudes de Amistad",
'friend_request:title' => "Solicitudes de Amistad para: %s",
'friend_request:new' => "Nueva Solicitud de Amistad",
'friend_request:friend:add:pending' => "Solicitud de Amistad Pendiente",
'friend_request:newfriend:subject' => "%s quiere ser tu amigo!",
'friend_request:newfriend:body' => "%s quiere ser tu amigo! Pero est&aacute; esperando la aprobaci&oacute;n de la solicitud ... as&iacute; que inicia sesi&oacute;n ahora para que puedas aprobar la petici&oacute;n!!
Puedes ver tus solicitudes de amistad pendientes en:
%s
Aseg&uacute;rate de haber iniciado sesi&oacute;n en el sitio web antes de hacer clic en el siguiente enlace, de lo contrario ser&aacute;s redirigido a la p&aacute;gina de inicio de sesi&oacute;n.
(No respondas a este mensaje.)",
// Actions
// Add request
'friend_request:add:failure' => "Lo sentimos, debido a un error del sistema no se pudo completar tu solicitud. Por favor, int&eacute;ntelo de nuevo.",
'friend_request:add:successful' => "Haz solicitado ser amigo de %s. Deben aprobar tu solicitud antes de que se muestre en tu lista de amigos.",
'friend_request:add:exists' => "Ya has solicitado ser amigo de %s.",
// Approve request
'friend_request:approve' => "Aprobar",
'friend_request:approve:successful' => "%s es ahora un Amigo",
'friend_request:approve:fail' => "Error al crear relaci&oacute;n de Amistad con %s",
// Decline request
'friend_request:decline' => "Rechazar",
'friend_request:decline:subject' => "%s ha rechazado tu solicitud de amistad",
'friend_request:decline:message' => "Estimado(a) %s,
%s ha rechazado tu solicitud para convertirse en amigos.",
'friend_request:decline:success' => "Solicitud de Amistad exitosamente rechazada",
'friend_request:decline:fail' => "Error al rechazar la Solicitud de Amistad, por favor int&eacute;ntelo de nuevo",
// Revoke request
'friend_request:revoke' => "Revocar",
'friend_request:revoke:success' => "Solicitud de Amistad exitosamente revocada",
'friend_request:revoke:fail' => "Error al revocar la Solicitud de Amistad, por favor int&eacute;ntelo de nuevo",
// Views
// Received
'friend_request:received:title' => "Solicitudes de Amistad recibidas",
'friend_request:received:none' => "No hay solicitudes pendientes de aprobaci&oacute;n",
// Sent
'friend_request:sent:title' => "Solicitudes de Amistad enviadas",
'friend_request:sent:none' => "No hay solicitudes enviadas pendientes de aprobaci&oacute;n",
);
add_translation("es", $spanish);
\ No newline at end of file
<?php
$language = array (
'friend_request' => 'Demande d\'ami',
'friend_request:menu' => 'Demandes d\'ami',
'friend_request:title' => 'Demandes d\'ami pour : %s',
'friend_request:new' => 'Nouvelle demande d\'ami',
'friend_request:friend:add:pending' => 'Demande d\'ami en attente',
'friend_request:newfriend:subject' => '%s veut devenir votre ami!',
'friend_request:newfriend:body' => '%s veulent devenir votre ami ! Mais ils attendent que vous approuviez votre requête... alors connectez-vous pour les approuver !
Vous pouvez voir les demandes d\'ami en attente sur :
%s
Assurez-vous d\'être connecté sur le site web avant de cliquer sur le lien suivant, sinon vous serez redirigé sur la page de connexion.
(Vous ne pouvez pas répondre à cet e-mail.)',
'friend_request:add:failure' => 'Désolé, mais à cause d\'une erreur système nous n\'avons pas pu traiter votre demande. S\'il vous plaît essayez de nouveau.',
'friend_request:add:successful' => 'Vous avez demandé d\'être amis avec %s. Ils doivent approuver votre demande avant d\'apparaitre dans votre liste d\'amis.',
'friend_request:add:exists' => 'Vous avez déjà demandé d\'être amis avec %s.',
'friend_request:approve' => 'Accepter',
'friend_request:approve:successful' => '%s est maintenant votre ami',
'friend_request:approve:fail' => 'Erreur durant la création de la relation d\'ami avec %s',
'friend_request:decline' => 'Décliner',
'friend_request:decline:subject' => '%s a refusé votre demande d\'ami',
'friend_request:decline:message' => 'Cher %s,
%s a décliné votre invitation pour devenir son ami.',
'friend_request:decline:success' => 'Demande d\'ami refusée avec succès',
'friend_request:decline:fail' => 'Erreur lors du refus de la demande d\'ami, merci de réessayer.',
'friend_request:revoke' => 'Révoquer',
'friend_request:revoke:success' => 'Demande d\'ami révoquée avec succès',
'friend_request:revoke:fail' => 'Erreur lors de la révocation de la demande ami, merci de réessayer',
'friend_request:received:title' => 'Demandes d\'ami reçues',
'friend_request:received:none' => 'Pas de demandes en attente de votre approbation',
'friend_request:sent:title' => 'Demandes d\'ami envoyées',
'friend_request:sent:none' => 'Pas de demandes envoyées en attente d\'approbation',
);
add_translation("fr", $language);
<?php
/**
* This file was created by Translation Editor v2.0.1
* On 2015-12-17 12:04
*/
return array (
'friend_request:settings:add_river' => 'Creëer een melding op de river als een vriendschapsverzoek wordt geaccepteerd',
'friend_request:approve:subject' => '%s heeft je vriendschapsverzoek geaccepteerd',
'friend_request:approve:message' => 'Beste %s,
%s heeft je vriendschapsverzoek geaccepteerd.',
'friend_request' => 'Vriendschap verzoek',
'friend_request:menu' => 'Vriendschap verzoeken',
'friend_request:title' => 'Vriendschap verzoeken voor: %s',
'friend_request:new' => 'Nieuw vriendschap verzoek',
'friend_request:friend:add:pending' => 'Vriendschap verzoek verzonden',
'friend_request:newfriend:subject' => '%s wil je vriend worden!',
'friend_request:newfriend:body' => '%s wil je vriend worden! Echter zul jij dit goed moeten keuren, dus meld je nu aan om het vriendschap verzoek goed te keuren.
Je kunt de openstaande vriendschap verzoeken hier bekijken:
%s
Indien je niet bent aangemeld zul je worden doorgestuurd naar de startpagina, na het aanmelden wordt je doorgestuurd naar het overzicht.
(Je kunt niet reageren op dit bericht)',
'friend_request:add:failure' => 'Wegens een fout kon je verzoek niet worden verwerkt. Probeer het nogmaals',
'friend_request:add:successful' => 'Je wilt graag vrienden worden met %s. Dit moet nog worden goedgekeurd voordat hij/zij verschijnt in je vriendenlijst',
'friend_request:add:exists' => 'Je hebt reeds verzocht vrienden te worden met %s',
'friend_request:approve' => 'Goedkeuren',
'friend_request:approve:successful' => '%s is nu een vriend',
'friend_request:approve:fail' => 'Er is een fout opgetreden tijdens het maken van de vriendschap relatie met %s',
'friend_request:decline' => 'Afwijzen',
'friend_request:decline:subject' => '%s heeft je vriendschap verzoek afgewezen',
'friend_request:decline:message' => 'Beste %s,
%s heeft je vriendschap verzoek afgewezen.',
'friend_request:decline:success' => 'Vriendschap verzoek succesvol afgewezen',
'friend_request:decline:fail' => 'Er is een fout opgetreden tijdens het afwijzen van het vriendschap verzoek. Probeer het nogmaals',
'friend_request:revoke' => 'Intrekken',
'friend_request:revoke:success' => 'Vriendschap verzoek succesvol ingetrokken',
'friend_request:revoke:fail' => 'Er is een fout opgetreden tijdens het intrekken van het vriendschap verzoek',
'friend_request:received:title' => 'Ontvangen vriendschap verzoeken',
'friend_request:received:none' => 'Er zijn geen ontvangen vriendschap verzoeken gevonden die wachten op goedkeuring',
'friend_request:sent:title' => 'Verzonden vriendschap verzoeken',
'friend_request:sent:none' => 'Er zijn geen verzonden vriendschap verzoeken gevonden die wachten op goedkeuring',
);
<?php
/**
* All helper functions are bundled here
*/
/**
* Create river events when a friend is added
*
* @param int $user_guid the user who is accepting
* @param int $friend_guid the friend who he accepted
*
* @return bool
*/
function friend_request_create_river_events($user_guid, $friend_guid) {
$user_guid = sanitise_int($user_guid, false);
$friend_guid = sanitise_int($friend_guid, false);
if (empty($user_guid) || empty($friend_guid)) {
return false;
}
// check plugin setting
if (elgg_get_plugin_setting('add_river', 'friend_request') === 'no') {
// no event are to be created
return true;
}
// add to river
elgg_create_river_item([
'view' => 'river/relationship/friend/create',
'action_type' => 'friend',
'subject_guid' => $user_guid,
'object_guid' => $friend_guid,
]);
elgg_create_river_item([
'view' => 'river/relationship/friend/create',
'action_type' => 'friend',
'subject_guid' => $friend_guid,
'object_guid' => $user_guid,
]);
return true;
}
<?xml version="1.0" encoding="UTF-8"?>
<plugin_manifest xmlns="http://www.elgg.org/plugin_manifest/1.8">
<name>Friend request</name>
<description>Let users confirm friend requests. Make friends like on Facebook or LinkedIn</description>
<version>4.1</version>
<id>friend_request</id>
<author>ColdTrick IT Solutions</author>
<website>http://www.coldtrick.com/</website>
<repository>https://github.com/ColdTrick/friend_request</repository>
<bugtracker>https://github.com/ColdTrick/friend_request/issues</bugtracker>
<copyright>(C) ColdTrick IT Solutions 2011 - 2015</copyright>
<license>GNU General Public License version 2</license>
<requires>
<type>elgg_release</type>
<version>1.9</version>
</requires>
<category>ColdTrick</category>
</plugin_manifest>
\ No newline at end of file
<?php
elgg_gatekeeper();
$user = elgg_get_page_owner_entity();
if (!($user instanceof ElggUser)) {
$user = elgg_get_logged_in_user_entity();
elgg_set_page_owner_guid($user->getGUID());
}
if (!$user->canEdit()) {
forward(REFERER);
}
// set the correct context and page owner
elgg_push_context('friends');
// breadcrumb
elgg_push_breadcrumb(elgg_echo('friends'), "friends/{$user->username}");
elgg_push_breadcrumb(elgg_echo('friend_request:menu'));
$options = [
'type' => 'user',
'limit' => false,
'relationship' => 'friendrequest',
'relationship_guid' => $user->getGUID(),
'inverse_relationship' => true,
];
// Get all received requests
$received_requests = elgg_get_entities_from_relationship($options);
// Get all received requests
$options['inverse_relationship'] = false;
$sent_requests = elgg_get_entities_from_relationship($options);
// Get page elements
$title_text = elgg_echo('friend_request:title', [$user->name]);
$content = elgg_view('friend_request/received', [
'entities' => $received_requests,
]);
$content .= elgg_view('friend_request/sent', [
'entities' => $sent_requests,
]);
// Build page
$body = elgg_view_layout('content', [
'title' => $title_text,
'content' => $content,
'filter' => false,
]);
// Draw page
echo elgg_view_page($title_text, $body);
\ No newline at end of file
<?php
/**
* The main plugin file for Friend Request
*/
// load library files
require_once(dirname(__FILE__) . '/lib/functions.php');
// default event handlers
elgg_register_event_handler('init', 'system', 'friend_request_init');
/**
* Gets called during system initialization
*
* @return void
*/
function friend_request_init() {
// extend css
elgg_extend_view('css/elgg', 'css/friend_request/site');
// Page handlers
// unregister friendsof
elgg_unregister_page_handler('friendsof');
// This will let users view their friend requests
elgg_register_page_handler('friend_request', '\ColdTrick\FriendRequest\PageHandler::friendRequest');
// Events
// unregister default elgg friend handler
elgg_unregister_event_handler('create', 'friend', '_elgg_send_friend_notification');
// Handle our add action event
elgg_register_event_handler('create', 'relationship', '\ColdTrick\FriendRequest\Relationships::createFriendRequest');
// Plugin hooks
elgg_register_plugin_hook_handler('register', 'menu:topbar', '\ColdTrick\FriendRequest\TopbarMenu::register');
elgg_register_plugin_hook_handler('register', 'menu:page', '\ColdTrick\FriendRequest\PageMenu::registerCleanup');
elgg_register_plugin_hook_handler('register', 'menu:page', '\ColdTrick\FriendRequest\PageMenu::register');
elgg_register_plugin_hook_handler('register', 'menu:user_hover', '\ColdTrick\FriendRequest\Users::registerUserHoverMenu');
elgg_register_plugin_hook_handler('register', 'menu:entity', '\ColdTrick\FriendRequest\Users::registerEntityMenu');
// Actions
// This overwrites the original friend requesting stuff.
elgg_register_action('friends/add', dirname(__FILE__) . '/actions/friends/add.php');
// We need to override the friend remove action to remove the relationship we created
elgg_register_action('friends/remove', dirname(__FILE__) . '/actions/friends/removefriend.php');
// friend request actions
elgg_register_action('friend_request/approve', dirname(__FILE__) . '/actions/approve.php');
elgg_register_action('friend_request/decline', dirname(__FILE__) . '/actions/decline.php');
elgg_register_action('friend_request/revoke', dirname(__FILE__) . '/actions/revoke.php');
}
\ No newline at end of file
<?php ?>
.friend-request-new {
color: white;
background-color: red;
-webkit-border-radius: 10px;
-moz-border-radius: 10px;
border-radius: 10px;
-webkit-box-shadow: -2px 2px 4px rgba(0, 0, 0, 0.50);
-moz-box-shadow: -2px 2px 4px rgba(0, 0, 0, 0.50);
box-shadow: -2px 2px 4px rgba(0, 0, 0, 0.50);
position: absolute;
text-align: center;
top: 0px;
left: 28px;
min-width: 16px;
height: 16px;
font-size: 10px;
font-weight: bold;
}
\ No newline at end of file