| 87 |
* This permits us to build, validate and render a variety of send forms. |
* This permits us to build, validate and render a variety of send forms. |
| 88 |
*/ |
*/ |
| 89 |
function send_elements() { |
function send_elements() { |
|
// Common settings for all elements. They'll be expanded individually later. |
|
|
$defaults = array( |
|
|
'#input' => TRUE, |
|
|
'#process' => array('send_process'), |
|
|
'#theme' => 'send_element', |
|
|
'#tree' => TRUE, |
|
|
//'#after_build' => array('send_set_value'), |
|
|
); |
|
|
|
|
| 90 |
return array( |
return array( |
| 91 |
'send' => array( |
'send' => array( |
| 92 |
'#input' => TRUE, |
'#input' => TRUE, |
| 93 |
'#tree' => TRUE, |
'#tree' => TRUE, |
| 94 |
'#process' => array('send_process'), |
'#process' => array('send_process'), |
|
// TODO will validate/submit work here? |
|
| 95 |
), |
), |
| 96 |
'send_contact' => $defaults, |
'send_contact' => send_element_defaults(), |
| 97 |
'send_user' => $defaults, |
'send_user' => send_element_defaults(), |
| 98 |
'send_multiple' => $defaults, |
'send_multiple' => send_element_defaults(), |
| 99 |
'send_message' => $defaults, |
'send_message_edit' => send_element_defaults(), |
| 100 |
|
'send_message_compose' => send_element_defaults(), |
| 101 |
); |
); |
| 102 |
} |
} |
| 103 |
|
|
| 104 |
/** |
/** |
| 105 |
|
* API Function: Common defaults for any element that appears on a send form. |
| 106 |
|
*/ |
| 107 |
|
function send_element_defaults() { |
| 108 |
|
return array( |
| 109 |
|
'#input' => TRUE, |
| 110 |
|
'#process' => array('send_process'), |
| 111 |
|
'#theme' => 'send_element', |
| 112 |
|
'#tree' => TRUE, |
| 113 |
|
); |
| 114 |
|
} |
| 115 |
|
|
| 116 |
|
/** |
| 117 |
* A #process callback for send_form elements. |
* A #process callback for send_form elements. |
| 118 |
* Responsible for loading the required files and building out the form. |
* Responsible for loading the required files and building out the form. |
| 119 |
*/ |
*/ |
| 120 |
function send_process($element, $edit, &$form_state, $complete_form) { |
function send_process($element, $edit, &$form_state, $complete_form) { |
| 121 |
module_load_include('inc', 'send', 'includes/send.form'); |
module_load_include('inc', 'send', 'includes/send.form'); |
| 122 |
if (function_exists($func = $element['#type'] .'_element_process')) { |
if (function_exists($func = $element['#type'] .'_element_process')) { |
|
//return $func($element, $edit, $form_state, $complete_form); |
|
| 123 |
$element = $func($element, $edit, $form_state, $complete_form); |
$element = $func($element, $edit, $form_state, $complete_form); |
| 124 |
} |
} |
| 125 |
// TODO copied from send_set_value. REMOVE? |
unset($element['#required']); |
|
if (function_exists($func = $element['#type'] .'_element_set_value')) { |
|
|
//$element = $func($element, $form_state); |
|
|
//form_set_value($element, $element['#value'], $form_state); |
|
|
} |
|
|
return $element; |
|
|
} |
|
|
|
|
|
/** |
|
|
* An #after_build callback for send_form elements. |
|
|
* Responsible for setting values |
|
|
*/ |
|
|
function send_set_value(&$element, $form_state) { |
|
|
return $element; //TODO |
|
|
return; |
|
|
module_load_include('inc', 'send', 'includes/send.form'); |
|
|
if (function_exists($func = $element['#type'] .'_element_set_value')) { |
|
|
//return $func($element, $form_state); |
|
|
$func($element, $form_state); |
|
|
form_set_value($element, $element['#value'], $form_state); |
|
|
} |
|
| 126 |
return $element; |
return $element; |
| 127 |
} |
} |
| 128 |
|
|
| 133 |
switch ($op) { |
switch ($op) { |
| 134 |
|
|
| 135 |
case 'insert' : |
case 'insert' : |
| 136 |
//if user has been a recipient before, note their uid |
// If user has been a sender or recipient, update their uid. |
| 137 |
if (!$user->mail) return; |
if (!$user->mail) return; |
| 138 |
db_query("UPDATE {send_contact} SET uid = %d WHERE mail = '%s'", $user->uid, $user->mail); |
db_query("UPDATE {send_contact} |
| 139 |
|
SET uid = %d WHERE mail = '%s'", $user->uid, $user->mail); |
| 140 |
return; |
return; |
| 141 |
|
|
| 142 |
case 'delete': |
case 'delete': |
| 143 |
// no orphan uids |
// Set send_contact entries to anonymous. |
| 144 |
db_query("UPDATE {send} SET uid = 0 WHERE uid = %d", $user->uid); |
db_query("UPDATE {send_contact} SET uid = 0 WHERE uid = %d", $user->uid); |
|
db_query("UPDATE {send_recipient} SET rid = 0 WHERE rid = %d AND rtype='user'", $user->uid); |
|
| 145 |
return; |
return; |
| 146 |
} |
} |
| 147 |
} |
} |
| 225 |
} |
} |
| 226 |
|
|
| 227 |
/** |
/** |
|
* An API function returning a list of node build_modes. |
|
|
*/ |
|
|
function send_build_modes() { |
|
|
static $build_modes; |
|
|
if (!isset($build_modes)) { |
|
|
$build_modes = array(); |
|
|
|
|
|
// CCK is installed, use its hooks. |
|
|
if (function_exists('content_build_modes')) { |
|
|
foreach (content_build_modes() as $name => $info) { |
|
|
$build_modes[$name] = $info['title']; |
|
|
} |
|
|
} |
|
|
|
|
|
// Set generic defaults. |
|
|
else { |
|
|
$build_modes['teaser'] = t('Teaser'); |
|
|
$build_modes['full'] = t('Full node'); |
|
|
} |
|
|
} |
|
|
return $build_modes; |
|
|
} |
|
|
|
|
|
/** |
|
| 228 |
* Implementation of hook_views_api(). |
* Implementation of hook_views_api(). |
| 229 |
*/ |
*/ |
| 230 |
function send_views_api() { |
function send_views_api() { |