From 78b816920d76c5f674872f86ec30d84041214d20 Mon Sep 17 00:00:00 2001 From: bachy Date: Wed, 13 Mar 2013 12:47:13 +0100 Subject: [PATCH] added "address" field property to company taxonomy term, for indexation http://studio.g-u-i.net/en/materio/node/1040 Signed-off-by: bachy --- materio_search_api.module | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/materio_search_api.module b/materio_search_api.module index 37f09e84..551a240a 100644 --- a/materio_search_api.module +++ b/materio_search_api.module @@ -150,7 +150,16 @@ function materio_search_api_entity_property_info_alter(&$info){ // // 'query callback'=>'entity_metadata_table_query', // 'getter callback'=>'materio_search_api_get_taxonomy_terms_after_5', // ); - return $properties; + // return $properties; + + $company_term_props = &$info['taxonomy_term']['bundles']['company']['properties']; + + $company_term_props['country'] = array( + 'label' => t("Country"), + 'description' => t("Company's Country get from tode node."), + 'type' => 'text', + 'getter callback' => 'company_term_property_country_get_props', + ); } function materio_search_api_get_main_taxonomy_term_1($item){ @@ -175,6 +184,28 @@ function materio_search_api_get_main_taxonomy_term_5($item){ return materio_search_api_get_onto_term($item, 4); } +function company_term_property_country_get_props($term){ + if( $node = company_get_tode_node($term) ){ + $field_values = field_get_items('node',$node,'field_public_adress'); + $address = ''; + foreach ($field_values as $value) { + $address .= $value['value']; + } + return $address; + } + return null; +} + +function company_get_tode_node($term){ + if(module_exists('tode')) + if( $entitys = tode_get_nids_from_term($term) && isset($entitys['node']) ) + foreach ($entitys['node'] as $nid => $n) + return node_load($nid); + + return false; +} + + // function materio_search_api_get_taxonomy_terms_after_5($item){ // // dsm($item, 'item'); // watchdog('materio solr', 'materio_search_api_get_taxonomy_terms_after_5', array());