diff --git a/materio_search_api.module b/materio_search_api.module index d486b19f..ca99620e 100644 --- a/materio_search_api.module +++ b/materio_search_api.module @@ -90,6 +90,55 @@ function materio_search_api_menu() { return $items; } +/** + * hook_entity_property_info_alter(). + */ +function materio_search_api_entity_property_info_alter(&$info){ + // dsm($info, 'hook_entity_property_info_alter | info'); + $properties = &$info['node']['properties']; + for ($i=1; $i <= 5 ; $i++) { + $properties['materio_search_api_taxonomy_term_'.$i] = array( + 'type'=>'taxonomy_term', + 'label'=> t('Main taxonomy term '.$i), + 'query callback'=>'entity_metadata_table_query', + 'getter callback'=>'materio_search_api_get_main_taxonomy_term_'.$i, + ); + } + + return $properties; +} + +function materio_search_api_get_main_taxonomy_term_1($item){ + // dsm($item, 'item'); + return materio_search_api_get_onto_term($item, 0); +} +function materio_search_api_get_main_taxonomy_term_2($item){ + // dsm($item, 'item'); + return materio_search_api_get_onto_term($item, 1); +} +function materio_search_api_get_main_taxonomy_term_3($item){ + // dsm($item, 'item'); + return materio_search_api_get_onto_term($item, 2); +} +function materio_search_api_get_main_taxonomy_term_4($item){ + // dsm($item, 'item'); + return materio_search_api_get_onto_term($item, 3); +} +function materio_search_api_get_main_taxonomy_term_5($item){ + // dsm($item, 'item'); + return materio_search_api_get_onto_term($item, 4); +} + +function materio_search_api_get_onto_term($item, $delta){ + // dsm($item, 'item'); + // dsm($delta, 'delta'); + + if(isset($item->field_onthologie['und'][$delta])) + return taxonomy_term_load($item->field_onthologie['und'][$delta]['tid']); + + return null; +} + /** * Implements hook_block_info(). */