Al Mantis Bug Tracker pots personalitzar-te el teu sistema amb camps personalitzats (Telèfon, DNI, Marca, Model, Pes, Grandària, etc). Però a l'hora de publicar tickets, el sistema envia notificacions personalitzats amb tots estos camps.
En este xicotet article explique el truc per a poder amagar algun camp personalitzat que vols que estiga en el Mantis Bug Tracker, des de la part web, però que vols deshabilitar-lo de les notificacions per correu electrònic per a no fer un resum de la petició massa llarg i farragòs.
El meu objectiu és que a les notificacions del Mantis de la feina, no es mostre el camp "Nº de ticket Pulpo" que afegim en algunes peticions. Fins ara queda així:
El fitxer de configuració de Mantis és ./core/email_api.php. L'editarem i en la línia 1783 tenim un bucle for que comença per # custom fields formatting i diu exactament:
# custom fields formatting
foreach( $p_visible_bug_data['custom_fields'] as $t_custom_field_name => $t_custom_field_data ) {
$t_message .= utf8_str_pad( lang_get_defaulted( $t_custom_field_name, null ) . ': ', $t_email_padding_length, ' ', STR_PAD_RIGHT );
$t_message .= string_custom_field_value_for_email( $t_custom_field_data['value'], $t_custom_field_data['type'] );
$t_message .= " \n";
}
# end foreach custom field
La funció strppos() de PHP
El que fa eixe bucle for és recòrrer i mostrar cada un dels camps personalitzats del Mantis. I com nosaltres volem amagar en les notificacions dels correus el camp que parla del número de ticket Pulpo, farem servir de la funció strpos() per a comprovar si una variable de tipo text conté una paraula, 'ticket' en el nostre cas. Això es fa amb:
if (strpos($la_teua_variable, 'paraula') !==false) {
echo "Sí ha trobat eixa paraula";
} else {
echo "No conté eixa paraula";
}
Aleshores, consultarem si existeix la paraula ticket en el nom del camp personalitzat de la següent manera:
# custom fields formatting
foreach( $p_visible_bug_data['custom_fields'] as $t_custom_field_name => $t_custom_field_data ) {
# personalitze el camp que mostra els camps personalitzats perque no volem que aparega el Numero de Ticket Mantis
if (strpos($t_custom_field_name, 'ticket') !==false) {
} else {
$t_message .= utf8_str_pad( lang_get_defaulted( $t_custom_field_name, null ) . ': ', $t_email_padding_length, ' ', STR_PAD_RIGHT );
$t_message .= string_custom_field_value_for_email( $t_custom_field_data['value'], $t_custom_field_data['type'] );
$t_message .= " \n";
}
}
# end foreach custom field
I finalment el resultat serà la notificació estàndard de Mantis Bug Tracker, mostrant fins i tot els camps personalitzats, però quan un camp personalitzat siga el "Nº tickets Pulpo" (que conté la paraula ticket) saltarà el bucle i no el mostrarà. I queda així: