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';
}
}