kvproperty.inc 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  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_kvproperty_formatter(&$element, $entity_type, $entity, $field,
  13. $instance, $langcode, $items, $display) {
  14. $content = '';
  15. foreach ($items as $delta => $item) {
  16. $content = key_exists('value', $item) ? $item['value'] : '';
  17. $element[$delta] = array(
  18. '#type' => 'markup',
  19. '#markup' => $content,
  20. );
  21. }
  22. }
  23. /**
  24. *
  25. * @param unknown $field_name
  26. * @param unknown $widget
  27. * @param unknown $form
  28. * @param unknown $form_state
  29. * @param unknown $field
  30. * @param unknown $instance
  31. * @param unknown $langcode
  32. * @param unknown $items
  33. * @param unknown $delta
  34. * @param unknown $element
  35. */
  36. function tripal_fields_kvproperty_widget($form, $form_state, $field, $instance, $langcode, $items, $delta, $element) {
  37. $field_name = $field['field_name'];
  38. $widget = array();
  39. $element += array(
  40. '#element_validate' => array('tripal_fields_kvproperty_widget_validate'),
  41. '#type' => 'textfield',
  42. '#delta' => $delta,
  43. );
  44. if ($field['cardinality'] == 1) {
  45. $element['#default_value'] = !empty($items) ? $items[0] : '';
  46. $widget = array($element);
  47. }
  48. else {
  49. foreach ($items as $item) {
  50. $widget[$delta] = $element;
  51. $widget[$delta]['#default_value'] = $item;
  52. $widget[$delta]['#weight'] = $delta;
  53. $delta++;
  54. }
  55. }
  56. // Add one more row if delta is less than the cardinality.
  57. if ($field['cardinality'] == FIELD_CARDINALITY_UNLIMITED || $delta < $field['cardinality']){
  58. $widget[$delta] = $element;
  59. $widget[$delta]['#default_value'] = '';
  60. $widget[$delta]['#weight'] = $delta;
  61. $widget[$delta]['#required'] = ($element['#required'] && $delta == 0);
  62. }
  63. // The group of elements all-together need some extra functionality
  64. // after building up the full list (like draggable table rows).
  65. $widget['#theme'] = 'field_multiple_value_form';
  66. $widget['#title'] = $element['#title'];
  67. $widget['#description'] = $element['#description'];
  68. $widget['#field_name'] = $element['#field_name'];
  69. $widget['#language'] = $element['#language'];
  70. $widget['#weight'] = isset($element['#weight']) ? $element['#weight'] : 0;
  71. $widget['#cardinality'] = 1;
  72. return $widget;
  73. }
  74. /**
  75. *
  76. * @param unknown $form
  77. * @param unknown $form_state
  78. */
  79. function tripal_fields_kvproperty_widget_form_ajax_callback($form, $form_state) {
  80. $field_name = $form_state['triggering_element']['#parents'][0];
  81. return $form[$field_name];
  82. }
  83. /**
  84. * Callback function for validating the tripal_fields_kvproperty_widget.
  85. */
  86. function tripal_fields_kvproperty_widget_validate($element, &$form_state) {
  87. $field_name = $element['#field_name'];
  88. }
  89. /**
  90. * Callback function for submitting the tripal_fields_kvproperty_widget.
  91. */
  92. function tripal_fields_kvproperty_widget_submit($element, &$form_state) {
  93. }