Browse Source

added "address" field property to company taxonomy term, for indexation

http://studio.g-u-i.net/en/materio/node/1040
Signed-off-by: bachy <git@g-u-i.net>
bachy 12 years ago
parent
commit
78b816920d
1 changed files with 32 additions and 1 deletions
  1. 32 1
      materio_search_api.module

+ 32 - 1
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());