Développement module: Difference between revisions

Jump to navigation Jump to search
Line 189: Line 189:


Y recopier le fichier '''skeletons_page.php''' qui va servir de point de départ.
Y recopier le fichier '''skeletons_page.php''' qui va servir de point de départ.
Modifier le fichier afin que le chemin relatif du
Modifier le fichier afin que le main.inc.php soit trouvés
<source lang="php">
<source lang="php">
include("../../main.inc.php)";
$res=0;
if (! $res && file_exists("../main.inc.php")) $res=@include("../main.inc.php"); // for root directory
if (! $res && file_exists("../../main.inc.php")) $res=@include("../../main.inc.php"); // for level1 directory ("custom" directory)
if (! $res && file_exists("../../../main.inc.php")) $res=@include("../../../main.inc.php"); // for level2 directory
if (! $res) die("Include of main fails");
</source>
</source>
soit correct, en fonction de la profondeur de répertoire dans laquelle se trouve le fichier (Enlever ou supprimer des "../").
en fonction de la profondeur de répertoire dans laquelle se trouve le fichier (Enlever ou supprimer des "../").
 
Pour tous les modules développés après la version 3.2 de Dolibarr, il convient de pouvoir déplacer le dossier du module soit dans '''htdocs''' soit dans '''htdocs/custom''' sans avoir à modifier le code source du module, c'est pour cela que nous faisons plusieurs includes.
 
C'est dans le main qu'est chargé l'environnement technique ainsi que les habilitations. Les variables objets suivantes sont alors positionnées:
C'est dans le main qu'est chargé l'environnement technique ainsi que les habilitations. Les variables objets suivantes sont alors positionnées:


Line 201: Line 208:
* $langs  L'objet qui contient la langue de l'utilisateur.
* $langs  L'objet qui contient la langue de l'utilisateur.


Saisissez ensuite votre code pour afficher la page.
* L'inclusion d'une classe dédiée au module, sans savoir d'où le fichier sera appelé, se fait en utilisant une fonction de Dolibarr (et non en utilisant directement le include_once)
''Exemple :''
<source lang="php">
dol_include_once('/monmodule/class/maclasse.class.php', 'MaClasse');
</source>
 
* L'appel des classes de dolibarr utilisent la syntaxe suivante;
''Exemple :''
<source lang="php">
if (! class_exists('DoliClasse')) require DOL_DOCUMENT_ROOT.'/core/class/doli.class.php';
</source>


=== Remplacer les parties d'écrans templatés (version 3.3+) ===
=== Remplacer les parties d'écrans templatés (version 3.3+) ===

Navigation menu