tripal_ds.ds.inc 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. <?php
  2. /**
  3. * Implements hook_ds_layout_settings_info().
  4. */
  5. function _ds_layout_settings_info($bundle_name, $instances) {
  6. $region_right = array();
  7. $region_left = array();
  8. $region_top = array();
  9. $region_bottom = array();
  10. $fields_with_regions = array();
  11. $i = 0;
  12. foreach ($instances as $key => $instance){
  13. $instance_name = $instance['field_name'];
  14. if($instance_name=="rdfs__type"){
  15. array_push($region_top, $instance_name);
  16. $fields_with_regions[$instance_name]= 'top';
  17. } else {
  18. $instance_base_table = $instance['settings']['base_table'];
  19. $instance_base_chado = $instance['settings']['chado_table'];
  20. if ($instance_base_chado && $instance_base_table){
  21. if ($instance_base_chado == $instance_base_table){
  22. //overview section instances
  23. array_push($region_top, $instance_name);
  24. $fields_with_regions[$instance_name]= 'top';
  25. } elseif ($instance_base_chado != $instance_base_table){
  26. watchdog('debug', '<pre>_ds_layout_settings_info $instance_base_chado: '. print_r($instance_base_chado, TRUE) .'</pre>');
  27. if (strpos($instance_base_chado, 'prop') !== FALSE){
  28. //Properties section instances
  29. array_push($region_bottom, $instance_name);
  30. $fields_with_regions[$instance_name]= 'bottom';
  31. } elseif (strpos($instance_base_chado, 'data__sequence') !== FALSE){
  32. array_push($region_left, $instance_name);
  33. $fields_with_regions[$instance_name]= 'left';
  34. } else {
  35. //Linker section instances
  36. array_push($region_right, $instance_name);
  37. $fields_with_regions[$instance_name]= 'right';
  38. }
  39. }
  40. }
  41. }
  42. $i++;
  43. }
  44. $record = new stdClass;
  45. $record->id ='TripalEntity|' . $bundle_name . '|default';
  46. $record->entity_type = 'TripalEntity';
  47. $record->bundle = $bundle_name;
  48. $record->view_mode = 'default';
  49. $record->layout = 'tripal_ds_feature';
  50. $settings = array(
  51. 'regions' => array(
  52. 'top' =>
  53. $region_top,
  54. 'left' =>
  55. $region_left,
  56. 'right' =>
  57. $region_right,
  58. 'bottom' =>
  59. $region_bottom,
  60. ),
  61. 'fields' =>
  62. $fields_with_regions,
  63. 'classes' => array(),
  64. 'wrappers' => array(
  65. 'top' => 'div',
  66. 'left' => 'div',
  67. 'right' => 'div',
  68. 'bottom' => 'div',
  69. ),
  70. 'layout_wrapper' => 'div',
  71. 'layout_attributes' => '',
  72. 'layout_attributes_merge' => 1,
  73. 'layout_link_attribute' => '',
  74. 'layout_link_custom' => '',
  75. 'layout_disable_css' => 0,
  76. );
  77. $record->settings = $settings;
  78. watchdog('debug', '<pre>_ds_layout_settings_info $record: '. print_r($record, TRUE) .'</pre>');
  79. drupal_write_record('ds_layout_settings', $record);
  80. }
  81. /*
  82. function tripal_ds_content_type_fields($bundle_name){
  83. dpm(debug_backtrace());
  84. $base_fields = array();
  85. $all_fields = array();
  86. $custom_fields = array();
  87. $fields = db_select('field_config_instance', 'i')
  88. ->fields('i', array('field_name'))
  89. ->condition('bundle', $bundle_name)
  90. ->execute()
  91. ->fetchAll();
  92. //break apart each field to grab the base table identifiers
  93. foreach ($fields as $fields => $field) {
  94. $field_parts = explode('__', $field->field_name, 2);
  95. if(count($field_parts) > 1) {
  96. $base_field = $field_parts[0];
  97. $nonbase_field = $field_parts[1];
  98. } else {
  99. $base_field = $field_parts[0];
  100. }
  101. array_push($base_fields, $base_field);
  102. array_push($all_fields, $field->field_name);
  103. }
  104. //create the left base table fields based on the previous foreach loop
  105. if ($base_fields) {
  106. $base_fields = array_unique($base_fields);
  107. foreach($base_fields as $base_fields => $basefield){
  108. $custom_field = tripal_ds_ds_custom_fields_info($basefield);
  109. array_push($custom_fields, $custom_field);
  110. }
  111. }
  112. $all_fields = array(
  113. array($base_fields),
  114. array($all_fields),
  115. array($custom_fields),
  116. );
  117. return $all_fields;
  118. }
  119. */
  120. /*
  121. * Implements hook_ds_custom_fields_info().
  122. function tripal_ds_ds_custom_fields_info($field) {
  123. $export = array();
  124. $ds_field = new stdClass;
  125. $ds_field->api_version = 1;
  126. $ds_field->field = $field;
  127. $ds_field->label = $field;
  128. $ds_field->field_type = 6;
  129. $ds_field->entities = array(
  130. 'TripalEntity' => 'TripalEntity',
  131. );
  132. $ds_field->ui_limit = '';
  133. $ds_field->properties = array(
  134. 'block' => 'node|recent',
  135. 'block_render' => '2',
  136. );
  137. $export[$field] = $ds_field;
  138. return $export;
  139. }
  140. */