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

Design issue Hidden Category with Watched Forums Shows Contains No Messages

Snog

Well-known member
#1
If you are watching a forum in a hidden category ('Display in the node list' unchecked), the Watch Forum lists the forum, but it says it contains no messages.

privateforum.jpg

The user has explicit permission to view the forum via both user permissions and user group permissions.
 

Mike

XenForo developer
Staff member
#2
Unfortunately, I think this is a design issue. The need to display the forum you're watching on this page contradicts the other display in list option requirements. It leads to a situation where we can't get the data because the forum you're viewing isn't really supposed to be listed.

There was a similar issue to this before (where the forum you watched wasn't listed at all), so this is really a less significant issue than that.
 

Snog

Well-known member
#3
I had a little time, and found that if you comment out one section of the code in library/XenForo/ControllerPublic/Watched.php the last thread shows...
PHP:
  /**
    * List of all new watched content.
    *
    * @return XenForo_ControllerResponse_Abstract
    */
   public function actionForums()
   {
     /** @var $nodeModel XenForo_Model_Node */
     $nodeModel = $this->getModelFromCache('XenForo_Model_Node');
     $forumWatchModel = $this->_getForumWatchModel();
     $visitor = XenForo_Visitor::getInstance();

     $forumsWatched = $forumWatchModel->getUserForumWatchByUser($visitor['user_id']);
     $nodes = $nodeModel->getAllNodes(false, false);

     foreach ($nodes AS $nodeId => $node)
     {
       if ($node['display_in_list'])
       {
         continue;
       }

//       if (!isset($forumsWatched[$nodeId]))
//       {
//         unset($nodes[$nodeId]);
//       }
     }

     $viewParams = array(
       'nodeList' => $nodeModel->getNodeListDisplayData($nodes, 0, 0),
       'forumsWatched' => $forumsWatched
     );

     return $this->responseView('XenForo_ViewPublic_Watched_Forums', 'watch_forums', $viewParams);
   }
I don't know what impact this has on any other part of the code, but it seems to work.
 

Mike

XenForo developer
Staff member
#4
Yes, it creates other situations which are incorrect (listing and considering forums that aren't normally shown).