public function bdTagMe_actionContactDetailsSave(XenForo_DataWriter_User $dw) { if (bdTagMe_Option::get('alertEmail')) { $settings = $this->_input->filter(array('bdtagme_email' => XenForo_Input::UINT)); $dw->bulkSet($settings); } unset($GLOBALS['bdTagMe_XenForo_ControllerPublic_Account#actionContactDetailsSave']); }
public function getDataFieldsFromUserDw(array $contact, XenForo_DataWriter_User $dw, $updatedOnly = false) { $xenOptions = XenForo_Application::get('options'); $formFieldOptions = $xenOptions->th_infusionsoftApi_formFields; $customFields = array(); if ($updatedOnly) { $customFields = $dw->getUpdatedCustomFields(); } elseif ($dw->get('custom_fields')) { $customFields = unserialize($dw->get('custom_fields')); } /* @var $dataFormFieldModel ThemeHouse_Infusionsoft_Model_InfusionsoftApi_DataService_DataFormField */ $dataFormFieldModel = $this->getModelFromCache('ThemeHouse_Infusionsoft_Model_InfusionsoftApi_DataService_DataFormField'); foreach ($formFieldOptions as $userFieldName => $dataFormFieldName) { if ($dataFormFieldName) { $value = ''; $isUpdated = false; if (strlen($userFieldName) > strlen('custom_field_') && substr($userFieldName, 0, strlen('custom_field_')) == 'custom_field_') { $fieldId = substr($userFieldName, strlen('custom_field_')); if (isset($customFields[$fieldId])) { $value = $customFields[$fieldId]; $isUpdated = true; } } else { $value = $dw->get($userFieldName); $isUpdated = $dw->isChanged($userFieldName); } if ($updatedOnly && !$isUpdated) { continue; } if (substr($dataFormFieldName, 0, 1) == '_') { if (!isset($dataFormFields)) { $dataFormFields = $dataFormFieldModel->getDataFormFieldsForForm(-1); } foreach ($dataFormFields as $dataFormField) { if ($dataFormField['Name'] == substr($dataFormFieldName, 1)) { switch ($dataFormField['DataType']) { case ThemeHouse_Infusionsoft_Model_InfusionsoftApi_DataService_DataFormField::DATE: case ThemeHouse_Infusionsoft_Model_InfusionsoftApi_DataService_DataFormField::DATE_TIME: $contact[$dataFormFieldName] = new Zend_XmlRpc_Value_DateTime($value); break; case ThemeHouse_Infusionsoft_Model_InfusionsoftApi_DataService_DataFormField::TEXT: case ThemeHouse_Infusionsoft_Model_InfusionsoftApi_DataService_DataFormField::TEXTAREA: $contact[$dataFormFieldName] = (string) $value; break; default: // do nothing } break; } } } else { $contact[$dataFormFieldName] = (string) $value; } } } return $contact; }
protected function _runSpamCheck(XenForo_DataWriter_User $writer, array $extraErrors = array()) { /** @var XenForo_Model_SpamPrevention $spamModel */ $spamModel = $this->getModelFromCache('XenForo_Model_SpamPrevention'); if ($extraErrors || $writer->getErrors()) { return $spamModel; } $spamResponse = $spamModel->allowRegistration($writer->getMergedData(), $this->_request); switch ($spamResponse) { case XenForo_Model_SpamPrevention::RESULT_DENIED: $spamModel->logSpamTrigger('user', null); $writer->error(new XenForo_Phrase('spam_prevention_registration_rejected'), 'spam'); break; case XenForo_Model_SpamPrevention::RESULT_MODERATED: $writer->set('user_state', 'moderated'); break; } return $spamModel; }
public function bdSocialShare_actionPreferencesSave(XenForo_DataWriter_User $userDw) { $userDw->set('bdsocialshare_options', $this->_input->filterSingle('bdsocialshare_options', XenForo_Input::ARRAY_SIMPLE)); unset($GLOBALS[bdSocialShare_Listener::XENFORO_CONTROLLERPUBLIC_ACCOUNT_PREFERENCES_SAVE]); }
public function updateTaggableUserGroups(array $userGroupIds, XenForo_DataWriter_User $dw) { $taggableUserGroups = $this->getTaggableUserGroups(); $isChanged = false; /** @var bdTagMe_XenForo_Model_User $userModel */ $userModel = $dw->getModelFromCache('XenForo_Model_User'); foreach ($taggableUserGroups as &$taggableUserGroup) { if (in_array($taggableUserGroup['user_group_id'], $userGroupIds)) { // this user group need to be updated $taggableUserGroup['userIds'] = $userModel->bdTagMe_getUserIdsByUserGroupId($taggableUserGroup['user_group_id']); $isChanged = true; } } if ($isChanged) { XenForo_Application::setSimpleCacheData(self::SIMPLE_CACHE_KEY_TAGGABLE_USER_GROUPS, $taggableUserGroups); } }