| 1 |
<?php // $Id: send.form.inc,v 1.10 2009/08/17 21:38:15 vauxia Exp $ |
<?php // $Id: send.form.inc,v 1.11 2009/08/26 01:18:14 vauxia Exp $ |
| 2 |
|
|
| 3 |
/** |
/** |
| 4 |
* The default submission page for user-initiated send activities. |
* The default submission page for user-initiated send activities. |
| 52 |
|
|
| 53 |
$values = send_form_set_values($form, $form_state, $key); |
$values = send_form_set_values($form, $form_state, $key); |
| 54 |
|
|
| 55 |
$send = $form_state['send']; |
$send =& $form_state['send']; |
| 56 |
|
|
| 57 |
// Set up the message values. |
// Set up the message values. |
| 58 |
$message = $values['message']; |
$send->message = $values['message']; |
| 59 |
$message['sender'] = $values['from'][0]; |
$send->message['sender'] = $values['from'][0]; |
| 60 |
|
|
| 61 |
if (!isset($form_state['send_deliver']) || $form_state['send_deliver']) { |
if (!isset($form_state['send_deliver']) || $form_state['send_deliver']) { |
| 62 |
// Call the send API with our processed values. |
// Call the send API with our processed values. |
| 63 |
if ($ret = send($send, $values['to'], $send->nids, $message)) { |
if ($ret = send($send, $values['to'], $send->nids, $send->message)) { |
| 64 |
flood_register_event("send $send->name"); |
flood_register_event("send $send->name"); |
| 65 |
} |
} |
| 66 |
|
|
| 87 |
|
|
| 88 |
$form_state['rebuild'] = TRUE; |
$form_state['rebuild'] = TRUE; |
| 89 |
$form_state['redirect'] = FALSE; |
$form_state['redirect'] = FALSE; |
|
return; |
|
| 90 |
} |
} |
| 91 |
|
|
| 92 |
/** |
/** |
| 156 |
$form = drupal_rebuild_form($form_id, $form_state, $args, $form_build_id); |
$form = drupal_rebuild_form($form_id, $form_state, $args, $form_build_id); |
| 157 |
|
|
| 158 |
$send_form = $form[$key]; |
$send_form = $form[$key]; |
| 159 |
if ($element) { |
$parents = func_get_args(); |
| 160 |
foreach (element_children($send_form) as $i) { |
foreach ($parents as $parent) { |
| 161 |
if ($i != $element) $send_form[$i]['#access'] = FALSE; |
if (isset($send_form[$parent])) $send_form = $send_form[$parent]; |
|
} |
|
| 162 |
} |
} |
| 163 |
|
|
| 164 |
unset($send_form['#prefix'], $send_form['#suffix']); |
unset($send_form['#prefix'], $send_form['#suffix']); |
| 165 |
|
|
| 166 |
// Clear out the form_errors array. We're not here for validation. |
// Clear out the form_errors array. We're not here for validation. |
| 167 |
|
form_set_error(NULL, '', TRUE); |
| 168 |
drupal_get_messages('error', TRUE); |
drupal_get_messages('error', TRUE); |
| 169 |
|
|
| 170 |
$output = theme('status_messages') . drupal_render($send_form); |
$output = theme('status_messages') . drupal_render($send_form); |
| 289 |
*/ |
*/ |
| 290 |
function send_message_compose_element_process($element, $edit, &$form_state, $form) { |
function send_message_compose_element_process($element, $edit, &$form_state, $form) { |
| 291 |
|
|
| 292 |
|
$element['#theme'] = 'send_message_compose_element'; |
| 293 |
|
$element['#after_build'] = array('send_message_compose_element_set_value'); |
| 294 |
|
|
| 295 |
$send =& $form_state['send']; |
$send =& $form_state['send']; |
| 296 |
if ($edit) $send->message = $edit; |
if ($edit) $send->message = $edit; |
| 297 |
|
|
| 300 |
$templates[$t->stid] = $t->name; |
$templates[$t->stid] = $t->name; |
| 301 |
} |
} |
| 302 |
|
|
| 303 |
if (isset($send->message['template'])) { |
if (isset($send->message['admin']['template'])) { |
| 304 |
$template = $send->message['template']; |
$template = $send->message['admin']['template']; |
| 305 |
} |
} |
| 306 |
elseif (isset($send->template)) { |
elseif (isset($send->template)) { |
| 307 |
$template = $send->template; |
$template = $send->template; |
| 311 |
} |
} |
| 312 |
$template = send_template_load($template); |
$template = send_template_load($template); |
| 313 |
|
|
| 314 |
$element['template'] = array( |
$element['admin'] = array( |
| 315 |
|
'#prefix' => '<div id="message-admin">', |
| 316 |
|
'#suffix' => '</div>', |
| 317 |
|
); |
| 318 |
|
|
| 319 |
|
$element['admin']['template'] = array( |
| 320 |
'#type' => 'select', |
'#type' => 'select', |
| 321 |
'#title' => t('Message template'), |
'#title' => t('Message template'), |
| 322 |
'#options' => $templates, |
'#options' => $templates, |
| 323 |
'#default_value' => $template->stid, |
'#default_value' => $template->stid, |
| 324 |
'#access' => count($templates) > 1, |
'#access' => count($templates) > 1, |
| 325 |
|
'#parents' => array_merge($element['#parents'], array('template')), |
| 326 |
); |
); |
| 327 |
$element['template_submit'] = array( |
$element['admin']['template_submit'] = array( |
| 328 |
'#type' => 'submit', |
'#type' => 'submit', |
| 329 |
'#value' => t('Change template'), |
'#value' => t('Change template'), |
| 330 |
'#access' => $element['template']['#access'], |
'#access' => $element['template']['#access'], |
| 331 |
'#submit' => array('send_submit_refresh'), |
'#submit' => array('send_submit_refresh'), |
| 332 |
'#ahah' => array( |
'#ahah' => array( |
| 333 |
'path' => 'send/js/send_form/'. $element['#parents'][0], |
'path' => 'send/js/send_form/'. $element['#parents'][0] .'/content', |
| 334 |
'wrapper' => $element['#id'] .'-wrapper', |
'wrapper' => 'message-content', |
| 335 |
'method' => 'replace', |
'method' => 'replace', |
| 336 |
'effect' => 'fade', |
'effect' => 'fade', |
| 337 |
), |
), |
| 338 |
); |
); |
| 339 |
|
|
| 340 |
// Add an auto-submit action to the template selection. |
// Add an auto-submit action to the template selection. |
| 341 |
if ($element['template']['#access']) { |
if ($element['admin']['template']['#access']) { |
| 342 |
$js = 'Drupal.behaviors.sendMessageForm = function(context) { |
$js = 'Drupal.behaviors.sendMessageForm = function(context) { |
| 343 |
$("#'. $element['#id'] .'-template-submit").hide(); |
$("#'. $element['#id'] .'-admin-template-submit").hide(); |
| 344 |
$("select").change( function() { |
$("select").change( function() { |
| 345 |
$("#'. $element['#id'] .'-template-submit").mousedown(); |
$("#'. $element['#id'] .'-admin-template-submit").mousedown(); |
| 346 |
$("#'. $element['#id'] .'-template-submit").click(); |
$("#'. $element['#id'] .'-admin-template-submit").click(); |
| 347 |
}); |
}); |
| 348 |
}'; |
}'; |
| 349 |
drupal_add_js($js, 'inline'); |
drupal_add_js($js, 'inline'); |
| 356 |
$build_mode = $template->build_mode ? $template->build_mode : 'teaser'; |
$build_mode = $template->build_mode ? $template->build_mode : 'teaser'; |
| 357 |
} |
} |
| 358 |
|
|
| 359 |
$element['build_mode'] = array( |
$element['admin']['build_mode'] = array( |
| 360 |
'#type' => 'select', |
'#type' => 'select', |
| 361 |
'#title' => t('Display nodes as'), |
'#title' => t('Display nodes as'), |
| 362 |
'#options' => send_template_build_modes(), |
'#options' => send_template_build_modes(), |
| 363 |
'#default_value' => $build_mode, |
'#default_value' => $build_mode, |
| 364 |
'#access' => ($template->build_mode_editable == 1) && $element['nids']['#value'], |
'#access' => ($template->build_mode_editable == 1) && $element['nids']['#value'], |
| 365 |
|
'#parents' => array_merge($element['#parents'], array('build_mode')), |
| 366 |
); |
); |
| 367 |
|
|
| 368 |
if ($template->subject_editable) { |
if ($template->subject_editable) { |
| 369 |
if (!$subject = $send->message['subject']) $subject = $template->subject; |
if (!$subject = $send->message['subject']) $subject = $template->subject; |
| 370 |
$element['subject_display'] = array( |
$element['content']['subject_display'] = array( |
| 371 |
'#type' => 'textfield', |
'#type' => 'textfield', |
| 372 |
'#title' => t('Subject'), |
'#title' => t('Subject'), |
| 373 |
'#default_value' => $subject, |
'#default_value' => $subject, |
| 374 |
|
'#parents' => array_merge($element['#parents'], array('subject_display')), |
| 375 |
); |
); |
| 376 |
$element['subject'] = array( |
$element['content']['subject'] = array( |
| 377 |
'#type' => 'value', |
'#type' => 'value', |
| 378 |
'#value' => $subject, |
'#value' => $subject, |
| 379 |
|
'#parents' => array_merge($element['#parents'], array('subject')), |
| 380 |
); |
); |
| 381 |
} |
} |
| 382 |
else { |
else { |
| 383 |
$element['subject'] = array( |
$element['content']['subject'] = array( |
| 384 |
'#type' => 'markup', |
'#type' => 'markup', |
| 385 |
'#value' => $template->subject, |
'#value' => $template->subject, |
| 386 |
'#prefix' => '<h4>', |
'#prefix' => '<h4>', |
| 387 |
'#suffix' => '</h4>', |
'#suffix' => '</h4>', |
| 388 |
); |
); |
| 389 |
} |
} |
|
|
|
|
$element['content'] = array( |
|
|
'#prefix' => '<div id="message-content">', |
|
|
'#suffix' => '</div>', |
|
|
); |
|
| 390 |
|
|
| 391 |
// Respect the order that was sent through by table-dragging code. |
// Respect the order that was sent through by table-dragging code. |
| 392 |
if (isset($send->message['content'])) { |
if (isset($send->message['content'])) { |
| 393 |
foreach ($send->message['content'] as $key => $val) { |
foreach ($send->message['content'] as $key => $val) { |
| 394 |
$element['content'][$key] = array(); |
if (!in_array($key, array('subject', 'subject_display'))) { |
| 395 |
|
$element['content'][$key] = array(); |
| 396 |
|
} |
| 397 |
} |
} |
| 398 |
} |
} |
| 399 |
|
|
| 424 |
$element['content']['node-'. $nid]['weight'] = array('#type' => 'hidden'); |
$element['content']['node-'. $nid]['weight'] = array('#type' => 'hidden'); |
| 425 |
} |
} |
| 426 |
|
|
|
// TODO make this conditional. |
|
| 427 |
$element['content']['#theme'] = 'send_draggable'; |
$element['content']['#theme'] = 'send_draggable'; |
| 428 |
|
|
| 429 |
return $element; |
return $element; |
| 438 |
|
|
| 439 |
if (!$send->message['body']) { |
if (!$send->message['body']) { |
| 440 |
$value = send_message_compose_element_set_value($element, $form_state); |
$value = send_message_compose_element_set_value($element, $form_state); |
| 441 |
$send->message['body'] = $value['#value']; |
$send->message['body'] = $value['#value']['body']; |
| 442 |
} |
} |
| 443 |
$element['subject'] = array( |
$element['subject'] = array( |
| 444 |
'#type' => 'textfield', |
'#type' => 'textfield', |
| 445 |
'#default_value' => $send->message['body']['subject'], |
'#default_value' => $send->message['subject'], |
| 446 |
); |
); |
| 447 |
$element['body'] = array( |
$element['body'] = array( |
| 448 |
'#type' => 'textarea', |
'#type' => 'textarea', |
| 449 |
'#default_value' => $send->message['body']['body'], |
'#default_value' => $send->message['body'], |
| 450 |
'#rows' => 50, |
'#rows' => 30, |
| 451 |
); |
); |
| 452 |
$element['format'] = filter_form(FILTER_FORMAT_DEFAULT); |
$element['format'] = filter_form(FILTER_FORMAT_DEFAULT); |
| 453 |
|
$element['content']['message']['content'] = array( |
| 454 |
|
'#type' => 'hidden', |
| 455 |
|
'#value' => $send->message['content']['message']['content'], |
| 456 |
|
); |
| 457 |
return $element; |
return $element; |
| 458 |
} |
} |
| 459 |
|
|
| 463 |
*/ |
*/ |
| 464 |
function send_message_compose_element_set_value($element, &$form_state) { |
function send_message_compose_element_set_value($element, &$form_state) { |
| 465 |
$send = $form_state['send']; |
$send = $form_state['send']; |
| 466 |
|
if (!$send->message) return $element; |
| 467 |
$message = $send->message['content']['message']['content']; |
$message = $send->message['content']['message']['content']; |
| 468 |
$subject = $send->message['subject']; |
$subject = $send->message['subject']; |
|
$template = send_template_load($send->message['template']); |
|
| 469 |
$params = $send->message; |
$params = $send->message; |
| 470 |
|
$template = send_template_load($send->message['template']); |
| 471 |
|
|
| 472 |
$element['#value'] = array( |
$element['#value'] = array_merge($send->message, array( |
| 473 |
'subject' => theme('send_subject', $subject, $profile, $template, $params), |
'subject' => theme('send_subject', $subject, $profile, $template, $params), |
| 474 |
'body' => theme('send_body', $message, $profile, $template, $params), |
'body' => theme('send_body', $message, $profile, $template, $params), |
| 475 |
); |
'content' => $send->message['content'], |
| 476 |
|
'message' => $message, |
| 477 |
|
)); |
| 478 |
return $element; |
return $element; |
| 479 |
} |
} |