Développement de scripts
Localisation
Les scripts en ligne de commande de Dolibarr doivent etre situés dans le répertoire scripts de Dolibarr. Les scripts sont ensuite répartis dans des sous-répertoire en fonction de leur vocation. Un certain nombre de scripts est donc fourni en standard.
Développer un nouveau script
Les scripts étant souvent réalisés pour un besoin spécifiques, il y a de forte chance que vous ne trouviez pas celui qui vous intéresse. Dans ce cas, nous allons vous expliquer comment développer votre propre script.
Etape 1 - Création du squelette du script
La première étape est de reprendre le squelette de script disponible en dev/skeletons/skeleton_scripts.php et de recopier en le renommant, ce script dans le répertoire scripts/monrep/monscript.php
Une fois le script renommé, donnez lui les droits en exécution par la commande:
cd scripts/monrep; chmod a+rx monscript.php
Ensuite, lancez le pour voir si vous pouvez exécuter un script en mode ligne de commande. Pour cela, taper:
php-cli ./monscript.php ou php ./monscript.php
Vous devriez obtenir le resultat suivant:
Usage: monscript.php param1 param2 ...
Etape 2 - Edition du code du script
Modifier le contenu du script pour réaliser les opérations qui vous intéressent. Tout le code qui se trouve entre les balises
// ---------- START OF YOUR CODE HERE
et
// ---------- END OY YOUR CODE
est fourni à titre d'exemple. Vous pouvez le supprimer et y mettre le code qui vous intéresse. Notez que dans cette portion, vous pouvez utiliser la variable $db qui est la ressource d'accès à la base Dolibarr et qui est déjà initialisée. L'objet $conf qui contient la configuration Dolibarr est également disponible.
Exemple insertion d'un produit
Par exemple pour insérer un produit dans la base dolibarr, vous pouvez y placer le code suivant:
// Inclusion classe métier product require_once(DOL_DOCUMENT_ROOT."/product.class.php"); // Création d'une instance de product $myproduct=new Product($db); // Définition des propriétés de l'instance product $product->ref = '1234' $product->libelle = 'libelle'; $product->price = '10'; $product->price_base_type = 'HT'; $product->tva_tx = '19.6'; $product->type = 0; $product->status = 1; $product->description = 'Description'; $product->note = 'Note'; // Création du produit en base $idproduct = $product->create(''); // Gestion erreur if ($idproduct < 0) dolibarr_print_error($db,$product->error); else print "Produit $idproduct cree.\n";