function answers_userpoints_answer_settings_form_submit in Answers 7.4
Process best answer configuration settings.
1 string reference to 'answers_userpoints_answer_settings_form_submit'
- answers_userpoints_form_alter in answers_userpoints/
answers_userpoints.module - Implements hook_form_alter().
File
- answers_userpoints/
answers_userpoints.module, line 176 - The answers_userpoints module.
Code
function answers_userpoints_answer_settings_form_submit($form, &$form_state) {
$rules_voteup_question = $form_state['values']['rules_voteup_question'];
$rules_votedown_question = $form_state['values']['rules_votedown_question'];
$rules_votedown_question_cost = $form_state['values']['rules_votedown_question_cost'];
$rules_voteup_answer = $form_state['values']['rules_voteup_answer'];
$rules_votedown_answer = $form_state['values']['rules_votedown_answer'];
$rules_votedown_answer_cost = $form_state['values']['rules_votedown_answer_cost'];
$rules_best_answer = $form_state['values']['rules_best_answer'];
$rules_best_answer_user = $form_state['values']['rules_best_answer_user'];
$rules_own_best_answer = $form_state['values']['rules_own_best_answer'];
$rules = array(
'rules_voteup_question',
'rules_voteup_question_cancel',
'rules_votedown_question',
'rules_votedown_question_cancel',
'answers_userpoints_votedown_question_voter',
'answers_userpoints_votedown_question_voter_cancel',
'rules_voteup_answer',
'rules_voteup_answer_cancel',
'rules_votedown_answer',
'answers_userpoints_votedown_answer_cancel',
'answers_userpoints_votedown_answer_voter',
'answers_userpoints_votedown_answer_voter_cancel',
'rules_flag_answers_best_answer',
'rules_unflag_answers_best_answer',
'answers_userpoints_flag_answers_best_answer_flagger',
'answers_userpoints_unflag_answers_best_answer_flagger',
'answers_userpoints_flag_answers_own_best_answer',
'answers_userpoints_unflag_answers_own_best_answer',
);
foreach ($rules as $key) {
$update = FALSE;
$rule = rules_config_load($key);
foreach ($rule
->actions() as $action) {
switch ($key) {
case 'rules_voteup_question':
if ($rule->active != ($rules_voteup_question != 0)) {
$rule->active = $rules_voteup_question != 0;
$update = TRUE;
}
if ($action->settings['operation'] == 'addPoints' && $action->settings['user:select'] == 'node:author') {
if ($action->settings['points'] != $rules_voteup_question) {
$action->settings['points'] = $rules_voteup_question;
$update = TRUE;
}
}
break;
case 'rules_voteup_question_cancel':
if ($rule->active != ($rules_voteup_question != 0)) {
$rule->active = $rules_voteup_question != 0;
$update = TRUE;
}
if ($action->settings['operation'] == 'addPoints' && $action->settings['user:select'] == 'node:author') {
if ($action->settings['points'] != $rules_voteup_question * -1) {
$action->settings['points'] = $rules_voteup_question * -1;
$update = TRUE;
}
}
break;
case 'rules_votedown_question':
if ($rule->active != ($rules_votedown_question != 0)) {
$rule->active = $rules_votedown_question != 0;
$update = TRUE;
}
if ($action->settings['operation'] == 'removePoints') {
if ($action->settings['user:select'] == 'node:author') {
if ($action->settings['points'] != $rules_votedown_question * -1) {
$action->settings['points'] = $rules_votedown_question * -1;
$update = TRUE;
}
}
}
break;
case 'rules_votedown_question_cancel':
if ($rule->active != ($rules_votedown_question != 0)) {
$rule->active = $rules_votedown_question != 0;
$update = TRUE;
}
if ($action->settings['operation'] == 'deletePoints') {
if ($action->settings['user:select'] == 'node:author') {
if ($action->settings['points'] != $rules_votedown_question) {
$action->settings['points'] = $rules_votedown_question;
$update = TRUE;
}
}
}
break;
case 'answers_userpoints_votedown_question_voter':
if ($rule->active != ($rules_votedown_question_cost != 0)) {
$rule->active = $rules_votedown_question_cost != 0;
$update = TRUE;
}
if ($action->settings['user:select'] == 'vote:user') {
if ($action->settings['points'] != $rules_votedown_question_cost * -1) {
$action->settings['points'] = $rules_votedown_question_cost * -1;
$update = TRUE;
}
}
break;
case 'answers_userpoints_votedown_question_voter_cancel':
if ($rule->active != ($rules_votedown_question_cost != 0)) {
$rule->active = $rules_votedown_question_cost != 0;
$update = TRUE;
}
if ($action->settings['user:select'] == 'vote:user') {
if ($action->settings['points'] != $rules_votedown_question_cost) {
$action->settings['points'] = $rules_votedown_question_cost;
$update = TRUE;
}
}
break;
case 'rules_voteup_answer':
if ($rule->active != ($rules_voteup_answer != 0)) {
$rule->active = $rules_voteup_answer != 0;
$update = TRUE;
}
if ($action->settings['operation'] == 'addPoints' && $action->settings['user:select'] == 'node:author') {
if ($action->settings['points'] != $rules_voteup_answer) {
$action->settings['points'] = $rules_voteup_answer;
$update = TRUE;
}
}
break;
case 'rules_voteup_answer_cancel':
if ($rule->active != ($rules_voteup_answer != 0)) {
$rule->active = $rules_voteup_answer != 0;
$update = TRUE;
}
if ($action->settings['operation'] == 'addPoints' && $action->settings['user:select'] == 'node:author') {
if ($action->settings['points'] != $rules_voteup_answer * -1) {
$action->settings['points'] = $rules_voteup_answer * -1;
$update = TRUE;
}
}
break;
case 'rules_votedown_answer':
if ($rule->active != ($rules_votedown_answer != 0)) {
$rule->active = $rules_votedown_answer != 0;
$update = TRUE;
}
if ($action->settings['operation'] == 'deletePoints') {
if ($action->settings['user:select'] == 'node:author') {
if ($action->settings['points'] != $rules_votedown_answer * -1) {
$action->settings['points'] = $rules_votedown_answer * -1;
$update = TRUE;
}
}
}
break;
case 'answers_userpoints_votedown_answer_cancel':
if ($rule->active != ($rules_votedown_answer != 0)) {
$rule->active = $rules_votedown_answer != 0;
$update = TRUE;
}
if ($action->settings['operation'] == 'addPoints') {
if ($action->settings['user:select'] == 'node:author') {
if ($action->settings['points'] != $rules_votedown_answer) {
$action->settings['points'] = $rules_votedown_answer;
$update = TRUE;
}
}
}
break;
case 'answers_userpoints_votedown_answer_voter':
if ($rule->active != ($rules_votedown_answer_cost != 0)) {
$rule->active = $rules_votedown_answer_cost != 0;
$update = TRUE;
}
if ($action->settings['operation'] == 'deletePoints') {
if ($action->settings['user:select'] == 'vote:user') {
if ($action->settings['points'] != $rules_votedown_answer_cost * -1) {
$action->settings['points'] = $rules_votedown_answer_cost * -1;
$update = TRUE;
}
}
}
break;
case 'answers_userpoints_votedown_answer_voter_cancel':
if ($rule->active != ($rules_votedown_answer_cost != 0)) {
$rule->active = $rules_votedown_answer_cost != 0;
$update = TRUE;
}
if ($action->settings['operation'] == 'addPoints') {
if ($action->settings['user:select'] == 'vote:user') {
if ($action->settings['points'] != $rules_votedown_answer_cost) {
$action->settings['points'] = $rules_votedown_answer_cost;
$update = TRUE;
}
}
}
break;
case 'rules_flag_answers_best_answer':
if ($rule->active != ($rules_best_answer != 0)) {
$rule->active = $rules_best_answer != 0;
$update = TRUE;
}
if ($action->settings['operation'] == 'addPoints') {
if ($action->settings['user:select'] == 'flagged-node:author') {
if ($action->settings['points'] != $rules_best_answer) {
$action->settings['points'] = $rules_best_answer;
$update = TRUE;
}
}
}
break;
case 'rules_unflag_answers_best_answer':
if ($rule->active != ($rules_best_answer != 0)) {
$rule->active = $rules_best_answer != 0;
$update = TRUE;
}
if ($action->settings['operation'] == 'addPoints') {
if ($action->settings['user:select'] == 'flagged-node:author') {
if ($action->settings['points'] != $rules_best_answer * -1) {
$action->settings['points'] = $rules_best_answer * -1;
$update = TRUE;
}
}
}
break;
case 'answers_userpoints_flag_answers_best_answer_flagger':
if ($rule->active != ($rules_best_answer_user != 0)) {
$rule->active = $rules_best_answer_user != 0;
$update = TRUE;
}
if ($action->settings['user:select'] == 'flagging-user') {
if ($action->settings['points'] != $rules_best_answer_user) {
$action->settings['points'] = $rules_best_answer_user;
$update = TRUE;
}
}
break;
case 'answers_userpoints_unflag_answers_best_answer_flagger':
if ($rule->active != ($rules_best_answer_user != 0)) {
$rule->active = $rules_best_answer_user != 0;
$update = TRUE;
}
if ($action->settings['user:select'] == 'flagging-user') {
if ($action->settings['points'] != $rules_best_answer_user * -1) {
$action->settings['points'] = $rules_best_answer_user * -1;
$update = TRUE;
}
}
break;
case 'answers_userpoints_flag_answers_own_best_answer':
if ($rule->active != ($rules_own_best_answer != 0)) {
$rule->active = $rules_own_best_answer != 0;
$update = TRUE;
}
if ($action->settings['operation'] == 'addPoints') {
if ($action->settings['user:select'] == 'flagging-user') {
if ($action->settings['points'] != $rules_own_best_answer) {
$action->settings['points'] = $rules_own_best_answer;
$update = TRUE;
}
}
}
break;
case 'answers_userpoints_unflag_answers_own_best_answer':
if ($rule->active != ($rules_own_best_answer != 0)) {
$rule->active = $rules_own_best_answer != 0;
$update = TRUE;
}
if ($action->settings['operation'] == 'removePoints') {
if ($action->settings['user:select'] == 'flagging-user') {
if ($action->settings['points'] != $rules_own_best_answer * -1) {
$action->settings['points'] = $rules_own_best_answer * -1;
$update = TRUE;
}
}
}
break;
}
if ($update) {
$rule
->save();
drupal_set_message(check_plain(format_string('Updated !rule', array(
'!rule' => $key,
))));
}
}
}
}