예제 #1
0
 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']);
 }
예제 #2
0
 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;
 }
예제 #3
0
 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;
 }
예제 #4
0
파일: Account.php 프로젝트: Sywooch/forums
 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]);
 }
예제 #5
0
 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);
     }
 }