From 1ef60281c98308158443a30adbb7dad623802b6f Mon Sep 17 00:00:00 2001
From: Ramon Novoa <rnovoa@artica.es>
Date: Wed, 3 Sep 2014 16:22:15 +0200
Subject: [PATCH] 2014-09-03  Ramon Novoa  <rnovoa@artica.es>

	* lib/PandoraFMS/Core.pm: Added dynamic macros for agent custom fields.
---
 pandora_server/ChangeLog              | 4 ++++
 pandora_server/lib/PandoraFMS/Core.pm | 7 +++++++
 2 files changed, 11 insertions(+)

diff --git a/pandora_server/ChangeLog b/pandora_server/ChangeLog
index d5822f516c..259f029722 100644
--- a/pandora_server/ChangeLog
+++ b/pandora_server/ChangeLog
@@ -1,3 +1,7 @@
+2014-09-03  Ramon Novoa  <rnovoa@artica.es>
+
+	* lib/PandoraFMS/Core.pm: Added dynamic macros for agent custom fields.
+
 2014-09-02  Ramon Novoa  <rnovoa@artica.es>
 
 	* lib/PandoraFMS/Core.pm: Added support for loading complex macros on
diff --git a/pandora_server/lib/PandoraFMS/Core.pm b/pandora_server/lib/PandoraFMS/Core.pm
index e25f753770..da75f3e8fb 100644
--- a/pandora_server/lib/PandoraFMS/Core.pm
+++ b/pandora_server/lib/PandoraFMS/Core.pm
@@ -834,6 +834,7 @@ sub pandora_execute_action ($$$$$$$$$;$) {
 				_field10_ => $field10,
 				_agent_ => (defined ($agent)) ? $agent->{'nombre'} : '',
 				_agentcustomid_ => (defined ($agent)) ? $agent->{'custom_id'} : '',
+				'_agentcustomfield_\d+_'  => undef,
 				_agentdescription_ => (defined ($agent)) ? $agent->{'comentarios'} : '',
 				_agentgroup_ => (defined ($group)) ? $group->{'nombre'} : '',
 				_agentstatus_ => undef,
@@ -3280,6 +3281,12 @@ sub on_demand_macro($$$$$$) {
 		return (defined ($module)) ? pandora_get_module_phone_tags ($pa_config, $dbh, $module->{'id_agente_modulo'}) : '';
 	} elsif ($macro eq '_name_tag_') {
 		return (defined ($module)) ? pandora_get_module_tags ($pa_config, $dbh, $module->{'id_agente_modulo'}) : '';
+	} elsif ($macro =~ /_agentcustomfield_(\d+)_/) {
+		return '' unless defined ($agent);
+		my $field_number = $1;
+		my $field_value = get_db_value($dbh, 'SELECT description FROM tagent_custom_data WHERE id_field=? AND id_agent=?', $field_number, $agent->{'id_agente'});
+		return (defined($field_value)) ? $field_value : '';
+		
 	}
 }