Persistent Alerts

Persistent Alerts [Paid] 2.7.0

No permission to buy ($25.00)
Hi @Xon, are there any permissions to set for user groups or is it ready to use right after installation? Thank you
 
Hi @Xon, are there any permissions to set for user groups or is it ready to use right after installation? Thank you
There are only a few global options, which come with semi-decent defaults. No permissions need configuring
 
Hi @Xon,

We received three server errors yesterday from two different members at the same time:
Code:
XF\Db\Exception: MySQL query error [1205]: Lock wait timeout exceeded; try restarting transaction src/XF/Db/AbstractStatement.php:230
Generated by: <Member's Username> Aug 5, 2022 at 4:10 PM

Stack trace
UPDATE  `xf_user_alert` SET `view_date` = ?, `read_date` = ? WHERE alert_id IN(14582736)
------------

#0 src/XF/Db/Mysqli/Statement.php(198): XF\Db\AbstractStatement->getException('MySQL query err...', 1205, 'HY000')
#1 src/XF/Db/Mysqli/Statement.php(79): XF\Db\Mysqli\Statement->getException('MySQL query err...', 1205, 'HY000')
#2 src/XF/Db/AbstractAdapter.php(96): XF\Db\Mysqli\Statement->execute()
#3 src/XF/Db/AbstractAdapter.php(324): XF\Db\AbstractAdapter->query('UPDATE  `xf_use...', Array)
#4 src/XF/Repository/UserAlert.php(486): XF\Db\AbstractAdapter->update('xf_user_alert', Array, 'alert_id IN(145...')
#5 src/XF/Db/AbstractAdapter.php(457): XF\Repository\UserAlert->XF\Repository\{closure}(Object(XF\Db\Mysqli\Adapter))
#6 src/XF/Repository/UserAlert.php(492): XF\Db\AbstractAdapter->executeTransaction(Object(Closure), 1)
#7 src/XF/Pub/Controller/Thread.php(126): XF\Repository\UserAlert->markUserAlertsReadForContent('post', Array)
#8 src/addons/Andy/Calendar/XF/Pub/Controller/Thread.php(16): XF\Pub\Controller\Thread->actionIndex(Object(XF\Mvc\ParameterBag))
#9 src/addons/Andy/StaffActivity/XF/Pub/Controller/Thread.php(12): Andy\Calendar\XF\Pub\Controller\Thread->actionIndex(Object(XF\Mvc\ParameterBag))
#10 src/addons/XFMG/XF/Pub/Controller/Thread.php(11): Andy\StaffActivity\XF\Pub\Controller\Thread->actionIndex(Object(XF\Mvc\ParameterBag))
#11 src/XF/Mvc/Dispatcher.php(352): XFMG\XF\Pub\Controller\Thread->actionIndex(Object(XF\Mvc\ParameterBag))
#12 src/XF/Mvc/Dispatcher.php(259): XF\Mvc\Dispatcher->dispatchClass('XF:Thread', 'Index', Object(XF\Mvc\RouteMatch), Object(XFMG\XF\Pub\Controller\Thread), NULL)
#13 src/XF/Mvc/Dispatcher.php(115): XF\Mvc\Dispatcher->dispatchFromMatch(Object(XF\Mvc\RouteMatch), Object(XFMG\XF\Pub\Controller\Thread), NULL)
#14 src/XF/Mvc/Dispatcher.php(57): XF\Mvc\Dispatcher->dispatchLoop(Object(XF\Mvc\RouteMatch))
#15 src/XF/App.php(2353): XF\Mvc\Dispatcher->run()
#16 src/XF.php(524): XF\App->run()
#17 index.php(20): XF::runApp('XF\\Pub\\App')
#18 {main}

Request state
array(4) {
  ["url"] => string(66) "/community/threads/thread-title.494506/page-193"
  ["referrer"] => string(93) "https://www.domain.com/community/threads/thread-title.494506/page-194"
  ["_GET"] => array(0) {
  }
  ["_POST"] => array(0) {
  }
}

What would cause this and how do we resolve it for the future?

Thanks
 
Hi @Xon,

We received three server errors yesterday from two different members at the same time:
Code:
XF\Db\Exception: MySQL query error [1205]: Lock wait timeout exceeded; try restarting transaction src/XF/Db/AbstractStatement.php:230
Generated by: <Member's Username> Aug 5, 2022 at 4:10 PM

Stack trace
UPDATE  `xf_user_alert` SET `view_date` = ?, `read_date` = ? WHERE alert_id IN(14582736)
------------

#0 src/XF/Db/Mysqli/Statement.php(198): XF\Db\AbstractStatement->getException('MySQL query err...', 1205, 'HY000')
#1 src/XF/Db/Mysqli/Statement.php(79): XF\Db\Mysqli\Statement->getException('MySQL query err...', 1205, 'HY000')
#2 src/XF/Db/AbstractAdapter.php(96): XF\Db\Mysqli\Statement->execute()
#3 src/XF/Db/AbstractAdapter.php(324): XF\Db\AbstractAdapter->query('UPDATE  `xf_use...', Array)
#4 src/XF/Repository/UserAlert.php(486): XF\Db\AbstractAdapter->update('xf_user_alert', Array, 'alert_id IN(145...')
#5 src/XF/Db/AbstractAdapter.php(457): XF\Repository\UserAlert->XF\Repository\{closure}(Object(XF\Db\Mysqli\Adapter))
#6 src/XF/Repository/UserAlert.php(492): XF\Db\AbstractAdapter->executeTransaction(Object(Closure), 1)
#7 src/XF/Pub/Controller/Thread.php(126): XF\Repository\UserAlert->markUserAlertsReadForContent('post', Array)
#8 src/addons/Andy/Calendar/XF/Pub/Controller/Thread.php(16): XF\Pub\Controller\Thread->actionIndex(Object(XF\Mvc\ParameterBag))
#9 src/addons/Andy/StaffActivity/XF/Pub/Controller/Thread.php(12): Andy\Calendar\XF\Pub\Controller\Thread->actionIndex(Object(XF\Mvc\ParameterBag))
#10 src/addons/XFMG/XF/Pub/Controller/Thread.php(11): Andy\StaffActivity\XF\Pub\Controller\Thread->actionIndex(Object(XF\Mvc\ParameterBag))
#11 src/XF/Mvc/Dispatcher.php(352): XFMG\XF\Pub\Controller\Thread->actionIndex(Object(XF\Mvc\ParameterBag))
#12 src/XF/Mvc/Dispatcher.php(259): XF\Mvc\Dispatcher->dispatchClass('XF:Thread', 'Index', Object(XF\Mvc\RouteMatch), Object(XFMG\XF\Pub\Controller\Thread), NULL)
#13 src/XF/Mvc/Dispatcher.php(115): XF\Mvc\Dispatcher->dispatchFromMatch(Object(XF\Mvc\RouteMatch), Object(XFMG\XF\Pub\Controller\Thread), NULL)
#14 src/XF/Mvc/Dispatcher.php(57): XF\Mvc\Dispatcher->dispatchLoop(Object(XF\Mvc\RouteMatch))
#15 src/XF/App.php(2353): XF\Mvc\Dispatcher->run()
#16 src/XF.php(524): XF\App->run()
#17 index.php(20): XF::runApp('XF\\Pub\\App')
#18 {main}

Request state
array(4) {
  ["url"] => string(66) "/community/threads/thread-title.494506/page-193"
  ["referrer"] => string(93) "https://www.domain.com/community/threads/thread-title.494506/page-194"
  ["_GET"] => array(0) {
  }
  ["_POST"] => array(0) {
  }
}

What would cause this and how do we resolve it for the future?

Thanks
That is unrelated to this add-on, and is the result of a design flaw with how alerts are touched.

You can try my Alert Improvements add-on which adjusts this logic to better avoid deadlocks.
 
  • Like
Reactions: 420
I was asked by one (1) member for this kind of feature yesterday.

So my question: is there a way to have permissions set to enable or disable the addon, maybe from their acocunt preferences?

I'm not sure everyone would welcome getting alerts with every single post rather than what they are used to, as this multiplies the number of email notifications from the forum. But if people opt in, then that would be fine.

Another idea: to make it an option on every thread (maybe as part of the watched feature) so people can choose to get alerts only for certain threads/topic?

Thanks!

Andre
 
Last edited:
I'm not sure everyone would welcome getting alerts with every single post rather than what they are used to, as this multiplies the number of email notifications from the forum. But if people opt in, then that would be fine.
There is already a per-user opt-out option with the ability to set a default for new users. This just requires the global option to enable this feature.
 
There is already a per-user opt-out option with the ability to set a default for new users. This just requires the global option to enable this feature.

Ah! OK, so "Global option" : in the addon or in Xenforo?

Could you be more precise? Where would I set this up?

Thanks!

Andre
 
Ah! OK, so "Global option" : in the addon or in Xenforo?

Could you be more precise? Where would I set this up?

Thanks!

Andre

Hi,

I'd like to know what you are referring to by GLOBAL OPTION. It's the only missing piece of informaiton I need before implementing this addon. Especially because we have loads of posts promoting loads of BF sales right now. So I don't want to risk my job by implementing something without first understanding how to set it up and end up with a huge mess at the worst of times. :)

Thanks!
 
Ah! OK, so "Global option" : in the addon or in Xenforo?
XF's options are per add-on (there is a hidden XF add-on row to hold all XenForo options). You can list all options an add-on adds via the add-on page => options dropdown on each add-on.

I'd like to know what you are referring to by GLOBAL OPTION. It's the only missing piece of informaiton I need before implementing this addon. Especially because we have loads of posts promoting loads of BF sales right now. So I don't want to risk my job by implementing something without first understanding how to set it up and end up with a huge mess at the worst of times. :)
Use a test site, especially when you are exploring configuration an add-on for the first time. This will save you so much grief.

I have 1 question before purchase . if you give permission can I ask ? Please
Please just post your question, and don't ask if you can ask.
 
Hi @Xon, I sent you a lot more data over PM about the double/triple alert bug. Can you check it out please?
 
Xon updated Persistent Alerts with a new update entry:

2.4.1 - Maintainance update

  • For reply/thread emails, make "view this thread" link actually link to the new post not jumping to the next unread post.
  • Change "Persistent Alert - Only alert on no unread alerts" option to include checking new forum watch alerts for a thread. Not just thread watches.
  • Adjust default value for "Persistent Alert - Suppress Persistent Emailing" to true

Read the rest of this update entry...
 
Hi @Xon, I sent you a lot more data over PM about the double/triple alert bug. Can you check it out please?
As I've mentioned before, XenForo's notification framework is what keeps track of if a post has generated an alert during a notification job is generated by a post being added to a thread..

This add-on just adjusts the "is recently viewed" setting to always return false, which isn't even called if the alert has already been sent by another notifier type.

That the same alert is being dispatched multiple times indicates the alert job is being re-run, which absolutely should not happen.

About the only workaround I can offer is the "Persistent Alert - Only alert on no unread alerts" setting which will ensure there is only 1 unread alert per-thread. Once they read the alert (via the site) or view the post, it will re-arm and alert more alerts for the thread
 
Hi @Xon,

Is it possible to check the user profile option "Persistent Alerts Enabled" for a specific user group by default? (If added to this user group, Persistent Alerts enabled by default but disabled for all other groups such as registered users).

I'm trying to enable Persistent Alerts for specific nodes in which specific user groups are allowed to post and get alerts

Thanks
 
This add-on doesn't have user-group permissions around this feature-set, just the global opt in/out toggle.
 
Xon updated Persistent Alerts with a new update entry:

2.5.1 - Feature update

  • Require php 7.2+
  • Convert from global+per-forum enable option to per-forum-per-usergroup permissions.
    • Add "[Persistent Alerts] - Enable" per-forum-per-usergroup permission (default global enabled)
    • Remove "Persistent Alerts - Ignore Last Read Date (For Thread Replies)" global option, and per-forum "[Persistent Alerts] - Enable" option.
    • If "Persistent Alerts - Ignore Last Read Date" global option was not yet, and per-forum "Enable Persistent Alerts" option was...

Read the rest of this update entry...
 
It is likely triggering spam filters or you are having delivery issues due to users marking it as spam and that email provider's email solution learning to send to the spambox instead of delivery the email
 
Back
Top Bottom