md5checksum.inc 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <?php
  2. /**
  3. *
  4. * @param unknown $entity_type
  5. * @param unknown $entity
  6. * @param unknown $field
  7. * @param unknown $instance
  8. * @param unknown $langcode
  9. * @param unknown $items
  10. * @param unknown $display
  11. */
  12. function tripal_fields_md5checksum_checkbox_formatter($entity_type, $entity, $field,
  13. $instance, $langcode, $items, $display) {
  14. foreach ($items as $delta => $item) {
  15. $content = key_exists('value', $item) ? $item['value'] : '';
  16. }
  17. return $content;
  18. }
  19. /**
  20. *
  21. * @param unknown $field_name
  22. * @param unknown $widget
  23. * @param unknown $form
  24. * @param unknown $form_state
  25. * @param unknown $field
  26. * @param unknown $instance
  27. * @param unknown $langcode
  28. * @param unknown $items
  29. * @param unknown $delta
  30. * @param unknown $element
  31. */
  32. function tripal_fields_md5checksum_checkbox_widget($field_name, &$widget,
  33. &$form, &$form_state, $field, $instance, $langcode, $items, $delta, $element) {
  34. $widget += array(
  35. '#type' => 'checkbox',
  36. '#title' => $element['#title'],
  37. '#description' => $element['#description'],
  38. '#options' => array(0, 1),
  39. '#default_value' => 1,
  40. '#weight' => isset($element['#weight']) ? $element['#weight'] : 0,
  41. '#delta' => $delta,
  42. '#element_validate' => array('tripal_fields_md5checksum_checkbox_widget_validate'),
  43. );
  44. }
  45. /**
  46. * Callback function for validating the tripal_fields_md5checksum_checkbox_widget.
  47. */
  48. function tripal_fields_md5checksum_checkbox_widget_validate($element, &$form_state) {
  49. $field_name = $element['#field_name'];
  50. // Calculate the md5 checksum for the sequence only if md5 box is checked and the residues exist
  51. $residues = tripal_fields_get_field_form_values('feature__residues', $form_state);
  52. if (count($residues) > 0 && trim($residues[0]) != '') {
  53. tripal_fields_set_field_form_values ($field_name, $form_state, md5($residues[0]));
  54. }
  55. else {
  56. // Otherwise, remove the md5 value
  57. tripal_fields_set_field_form_values ($field_name, $form_state, '__NULL__');
  58. }
  59. }