function support_reference_block_form_submit in Support Ticketing System 6
Same name and namespace in other branches
- 7 support_reference/support_reference.module \support_reference_block_form_submit()
File
- support_reference/
support_reference.module, line 115 - Support ticket references.
Code
function support_reference_block_form_submit($form, &$form_state) {
$nid = $form['#nid'];
$node = node_load($nid);
$client = support_client_load($node->client);
// Make sure the user is allowed to do this.
if (user_access('edit support ticket references') && support_access_clients($client)) {
$match = array();
if (preg_match_all('/\\[#(\\d+)\\]/', $form_state['values']['reference'], $match)) {
foreach ($match[1] as $rnid) {
$rnode = node_load($rnid);
$rclient = support_client_load($rnode->client);
// Additional access control check to ignore messing with any references
// to tickets belonging to clients that the user doesn't have access to.
if (support_access_clients($rclient)) {
// If it already exists, delete instead.
if (db_result(db_query('SELECT 1 FROM {support_reference} WHERE nid = %d AND rnid = %d', $nid, $rnid))) {
db_query('DELETE FROM {support_reference} WHERE nid = %d AND rnid = %d', $nid, $rnid);
db_query('DELETE FROM {support_reference} WHERE nid = %d AND rnid = %d', $rnid, $nid);
}
else {
db_query('INSERT INTO {support_reference} (nid, rnid) VALUES (%d, %d)', $nid, $rnid);
db_query('INSERT INTO {support_reference} (nid, rnid) VALUES (%d, %d)', $rnid, $nid);
}
}
}
}
}
}