/** * * @param XenForo_ControllerPublic_Forum $controller */ protected function _processJokePollCreate(XenForo_ControllerPublic_Forum $controller) { $jokePollInput = ThemeHouse_JokePoll_DataWriter_Helper_JokePoll::getJokePollInput($controller->getInput()); $jokePollIds = ThemeHouse_JokePoll_DataWriter_Helper_JokePoll::getCurrentJokePollIds(); if (isset($GLOBALS['XenForo_DataWriter_Discussion_Thread'])) { /* @var $threadWriter XenForo_DataWriter_Discussion_Thread */ $threadWriter = $GLOBALS['XenForo_DataWriter_Discussion_Thread']; $forum = $threadWriter->getExtraData(XenForo_DataWriter_Discussion_Thread::DATA_FORUM); } else { $forumId = $controller->getInput()->filterSingle('node_id', XenForo_Input::UINT); $forumName = $controller->getInput()->filterSingle('node_name', XenForo_Input::STRING); $ftpHelper = $controller->getHelper('ForumThreadPost'); // TODO: probably should cache $forum $forum = $ftpHelper->assertForumValidAndViewable($forumId ? $forumId : $forumName); } if ($this->getModelFromCache('XenForo_Model_Forum')->canMakeJokePollInForum($forum)) { if (isset($jokePollInput['first_choice']) && $jokePollInput['first_choice']) { $jokePollIds['first_choice'][] = $this->get('poll_id'); } ThemeHouse_JokePoll_DataWriter_Helper_JokePoll::updateJokePollIdOptions($jokePollIds); } }
/** * Creates the specified helper class. * If no underscore is present in the class * name, "XenForo_ControllerHelper_" is prefixed. Otherwise, a full class * name * is assumed. * * @param string $class Full class name, or partial suffix (if no * underscore) * * @return XenForo_ControllerHelper_Abstract */ public function getHelper($class) { if ($class == "ForumThreadPost") { $class = 'ThemeHouse_SocialGroups_ControllerHelper_SocialCategory'; } return parent::getHelper($class); }