Modifier les champs

Un article de Wiki CRM-France.

Jump to: navigation, search

Sommaire

Changer le nom d'un champs

Modifier le fichier language/fr_FR.lang.php. Fichier accessible depuis le répertorie du module.

Transformer le type d'un champs en liste

Demande

Transformer un champs qui est libre en une liste. Dans le cas présent il s'agit de fixer les probabilités qui peuvent être donnée à une affaire.

Étapes

vardefs.php

Il faut redéfinir le tableau $dictionary['Opportunity']['fields']['probability']. Plus particulièrement les clés suivantes:

  1. changer le type en 'enum'
  2. ajouter une clé 'options' => 'sales_probabilites_dom'

(Pour que l'exemple soit générique j'ai choisi d'appeler les options 'sales_probabilites_dom' pour avoir à recréer la liste des options, au lieu du nom plus logiques 'sales_probability_dom' qui existe déjà).

Ces modifications devraient apparaître dans le fichier custom/modules/Opportunity/Ext/Vardefs/vardefs.ext.php

Création des options

Dans le fichier custom/include/language/fr_FR.lang.php ajouter la liste des valeurs possible sous la forme d'un tableau php:

$app_list_strings['sales_probabilites_dom']=array (
  0 => '0 %',
  20 => '20 %',
  50 => '50 %',
  80 => '80 %',
  100 => '100 %',
);

Une fois ce tableau ajouté dans le fichier, il sera possible de modifier ses valeurs dans l'administration de Sugar, via le studio.

Affichage du formulaire

Il faut modifier le fichier EditView.php:

$xtpl->assign("SALES_PROBABILITES_OPTIONS", 
              get_select_options_with_id($app_list_strings['sales_probabilites_dom'], 
                                         $focus->probability));

Il faut modifier le fichier EditView.html:

<select tabindex='2' name='probability'>{SALES_PROBABILITES_OPTIONS}</select>

Affichage de l'objet

Il faut modifier le fichier DetailView.php:

$xtpl->assign("PROBABILITY", 
              $app_list_strings['sales_probabilites_dom'][$focus->probability]);

Rendre un champs non obligatoire

Demande

Un client demande à ce que la date de clôture d'une affaire soit non obligatoire. Comment faire?

Étapes

  1. S'assurer que le champs peut être NULL dans la base.
  2. Retirer de la variable 'required_fields' du fichier field_arrays.php le nom du champs qui ne doit plus être obligatoire.
  3. Ajouter 'required' => false dans la liste des attributs du champs dans le fichier vardefs.php. (Non obligatoire)
  4. Modifier le fichier EditView.html, pour ne pas afficher la petite étoile des champs obligatoires.
  5. Modification du fichier {Nomdumodule}FormBase.php pour enlever le symbole qui marque le champs obligatoire.

Supprimer un champs

Fichiers à modifier:

  1. EditView.php
  2. EditView.html
  3. field_arrays.php
  4. vardefs.php
  5. DetailView.html
  6. DetailView.php
  7. {NomDuModule}.php