PHPlord tried to figure out a way to notify all who have commented on an item HERE. I too have been trying to get this to work but cant. im using 1.7.6 can anyone take a look at this and let me know what they think? I think a lot of ELGG users could benefit from this feature.
<?php
/**
* Elgg add comment action
*
* @package Elgg
*/
// Make sure we're logged in; forward to the front page if not
gatekeeper();
// Get input
$entity_guid = (int) get_input('entity_guid');
$comment_text = get_input('generic_comment');
// make sure comment is not empty
if (empty($comment_text)) {
register_error(elgg_echo("generic_comment:blank"));
forward($_SERVER['HTTP_REFERER']);
}
// Let's see if we can get an entity with the specified GUID
$entity = get_entity($entity_guid);
if (!$entity) {
register_error(elgg_echo("generic_comment:notfound"));
forward($_SERVER['HTTP_REFERER']);
}
$user = get_loggedin_user();
$annotation = create_annotation($entity->guid,
'generic_comment',
$comment_text,
"",
$user->guid,
$entity->access_id);
// tell user annotation posted
if (!$annotation) {
register_error(elgg_echo("generic_comment:failure"));
forward($_SERVER['HTTP_REFERER']);
}
//Notify everybody!
//create metadata to do that!
if (!$entity->commenters || !is_array($entity->commenters)){
if ($entity->owner_guid != $user->guid) {
$commenters = array();
//add owner_guid
$commenters[] = $entity->owner_guid;
//add poster's guid
$commenters[] = $user->guid;
$entity->commenters = $commenters;
}
}else{
//check if guid is inside, else add it!
if (!in_array($user->guid,$entity->commenters)){
$commenters = array();
$commenters = $entity->commenters;
$commenters[] = $user->guid;
//clean up first
//remove_metadata($entity->guid, commenters);
$entity->commenters = $commenters;
}
}
notify_user($entity->commenters,
$user->guid,
elgg_echo('generic_comment:email:subject'),
sprintf(
elgg_echo('generic_comment:email:body'),
$entity->title,
$user->name,
$comment_text,
$entity->getURL(),
$user->name,
$user->getURL()
)
);
}
system_message(elgg_echo("generic_comment:posted"));
//add to river
add_to_river('annotation/annotate','comment',$user->guid,$entity->guid, "", 0, $annotation);
// Forward to the entity page
forward($entity->getURL());
info@elgg.org
Security issues should be reported to security@elgg.org!
©2014 the Elgg Foundation
Elgg is a registered trademark of Thematic Networks.
Cover image by RaĆ¼l Utrera is used under Creative Commons license.
Icons by Flaticon and FontAwesome.
- mariano@marianito
mariano - 0 likes
- aghein@aghein
aghein - 0 likes
- stuartsloan@stuartsloan
stuartsloan - 0 likes
- Ademola Morebise@demola
Ademola Morebise - 0 likes
- stuartsloan@stuartsloan
stuartsloan - 0 likes
You must log in to post replies.mmmm interesante
That is very good when you have some time helped, but I'm glad your initiative.
Thank you for your responses but does anyone have any idea how to make this work?
I did eventually find a way to make it work, I have posted the (messy) code on the other thread: http://community.elgg.org/pg/forum/topic/497402/a-notifyall-commenting-system-help-needed/
THANK YOU PHPLORD!