Création de nouveaux modules

Un article de Wiki CRM-France.

Jump to: navigation, search

Sommaire

Définition

Présentation


Comment créer un nouveau Module dans SugarCRM v3.5.0b --

(Note: Les instructions suivantes concernent la version 3.5.0b. elles peuvent nécessiter des modifications pour les version suivantes de sugar. Cet article n'a pas pour objet de vous expliquer ou de vous aider à maîtriser les moindres détails concernant les différentes interactions entre le noyau de Sugar et ses modules, mais a pour objet de vous aider à démarrer en créant le noyau minimaliste d'un nouveau module...)

Ce que nous allons aborder:

1. Modification du fichier include/modules.php
2. Modification du fichier include/language/en_us.lang.php
3. Création d'un nouveau répertoire modules/MyNewModule
4. Création des fichiers minimaux nécessaires dans le répertoire 'MyNewModule'


Détails:
1. Il y a une variable appelée $moduleList qui est créée dans le fichier include/modules.php.C'est l'endroit où le module a besoin d'être "enregistré". Vous verrez par exemple cette ligne: $moduleList[] = 'Contacts'; Ajoutez seulement une autre ligne comme celle-ci:

$moduleList[] = 'MyNewModule';

Notez que les modules apparaitront dans l'ordre où ils ont été enregistés dans le tableau

$moduleList .

2. Première étape : enregistrement basique et fourniture d'un id pour le nouveau module. Il faut maintenant associer un nom à cet id. Cela est réalisé dans le fichier général de langue, include/language/en_us.lang.php. Dans ce fichier se trouve un tableau nommé $app_list_strings. Dans le tableau $app_list_strings il y a un autre tableau qui utilise 'moduleList' en tant que clef. C'est le tableau qui nécessite de contenir le mappage pour le nom du nouveau module. Ajoutez ce code quelque part dans ce tableau:

'MyNewModule' => 'MyNewModule',

3. Créez un nouveau dossier dans le répertoire des modules en utilisant le même nom que celui de l'id enregistré lors de la première étape. Par exemple: mkdir modules/MyNewModule

4. Le code de Sugar nécessite la présence de certains fichiers dans le répertoire créé à l'étape 3. Au minimum, il faut créer les suivants: Forms.php, Menu.php, index.php, and language/en_us.lang.php.
4a. Forms.php peut être totalement vide. Il a juste besoin d'être présent.
4b. Menu.php nécessite de contenir au moins un tableau vide nommé $module_menu. Par exemple, créez modules/MyNewModule/Menu.php avec le contenu suivant:

<?php
$module_menu = array();
?>

C'est le tableau qui sera modifié pour rajouter un raccourci qui apparaitra à gauche dans le thème "sugar". Regardez Menu.php dans les répertoires d'autres modules pour prendre des exemples.
4c. index.php peut aussi être vide, mais cela peut aider lors de tests s'il contient une commande "echo". Par exemple, créez modules/MyNewModule/index.php avec le contenu suivant:

<?php
echo "Hey there!<br>\n";
?>

4d. en_us.lang.php peut aussi être vide, mais nécessite d'être situé dans un nouveau répertoire nommé 'language'. Lorsque le nouveau module est finalisé, c'est un bon endroit pour y placer dans un $mod_strings les chaînes dépendantes d'une langue(comme pour les autres modules).

Cela doit le faire! Si les instructions ci dessus sont suivies, il doit apparaître un nouvel onglet, appelé 'MyNewModule'. Cliquer dessus doit fournir le super message 'Hey there'.


Notez: De façon à créer des liens vers le nouveau module, vérifiez juste que le paramètrage des deux requêtes suivantes soit effectif:

module --> MyNewModule<br>
action --> index

Voici un exemple de passage de paramètre au nouveau module:
modules/MyNewModule/index.php:

<?php
echo "Hey there!<br>\n";
echo "<a href='index.php?module=MyNewModule&action=index&". "my_action=do_something'>My little link</a><br>\n";
if ( $_REQUEST[ 'my_action' ] == 'do_something' ) 
echo "<br>Here's where something would be done...<br>\n";
?>