Mantis

Ajouter un champ personnalisé à l'affichage des bugs

Posted by Amel 
Ajouter un champ personnalisé à l'affichage des bugs
July 06, 2007 10:36AM
Bonjour,

il me semble avoir déjà posé cette question, et avoir eu une réponse... mais je n'arrive pas à la retrouver.

Je voudrais ajouter une colonne avec le champ personnalisé dans l'affichage des bugs (là où il y a la recherche et les filtres).

Dans /core/custom_function_api.php, j'ai ajouté les champs :

$t_columns[] = 'custom_Champ référence client';
$t_columns[] = 'custom_Date découverte';
$t_columns[] = 'custom_Qui ?';
$t_columns[] = 'severity';
$t_columns[] = 'project_id';
$t_columns[] = 'status';
$t_columns[] = 'custom_Temps passé';
$t_columns[] = 'summary';
$t_columns[] = 'custom_Date limite'; #champ à ajouter
$t_columns[] = 'custom_Date de livraison';
$t_columns[] = 'custom_Clos par le client';

mais la colonne ne s'affiche pas, il doit falloir faire autre chose... mais je ne me souviens plus quoi...

Désolée de redemander de l'aide là dessus

Amélie
Re: Ajouter un champ personnalisé à l'affichage des bugs
July 06, 2007 10:46AM
Bonjour,

Ce n'est pas dans le fichier core/custom_function_api.php qu'il faut l'ajouter, c'est dans le fichier custom_functions_inc.php.

Vincent


Mantis: 1.1.0, 1.1.5, 1.1.1
PHP: 5.0.4
SQL: MySQL 5.0.19
OS: Linux

Please complete your signature with your environment informations.
Enable skype notification here
Re: Ajouter un champ personnalisé à l'affichage des bugs
July 06, 2007 11:14AM
pour l'instant, voici le contenu de mon fichier custom_functions_inc.php :
<?php

function custom_function_override_print_column_value( $p_column, $p_issue_row, $p_columns_target = COLUMNS_TARGET_VIEW_PAGE ) {
    if ( COLUMNS_TARGET_CSV_PAGE == $p_columns_target ) {
        $t_column_start = &#039;&#039;;
        $t_column_end = &#039;&#039;;
        $t_column_empty = &#039;&#039;;
    } else {
        $t_column_start = &#039;<td>&#039;;
        $t_column_end = &#039;</td>&#039;;
        $t_column_empty = &#039;&nbsp;&#039;;
    }
 
    if ( strpos( $p_column, &#039;custom_&#039; ) === 0 ) {
        echo $t_column_start;
        $t_custom_field = substr( $p_column, 7 );
 
        $t_field_id = custom_field_get_id_from_name( $t_custom_field );
        if ( $t_field_id === false ) {
            echo &#039;@&#039;, $t_custom_field, &#039;@&#039;;
        } else {
            $t_issue_id = $p_issue_row[&#039;id&#039;];
            $t_project_id = $p_issue_row[&#039;project_id&#039;];
 
            if ( custom_field_is_linked( $t_field_id, $t_project_id ) ) {
                $t_def = custom_field_get_definition( $t_field_id );
                print_custom_field_value( $t_def, $t_field_id, $t_issue_id );
            } else {
                // field is not linked to project
                  echo $t_column_empty;
            }
        }
        echo $t_column_end;
    } else {
        if ( $p_columns_target != COLUMNS_TARGET_CSV_PAGE ) {
            $t_function = &#039;print_column_&#039; . $p_column;
        } else {
            $t_function = &#039;csv_format_&#039; . $p_column;
        }
 
        if ( function_exists( $t_function ) ) {
            if ( $p_columns_target != COLUMNS_TARGET_CSV_PAGE ) {
                if ( $p_column == &#039;summary&#039; ) {
                    $t_summary = string_attribute( $p_issue_row[&#039;summary&#039;] );
                    $t_description = string_attribute( bug_get_text_field( $p_issue_row[&#039;id&#039;], &#039;description&#039; ) );
                    echo &#039;<td class=\"left\"><a title="&#039;, $t_description, &#039;">&#039;, $t_summary;
                    if ( VS_PRIVATE == $p_issue_row[&#039;view_state&#039;] ) {
			printf( &#039; <img src=\"%s\" alt=\"(%s)\" title=\"%s\" />&#039;
                               , $t_icon_path . &#039;protected.gif&#039;
                               , lang_get( &#039;private&#039; )
                               , lang_get( &#039;private&#039; )
			);      
                    }       
                    echo &#039;</a></td>&#039;;
                } else {
                    $t_function( $p_issue_row, $p_columns_target );
                }
            } else {
                $t_function( $p_issue_row[$p_column] );
            }
        } else {
            if ( isset( $p_issue_row[$p_column] ) ) {
            if ( $p_column == &#039;project_id&#039; ) {
                    echo &#039;<td class="center">&#039; . project_get_name( $p_issue_row[&#039;project_id&#039;] ) . &#039;</td>&#039;;
                } else {
                echo $t_column_start . $p_issue_row[$p_column] . $t_column_end;
                }
            } else {
                echo $t_column_start . &#039;@&#039; . $p_column . &#039;@&#039; . $t_column_end;
            }
        }
    }
}

# permet de passer en statut "fermé" quand le champ "clos par le client" est validé
function custom_function_override_issue_update_notify( $p_issue_id ) {
		$t_field_id = custom_field_get_id_from_name( &#039;Clos par le client&#039; ); // Remplacer toto par ce qui va bien.
		// remplacer STATUS par la valeur que le status doit prendre,
		// par exemple RESOLVED. Et penser à remplacer &#039;valeur&#039;
		if ( custom_field_get_value( $t_field_id, $p_issue_id ) == &#039;Annulé&#039; && bug_get_field( $p_issue_id, &#039;status&#039; ) != STATUS ) {
			bug_set_field( $p_issue_id, &#039;status&#039;, CLOSED );
		}
		if ( custom_field_get_value( $t_field_id, $p_issue_id ) == &#039;Clos&#039; && bug_get_field( $p_issue_id, &#039;status&#039; ) != STATUS ) {
			bug_set_field( $p_issue_id, &#039;status&#039;, CLOSED );
		}
	}
?>

Pourtant, dans l&#039;affichage des bugs, j&#039;ai déjà les colonnes
Champ référence client
Date découverte
Qui ?
Sévérité
Nom du projet
Etat
Temps passé
Résumé
Date de livraison
Clos par le client



Edited 1 time(s). Last edit at 07/06/2007 11:23AM by Amel.
Re: Ajouter un champ personnalisé à l'affichage des bugs
July 06, 2007 11:28AM
Il faut rajouter la fonction suivante
Language: PHP
custom_function_override_get_columns_to_view( $p_print = ) {
que vous avez modifié dans le fichier core/custom_function_api.php (ne pas oublier de modifier son nom au moment de la recopie).

Dans votre premier post vous dites que les colonnes sont manquantes et dans le dernier vous dites qu&#039;elles y sont. Donc on en est où ?

Vincent


Mantis: 1.1.0, 1.1.5, 1.1.1
PHP: 5.0.4
SQL: MySQL 5.0.19
OS: Linux

Please complete your signature with your environment informations.
Enable skype notification here
Re: Ajouter un champ personnalisé à l'affichage des bugs
July 06, 2007 11:38AM
c&#039;est vrai que je ne suis pas claire, toutes les colonnes y sont, sauf une : Date limite. Les autres, je les avais ajoutées il y a un moment.

En fait, je viens de voir mon erreur : il y a deux endroits où il faut ajouter cette colonne apparemment, je l&#039;avais fait qu&#039;une fois, maintenant, ça marche bien.

Sinon, merci pour la fonction, d&#039;apèrs ce que j&#039;ai compris, le fait de changer directement dans le code, c&#039;est pas bon parce que si je met une nouvelle version, je perds toutes mes modifs, c ça ??

Amélie
Re: Ajouter un champ personnalisé à l'affichage des bugs
July 06, 2007 12:11PM
Quote
Amel
c&#039;est vrai que je ne suis pas claire, toutes les colonnes y sont, sauf une : Date limite. Les autres, je les avais ajoutées il y a un moment.

En fait, je viens de voir mon erreur : il y a deux endroits où il faut ajouter cette colonne apparemment, je l&#039;avais fait qu&#039;une fois, maintenant, ça marche bien.

Tant mieux.

Quote

Sinon, merci pour la fonction, d&#039;apèrs ce que j&#039;ai compris, le fait de changer directement dans le code, c&#039;est pas bon parce que si je met une nouvelle version, je perds toutes mes modifs, c ça ??

Amélie

C&#039;est ça winking smiley

Vincent


Mantis: 1.1.0, 1.1.5, 1.1.1
PHP: 5.0.4
SQL: MySQL 5.0.19
OS: Linux

Please complete your signature with your environment informations.
Enable skype notification here
Sorry, only registered users may post in this forum.

Click here to login



Online Users

Guests: 9
Record Number of Users: 1 on April 02, 2023
Record Number of Guests: 115 on November 09, 2023
Top Users
Hébergeur : Morinie.Fr