Difference between revisions of "Script development"
(Created page with '{{TemplateDocDev}} {{ToTranslate}} == Localisation == Les scripts en ligne de commande de Dolibarr doivent être situés dans le répertoire '''scripts''' de Dolibarr. Les scrip...') |
m |
||
Line 2: | Line 2: | ||
{{ToTranslate}} | {{ToTranslate}} | ||
− | == | + | == Location == |
− | + | The Dolibarr command line scripts must be located in the '''scripts''' directory in Dolibarr root. The scripts are then divided into sub-directories according to their vocation. A number of scripts is provided as standard. | |
− | |||
− | == | + | == Develop a new script == |
− | + | The scripts are often made for a specific need, it is likely that you do not find the one you want. In this case, we'll explain how to develop your own script. | |
− | === | + | === Step 1 - Create the skeletonn of the script === |
− | + | The first step is to take the skeleton script available in '''dev/skeletons/skeleton_scripts.php''' and copy and renaming it in directory '''scripts/mydir/myscript.php''' | |
− | + | Once renaming is done, give it permissions to execute. | |
+ | On linux, this is the command: | ||
+ | onnez lui les droits en exécution par la commande: | ||
<pre> | <pre> | ||
− | cd scripts/ | + | cd scripts/mydir; |
− | chmod a+rx | + | chmod a+rx myscript.php |
</pre> | </pre> | ||
− | + | Then, run it to see if you can run the script in a command line mode. For this, on Linux, type: | |
− | <pre>php-cli ./ | + | <pre>php-cli ./myscript.php |
− | + | or | |
− | php ./ | + | php ./myscript.php</pre> |
− | + | You muste get the following output: | |
<pre> | <pre> | ||
− | Usage: | + | Usage: myscript.php param1 param2 ... |
</pre> | </pre> | ||
− | === | + | === Step 2 - Editing script code === |
− | + | Modify the contents of the script to perform operations that interest you. | |
− | + | All the code that lies between the tags | |
<pre>// ---------- START OF YOUR CODE HERE</pre> | <pre>// ---------- START OF YOUR CODE HERE</pre> | ||
− | + | and | |
<pre>// ---------- END OY YOUR CODE</pre> | <pre>// ---------- END OY YOUR CODE</pre> | ||
− | + | is provided as an example. | |
− | + | You can delete it and put the code that you want. | |
− | + | Note that in this section, you can use the variable $db that is the resource to access Dolibarr database and is already initialized. The $conf object that contains Dolibarr configuration is also available. | |
− | |||
− | ==== | + | ==== Example to insert a product ==== |
− | + | For example to insert a product in the database Dolibarr, you can place the following code: | |
<pre> | <pre> | ||
− | // | + | // Include mother classes for user and product |
require_once(DOL_DOCUMENT_ROOT."/user.class.php"); | require_once(DOL_DOCUMENT_ROOT."/user.class.php"); | ||
require_once(DOL_DOCUMENT_ROOT."/product.class.php"); | require_once(DOL_DOCUMENT_ROOT."/product.class.php"); | ||
− | // | + | // Create a new user instance |
$user=new User($db); | $user=new User($db); | ||
− | // | + | // Create a new product instance |
$myproduct=new Product($db); | $myproduct=new Product($db); | ||
− | // | + | // Define properties of user |
$user->id = 0; | $user->id = 0; | ||
− | // | + | // Define properties of product |
$myproduct->ref = '1234'; | $myproduct->ref = '1234'; | ||
$myproduct->libelle = 'libelle'; | $myproduct->libelle = 'libelle'; | ||
Line 66: | Line 66: | ||
$myproduct->weight_units = 0; | $myproduct->weight_units = 0; | ||
− | // | + | // Create product in database |
$idproduct = $myproduct->create($user); | $idproduct = $myproduct->create($user); | ||
− | // | + | // Error management |
− | if ($idproduct < 0) | + | if ($idproduct < 0) dol_print_error($db,$myproduct->error); |
− | else print " | + | else print "Product $idproduct created.\n"; |
</pre> | </pre> |
Revision as of 10:12, 3 July 2009
Location
The Dolibarr command line scripts must be located in the scripts directory in Dolibarr root. The scripts are then divided into sub-directories according to their vocation. A number of scripts is provided as standard.
Develop a new script
The scripts are often made for a specific need, it is likely that you do not find the one you want. In this case, we'll explain how to develop your own script.
Step 1 - Create the skeletonn of the script
The first step is to take the skeleton script available in dev/skeletons/skeleton_scripts.php and copy and renaming it in directory scripts/mydir/myscript.php
Once renaming is done, give it permissions to execute. On linux, this is the command: onnez lui les droits en exécution par la commande:
cd scripts/mydir; chmod a+rx myscript.php
Then, run it to see if you can run the script in a command line mode. For this, on Linux, type:
php-cli ./myscript.php or php ./myscript.php
You muste get the following output:
Usage: myscript.php param1 param2 ...
Step 2 - Editing script code
Modify the contents of the script to perform operations that interest you. All the code that lies between the tags
// ---------- START OF YOUR CODE HERE
and
// ---------- END OY YOUR CODE
is provided as an example. You can delete it and put the code that you want. Note that in this section, you can use the variable $db that is the resource to access Dolibarr database and is already initialized. The $conf object that contains Dolibarr configuration is also available.
Example to insert a product
For example to insert a product in the database Dolibarr, you can place the following code:
// Include mother classes for user and product require_once(DOL_DOCUMENT_ROOT."/user.class.php"); require_once(DOL_DOCUMENT_ROOT."/product.class.php"); // Create a new user instance $user=new User($db); // Create a new product instance $myproduct=new Product($db); // Define properties of user $user->id = 0; // Define properties of product $myproduct->ref = '1234'; $myproduct->libelle = 'libelle'; $myproduct->price = '10'; $myproduct->price_base_type = 'HT'; $myproduct->tva_tx = '19.6'; $myproduct->type = 0; $myproduct->status = 1; $myproduct->description = 'Description'; $myproduct->note = 'Note'; $myproduct->weight = 10; $myproduct->weight_units = 0; // Create product in database $idproduct = $myproduct->create($user); // Error management if ($idproduct < 0) dol_print_error($db,$myproduct->error); else print "Product $idproduct created.\n";