Bare (6/13/2005) I think this board is currently running on RC3... and this issue still exists...
*bump* Hi Bare / Jimmy, Many thanks for your input on this. This actually works as designed however the wording currently used is confusing and will be changed. The forum markers actually indicate if new posts have been added to the forum (or sub-forums) since you last viewed the forum. They do not indicate if all posts within the forum (and sub-forums) have been read. Based on your suggestion however i've spent two days looking at ways to ensure the forum icons only update once all topics within a forum (and sub-forums) have been read. Unfortunately this is not looking like something that will be available within the final v4.0 release. To determine if all posts within a forum have been read we would need to search the InstantForum_TopicsRead table for all topics within a specific forum and use this to determine if we have read all topics within a forum before flagging the forum as read. Obviously a forum may contain several thousand posts and reading or even performing a simple count on the read topics from the InstantForum_TopicsRead table would cause performance problems. Currently topic read information is pulled from the InstantForum_TopicsRead table based on which topics are displayed per page within a forum, this limits the topic read data returned and ensures each forum only returns the topic read data for the topics presented to the user. For example to determine if all topics within a forum have been read we would need to perform a query similar to... SELECT Count(InstantForum_TopicsRead.TopicsReadID) FROM InstantForum_TopicsRead WHERE InstantForum_TopicsRead.ReadTopicID IN (SELECT DISTINCT InstantForum_Topics.TopicID FROM InstantForum_Topics WHERE InstantForum_Topics.ForumID = 7) AND InstantForum_TopicsRead.ReadUserID = 1 Or if we logged the forum identity within InstantForum_TopicsRead (which we don't currently as this would be tricky to ensure it's consistent)... SELECT Count(InstantForum_TopicsRead.TopicsReadID) FROM InstantForum_TopicsRead WHERE InstantForum_TopicsRead.ReadForumID = 7 AND InstantForum_TopicsRead.ReadUserID = 1 Either way we could then use this count to compare against the actual number of topics within the forum. If they match or the read count is higher we could assume the user has read all the topics within the forum and we can mark the forum as read. However if our forum used in this example has say half a million topics these queries would not be acceptable. This is why this requires a little more time. It's not impossible to only flag a forum as read once all topics have actually been read however based on the work over the last couple days i've discovered this would require some reworking to ensure this did not effect performance. At this stage it would be sensible to wait for final release and hopefully offer this functionality within a minor update. Currently the forum markers are not broke and they appear to work as designed. I quite agree the wording currently used is confusing. This will be changed to show only indicates if a forum has new posts since you last viewed the forum. We'll also be updating the working used on the topic markers to make this more clear. Many thanks again Jimmy / Bare, I'd certainly appreciate any further comments,
 Kindest Regards,
Ryan Healey Director / Developer
Explore our products... http://demos.instantasp.co.uk/
|