• This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn more.

XF 1.5 Best way to obtain list of user's watched forums

The model XenForo_Model_ThreadWatch has the method getThreadsWatchedByUser. However, I can't find an equivalent within the Forum models. The closest I seem to get is XenForo_Model_Forum which has some useful methods once you have the forums (eg getUnreadThreadCountInForum is helpful for what I'm doing) but you first need the forum list. I have temporarily gotten around it with a manual SQL query:

return $this->fetchAllKeyed(
                        'SELECT forum.*,node.title
                                FROM xf_forum_watch AS forum_watch
                                INNER JOIN xf_forum AS forum ON
                                        (forum.node_id = forum_watch.node_id)
                                LEFT JOIN xf_node AS node ON
                                        (forum.node_id = node.node_id)
                                WHERE forum_watch.user_id = ?'
                , 'node_id', $userId);
But I'm not sure that is the best approach. Can anyone suggest the best way to retrieve a list of all Forums that a User is subscribed to? Or failing that can anyone advise if there's at least a better way of hitting the above query?

Regards, Miles