public function bdTagMe_actionSave(XenForo_DataWriter_UserGroup $dw) { $isTaggable = $this->_input->filterSingle('bdTagMe_isTaggable', XenForo_Input::BINARY); $userGroup = $dw->getMergedData(); $engine = bdTagMe_Engine::getInstance(); $engine->setTaggableUserGroup($userGroup, $isTaggable, $dw); unset($GLOBALS['bdTagMe_XenForo_ControllerAdmin_UserGroup#actionSave']); }
public function setTaggableUserGroup(array $userGroup, $isTaggable, XenForo_DataWriter_UserGroup $dw) { $taggableUserGroups = $this->getTaggableUserGroups(); $isChanged = false; if ($isTaggable) { // get users and update into the taggable list /** @var bdTagMe_XenForo_Model_User $userModel */ $userModel = $dw->getModelFromCache('XenForo_Model_User'); $taggableUserGroups[$userGroup['user_group_id']] = array('user_group_id' => $userGroup['user_group_id'], 'title' => $userGroup['title'], 'userIds' => $userModel->bdTagMe_getUserIdsByUserGroupId($userGroup['user_group_id'])); ksort($taggableUserGroups); $isChanged = true; } else { // unset this user group if needed foreach (array_keys($taggableUserGroups) as $taggableUserGroupId) { if ($taggableUserGroupId == $userGroup['user_group_id']) { unset($taggableUserGroups[$taggableUserGroupId]); $isChanged = true; } } } if ($isChanged) { XenForo_Application::setSimpleCacheData(self::SIMPLE_CACHE_KEY_TAGGABLE_USER_GROUPS, $taggableUserGroups); } }