Bonjour,
j’ai finalement réussi à utiliser les couleurs des catégories dans l’application infolog !
C’est plus simple que je pensais en fait.
Comme je le disais dans mon précédent post, tout commence avec la méthode show_grid qui est utilisée par la méthode exec de la classe etemplate. C’est la méthode qui va lire notre template et afficher le code HTML résultant.
Ligne 736 de de la classe etemplate :
if (!$cl || preg_match('/^[0-9,]*$/',$cl)){
if (($color = $this->cats2color($cl))){
$rows[".$row"] .= ' style="background-color: '.$color.';" ';
}
$cl = 'row';
}
$cl correspond à l’option classe définie dans le template et récupérée juste avant.
Cette partie utilise donc une expression régulière pour définir si le nom de la classe est un entier.
Si c’est le cas, on utilise la méthode cats2color qui va récupérer la couleur de la catégorie correspondant à l’ID définit par l’entier dans le champ cat_data de la table egw_categories.
Une fois le code couleur récupéré, la méthode ajoute au code HTML l’option style à notre balise tr pour définir la propriété css background-color.
Pour l’utilisation des couleurs dans infolog, il est juste utile de modifier une chose dans le template infolog.index.rows, puisque la méthode show_grid utilisée par exec est commune à toutes les applications utilisant les templates.
Soit via l’export XML du template à la ligne 65, en remplacant row par $row_cont[info_cat] (ou info_cat est le nom du champ contenant l’id de la catégorie affectée à l’infolog.
avant: <row class="row" valign="top">
aprés: <row class="$row_cont[info_cat]" valign="top">
Soit en utilisant l’editeur graphique etemplate d’eGroupware:

C’est quand même bien utile de pouvoir utiliser les couleurs dans infolog!
jies