Advertisement:

Author Topic: Alerts, Notifications are not working  (Read 6953 times)

Offline Dragooon

  • SMF Friend
  • SMF Hero
  • *
  • Posts: 6,738
  • Gender: Male
  • I'm batman
    • ShitizGarg on Facebook
    • Dragooon on GitHub
    • dragooon on LinkedIn
    • SMF-Media
Re: Alerts, Notifications are not working
« Reply #20 on: June 02, 2015, 04:48:01 PM »
I tried on my localhost and it works for me, are the profile settings correct for the person receiving the alerts?

Offline Kindred

  • The Mean One
  • Support Specialist
  • SMF Legend
  • *
  • Posts: 58,617
  • Gender: Male
    • Kindred-999 on GitHub
Re: Alerts, Notifications are not working
« Reply #21 on: June 02, 2015, 05:59:30 PM »
Seems to work for me as well
Please do not PM, IM or Email me with support questions.  You will get better and faster responses in the support boards.  Thank you.

Offline live627

  • Development Contributor
  • SMF Hero
  • *
  • Posts: 5,620
  • Gender: Male
    • live627 on Facebook
    • live627 on GitHub
    • live627 on LinkedIn
    • @live627 on Twitter
    • livemods
Re: Alerts, Notifications are not working
« Reply #22 on: June 02, 2015, 09:37:22 PM »
I am using SMF 2.1 Beta 1 that was released in November in 2014.
Ah,  there's your problem. That release has a bug where alert emails never get sent.
Try not to become a man of success, but rather try to become a man of value.
- Albert Einstein

Offline Illori

  • Project Manager
  • SMF Legend
  • *
  • Posts: 51,584
Re: Alerts, Notifications are not working
« Reply #23 on: June 03, 2015, 07:18:01 AM »
I am using SMF 2.1 Beta 1 that was released in November in 2014.
Ah,  there's your problem. That release has a bug where alert emails never get sent.

that was a bug with the email for resetting your password, not for notifications/alerts.

Offline lc62003

  • Jr. Member
  • **
  • Posts: 207
Re: Alerts, Notifications are not working
« Reply #24 on: June 03, 2015, 09:42:46 AM »
I tried on my localhost

To be quite honest, I believe this is why many of the bugs persist.  Localhost simply is not the same as a live server.  I already outed (here) an upgrade bug that didn't occur on localhost.   ;)

Offline Kindred

  • The Mean One
  • Support Specialist
  • SMF Legend
  • *
  • Posts: 58,617
  • Gender: Male
    • Kindred-999 on GitHub
Re: Alerts, Notifications are not working
« Reply #25 on: June 03, 2015, 10:30:45 AM »
Well, I have it installed and running on an actual site/server...  and it works correctly for me
Please do not PM, IM or Email me with support questions.  You will get better and faster responses in the support boards.  Thank you.

Offline lc62003

  • Jr. Member
  • **
  • Posts: 207
Re: Alerts, Notifications are not working
« Reply #26 on: June 03, 2015, 10:44:49 AM »
Well, I have it installed and running on an actual site/server...  and it works correctly for me

I didn't say that was the case for this particular bug.  Just saying it's more relevant for troubleshooting or even bug discovery in general.   ;)

Offline lc62003

  • Jr. Member
  • **
  • Posts: 207
Re: Alerts, Notifications are not working
« Reply #27 on: June 03, 2015, 04:31:22 PM »
Alerts work for me using a legacy version of  Likes-Notify.php in the ./Sources/tasks folder.


Code: [Select]
<?php

/**
 * This task handles notifying users when something is liked.
 *
 * Simple Machines Forum (SMF)
 *
 * @package SMF
 * @author Simple Machines http://www.simplemachines.org
 * @copyright 2014 Simple Machines and individual contributors
 * @license http://www.simplemachines.org/about/smf/license.php BSD
 *
 * @version 2.1 Alpha 1
 */

class Likes_Notify_Background extends SMF_BackgroundTask
{
public function execute()
{
global $smcFunc$sourcedir;

$author false;
// We need to figure out who the owner of this is.
if ($this->_details['content_type'] == 'msg')
{
$request $smcFunc['db_query']('''
SELECT mem.id_member, mem.id_group, mem.id_post_group, mem.additional_groups, b.member_groups
FROM {db_prefix}messages AS m
INNER JOIN {db_prefix}members AS mem ON (m.id_member = mem.id_member)
INNER JOIN {db_prefix}boards AS b ON (m.id_board = b.id_board)
WHERE id_msg = {int:msg}'
,
array(
'msg' => $this->_details['content_id'],
)
);
if ($row $smcFunc['db_fetch_assoc']($request))
{
// Before we assign the author, let's just check that the author can see the board this is in...
// as it'd suck to notify someone their post was liked when in a board they can't see.
$groups explode(','$row['additional_groups']);
$groups[] = $row['id_group'];
$groups[] = $row['id_post_group'];
$allowed explode(','$row['member_groups']);

// If the user is in group 1 anywhere, they can see everything anyway.
if (in_array(1$groups) || count(array_intersect($allowed$groups)) != 0)
$author $row['id_member'];
}
$smcFunc['db_free_result']($request);
}
else
{
// This isn't something we know natively how to support. Call the hooks, if they're dealing with it, return false, otherwise return the user id.
$hook_results call_integration_hook('integrate_find_like_author', array($this->_details['content_type'], $this->_details['content_id']));
foreach ($hook_results as $result)
if (!empty($result))
{
$author $result;
break;
}
}

// If we didn't have a member... leave.
if (empty($author))
return true;

// If the person who sent the notification is the person whose content it is, do nothing.
if ($author == $this->_details['sender_id'])
return true;

require_once($sourcedir '/Subs-Notify.php');
$prefs getNotifyPrefs($author$this->_details['content_type'] . '_like'true);

// The likes setup doesn't support email notifications because that would be too many emails.
// As a result, the value should really just be non empty.

// Check the value. If no value or it's empty, they didn't want alerts, oh well.
if (empty($prefs[$author][$this->_details['content_type'] . '_like']))
return true;

// Issue, update, move on.
$smcFunc['db_insert']('insert',
'{db_prefix}user_alerts',
array('alert_time' => 'int''id_member' => 'int''id_member_started' => 'int''member_name' => 'string',
'content_type' => 'string''content_id' => 'int''content_action' => 'string''is_read' => 'int''extra' => 'string'),
array($this->_details['time'], $author$this->_details['sender_id'], $this->_details['sender_name'],
$this->_details['content_type'], $this->_details['content_id'], 'like'0''),
array('id_alert')
);

updateMemberData($author, array('alerts' => '+'));

return true;
}
}
?>




It is essentially the same as the current Git file minus the "anti spam" code.

Code: [Select]
// Don't spam the alerts: if there is an existing unread alert of the
// requested type for the target user from the sender, don't make a new one.
$request = $smcFunc['db_query']('', '
SELECT id_alert
FROM {db_prefix}user_alerts
WHERE id_member = {int:id_member}
AND is_read = 0
AND content_type = {string:content_type}
AND content_id = {int:content_id}
AND content_action = {string:content_action}',
array(
'id_member' => $author,
'content_type' => $this->_details['content_type'],
'content_id' => $this->_details['content_id'],
'content_action' => 'like',
)
);

if ($smcFunc['db_num_rows']($request) > 0)
return true;
$smcFunc['db_free_result']($request);


Just out of curiosity if your alerts are working, does your file contain the above code?  If so why does it not work for my site?

Offline Dragooon

  • SMF Friend
  • SMF Hero
  • *
  • Posts: 6,738
  • Gender: Male
  • I'm batman
    • ShitizGarg on Facebook
    • Dragooon on GitHub
    • dragooon on LinkedIn
    • SMF-Media
Re: Alerts, Notifications are not working
« Reply #28 on: June 03, 2015, 04:43:08 PM »
Are no alerts being issued before you remove the code? Not even one?

Offline lc62003

  • Jr. Member
  • **
  • Posts: 207
Re: Alerts, Notifications are not working
« Reply #29 on: June 03, 2015, 04:46:31 PM »
Are no alerts being issued before you remove the code? Not even one?

Correct.  None whatsoever. 

Offline Dragooon

  • SMF Friend
  • SMF Hero
  • *
  • Posts: 6,738
  • Gender: Male
  • I'm batman
    • ShitizGarg on Facebook
    • Dragooon on GitHub
    • dragooon on LinkedIn
    • SMF-Media
Re: Alerts, Notifications are not working
« Reply #30 on: June 03, 2015, 04:47:44 PM »
Do you have any rows in user_alerts table?

Offline lc62003

  • Jr. Member
  • **
  • Posts: 207
Re: Alerts, Notifications are not working
« Reply #31 on: June 03, 2015, 04:52:45 PM »
Actually yes.  The alert queue shows up in the alert notifications with the addition of the legacy Likes-Notify file since they lie in wait from the database.