function biblio_admin_author_edit_form_merge_link in Bibliography Module 7
_state
Parameters
array $form:
1 call to biblio_admin_author_edit_form_merge_link()
- biblio_admin_author_edit_form_submit in includes/
biblio.admin.inc - _state
File
- includes/
biblio.admin.inc, line 2445 - biblio.admin.inc
Code
function biblio_admin_author_edit_form_merge_link($form_state) {
$op = $form_state['triggering_element']['#value'];
$merge_authors = array();
$cid = $form_state['values']['cid'];
foreach ($form_state['values']['candidates'] as $ccid => $options) {
if ($options['link']) {
db_update('biblio_contributor_data')
->fields(array(
'aka' => $options['link'],
'alt_form' => 0,
))
->condition('cid', $ccid)
->execute();
}
else {
db_update('biblio_contributor_data')
->fields(array(
'aka' => 0,
'alt_form' => 0,
))
->condition(db_or()
->condition('cid', $cid)
->condition('cid', $ccid))
->execute();
}
if ($options['merge']) {
db_update('biblio_contributor')
->fields(array(
'cid' => $cid,
'merge_cid' => $ccid,
))
->condition('cid', $ccid)
->execute();
}
else {
db_update('biblio_contributor')
->fields(array(
'cid' => $ccid,
'merge_cid' => 0,
))
->condition('merge_cid', $ccid)
->execute();
}
if ($options['merge'] && $options['retain']) {
db_update('biblio_contributor_data')
->fields(array(
'alt_form' => $options['retain'] ? $options['retain'] : 0,
'aka' => $options['retain'] ? $cid : 0,
))
->condition('cid', $ccid)
->execute();
}
elseif ($options['merge'] && !$options['retain']) {
db_delete('biblio_contributor_data')
->condition('cid', $ccid)
->execute();
}
}
}