protected function autoContext($Hint = null) { // If we're already configured, don't auto configure if (!is_null($this->ParentID) && is_null($Hint)) { return; } // If no hint was given, determine by environment if (is_null($Hint)) { if (Gdn::controller() instanceof Gdn_Controller) { $DiscussionID = Gdn::controller()->data('Discussion.DiscussionID', null); $CategoryID = Gdn::controller()->data('Category.CategoryID', null); if ($DiscussionID) { $Hint = 'Discussion'; } elseif ($CategoryID) { $Hint = 'Category'; } else { $Hint = 'Global'; } } } switch ($Hint) { case 'Discussion': $this->ParentType = 'Discussion'; $DiscussionID = Gdn::controller()->data('Discussion.DiscussionID'); $this->ParentID = $DiscussionID; break; case 'Category': if ($this->CategorySearch) { $this->ParentType = 'Category'; $CategoryID = Gdn::controller()->data('Category.CategoryID'); $this->ParentID = $CategoryID; } break; } if (!$this->ParentID) { $this->ParentID = 0; $this->ParentType = 'Global'; } }