Changes

Jump to navigation Jump to search
Line 36: Line 36:     
Le descripteur de votre module est alors en place.
 
Le descripteur de votre module est alors en place.
  −
=== Le descripteur des modules spécifiques pour la version 3.3 ===
  −
Avec la version 3.3 il sera possible d'isoler les modules "spécifiques" dans un dossier nommé '''custom'''. L'objectif de cette démarche va permettre de séparer les modules tiers des modules standards (ceux provenant avec la release complète de Dolibarr).
  −
  −
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.
  −
  −
Pour rendre le module compatible avec ce principe, il faut que :
  −
* les pages composant le modules puissent charger le fichier '''main.inc.php''' où qu'elles se trouvent;
  −
se référer au contenu du fichier modèle ''' dev/skeletons/skeleton_page.php'''
  −
  −
''Exemple :''
  −
<source lang="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>
  −
* l'appel des classes spécifiques au module sont relatif au fichier de la page;
  −
''Exemple :''
  −
<source lang="php">
  −
if (! class_exists('MaClasse')) {
  −
    require 'class/maclasse.php';
  −
}
  −
// Ou bien encore
  −
if (! class_exists('MaClasse')) {
  −
    require dirname(__FILE__).'/../class/myclass.php';
  −
}
  −
</source>
  −
  −
Note: N'utilisez JAMAIS un chemin relatif dans votre include comme celui-ci: require '../class/myclass.php'; - votre include ne fonctionnera pas selon l'emplacement du script executant!
  −
  −
* 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;
  −
''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>
  −
  −
* le fichier '''conf/conf.php''' soit changé de la manière suivante :
  −
retirer les commentaires devant la définition des variables '''$dolibarr_main_url_root_alt''' et '''$dolibarr_main_document_root_alt''' et adaptez les valeurs à votre configuration.
  −
  −
''Exemple :''
  −
<source lang="php">
  −
$dolibarr_main_url_root_alt='http://localhost/dolibarr/custom';
  −
$dolibarr_main_document_root_alt='/var/www/dolibarr/htdocs/custom';
  −
</source>
      
=== Tester votre descripteur ===
 
=== Tester votre descripteur ===

Navigation menu