Module CustomFields Cases FR

From Dolibarr ERP CRM Wiki
Jump to navigation Jump to search

En verysmall.png Page waiting for translation. To translate, create an account, go back and clic on "Modify".
Fr verysmall.png Page en attente de traduction. Pour traduire, créez un compte, revenez et cliquez sur "Modifier".
Es verysmall.png Página a traducir. Para traducirla, cree una cuenta, vuelva a la página y haga clic en "editar".
It verysmall.png Pagina da tradurre. Per tradurla, crea un utente, torna indietro e clicca su "modifica".
Pt verysmall.png Página a aguardar por tradução. Para traduzir, crie uma conta, volte atrás e clique em "Modificar".
De verysmall.png Seite wartet auf Übersetzung. Um Übersetzung zu erstellen, richte einen Account ein, geh zurück und klicke auf "bearbeiten".
Zh verysmall.png 页面等待翻译。若要翻译本页,先创建一个帐户、登录并返回本页后单击“编辑”。

Ici vous pourrez trouver une compilation de cas pratiques d'implémentations de CustomFields et de ses fonctionnalités.

Si vous avez fait l'expérience de CustomFields pour une implémentation, vous pouvez également rajouter ici votre propre cas d'exemple afin que d'autres utilisateurs puissent s'en inspirer.

Fonctions d'overload

Le but est d'afficher dans le module tiers deux champs: un qui donne le secteur du tiers (isere,alpes du sud, haute savoie...) et l'autre qui en fonction du secteur donne la liste des stations de ski du secteur choisi.

Une table llx_k_station (rowid,station (char50),secteur(char50))composée de la sorte : 1,les 2 alpes,isère 2,chamrousse,isère 3,alpe d'huez,isère 4,vars,alpes du sud 5,risoul,alpes du sud....

Dans le module tiers 2 champs CF: 1-secteur:renvoie la listes des secteurs - type liste: enum('- Aucun','Alpes du Sud','export','Haute-Savoie','Isère'....) 2-station_a: renvoie toutes les stations - type par défaut mais contrainte sur llx_k_station

Le code dans customfields_fields_extend.lib.php qui va permettre en fonction du secteur choisi lors de la modifiaction de n'afficher que les stations correspondantes:

function customfields_field_editview_societe_station_a (&$currentmodule, &$object, &$parameters, &$action, &$user, &$idvar, &$rightok, &$customfields, &$field, &$name, &$value) {
  global $db; // allow to access database functions
  $sql="SELECT llx_k_station.station, llx_k_station.rowid FROM llx_societe_customfields INNER JOIN llx_k_station ON llx_societe_customfields.Secteur = llx_k_station.secteur WHERE llx_societe_customfields.fk_societe=".$object->id;
$result=$db->query($sql);
 
  if ($result) {
    $num = $db->num_rows($result);
    $i = 0;
    $myarray = array();
    while ($i < $num)
    {
      $obj = $db->fetch_object($result);
      $myarray []=array('id'=>$obj->rowid, 'value'=>$obj->station);
      $i++;
    }
    $value = $myarray; 
    $db->free($result);
  }
}

Merci à manub pour avoir donné cet example de cas.