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+) ===