mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-28 06:08:52 +00:00
[ticket/11103] Trying to fix an odd issue with unread status on approved posts
From a recent change, when your posts/topics are approved, they will be marked read automatically because you've read the topic/post already. To change that I've forced the notification to be marked unread and attempted to reset the read status on the post/topic to be unread before the post that was approved. This does not seem to work so well and I don't know of any way this can really be properly fixed, so the code I was working on I've commented out. For now, users will just need to manually mark these types of notifications as read. I cannot think of a way for this to be fixed without running two additional queries on every viewtopic. PHPBB3-11103
This commit is contained in:
parent
c60b15294a
commit
39fd31d3ae
2 changed files with 62 additions and 0 deletions
|
@ -114,6 +114,38 @@ class phpbb_notification_type_approve_post extends phpbb_notification_type_post
|
||||||
return $notify_users;
|
return $notify_users;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Pre create insert array function
|
||||||
|
* This allows you to perform certain actions, like run a query
|
||||||
|
* and load data, before create_insert_array() is run. The data
|
||||||
|
* returned from this function will be sent to create_insert_array().
|
||||||
|
*
|
||||||
|
* @param array $post Post data from submit_post
|
||||||
|
* @param array $notify_users Notify users list
|
||||||
|
* Formated from find_users_for_notification()
|
||||||
|
* @return array Whatever you want to send to create_insert_array().
|
||||||
|
*/
|
||||||
|
public function pre_create_insert_array($post, $notify_users)
|
||||||
|
{
|
||||||
|
/*if (!sizeof($notify_users))
|
||||||
|
{
|
||||||
|
return array();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Mark the topic unread before the post
|
||||||
|
$sql = 'UPDATE ' . TOPICS_TRACK_TABLE . '
|
||||||
|
SET mark_time = ' . (int) ($post['post_time'] - 1) . '
|
||||||
|
WHERE topic_id = ' . (int) $post['topic_id'] . '
|
||||||
|
AND ' . $this->db->sql_in_set('user_id', array_keys($notify_users));
|
||||||
|
$this->db->sql_query($sql);*/
|
||||||
|
|
||||||
|
// In the parent class, this is used to check if the post is already
|
||||||
|
// read by a user and marks the notification read if it was marked read.
|
||||||
|
// Returning an empty array in effect, forces it to be marked as unread
|
||||||
|
// (and also saves a query)
|
||||||
|
return array();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function for preparing the data for insertion in an SQL query
|
* Function for preparing the data for insertion in an SQL query
|
||||||
* (The service handles insertion)
|
* (The service handles insertion)
|
||||||
|
|
|
@ -114,6 +114,36 @@ class phpbb_notification_type_approve_topic extends phpbb_notification_type_topi
|
||||||
return $notify_users;
|
return $notify_users;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Pre create insert array function
|
||||||
|
* This allows you to perform certain actions, like run a query
|
||||||
|
* and load data, before create_insert_array() is run. The data
|
||||||
|
* returned from this function will be sent to create_insert_array().
|
||||||
|
*
|
||||||
|
* @param array $post Post data from submit_post
|
||||||
|
* @param array $notify_users Notify users list
|
||||||
|
* Formated from find_users_for_notification()
|
||||||
|
* @return array Whatever you want to send to create_insert_array().
|
||||||
|
*/
|
||||||
|
public function pre_create_insert_array($post, $notify_users)
|
||||||
|
{
|
||||||
|
/*if (!sizeof($notify_users))
|
||||||
|
{
|
||||||
|
return array();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Mark the topic unread
|
||||||
|
$sql = 'DELETE FROM ' . TOPICS_TRACK_TABLE . '
|
||||||
|
WHERE topic_id = ' . (int) $post['topic_id'] . '
|
||||||
|
AND ' . $this->db->sql_in_set('user_id', array_keys($notify_users));
|
||||||
|
$this->db->sql_query($sql*/
|
||||||
|
|
||||||
|
// In the parent class, this is used to check if the post is already
|
||||||
|
// read by a user and marks the notification read if it was marked read.
|
||||||
|
// Returning an empty array in effect, forces it to be marked as unread
|
||||||
|
return array();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function for preparing the data for insertion in an SQL query
|
* Function for preparing the data for insertion in an SQL query
|
||||||
* (The service handles insertion)
|
* (The service handles insertion)
|
||||||
|
|
Loading…
Add table
Reference in a new issue