Difference between revisions of "Script development"

From Dolibarr ERP CRM Wiki
Jump to navigation Jump to search
m
Line 13: Line 13:
 
Once renaming is done, give it permissions to execute.
 
Once renaming is done, give it permissions to execute.
 
On linux, this is the command:
 
On linux, this is the command:
<pre>
+
<source lang="bash">
 
cd scripts/mydir;
 
cd scripts/mydir;
 
chmod a+rx myscript.php
 
chmod a+rx myscript.php
</pre>
+
</source>
 
Then, run it to see if you can run the script in a command line mode. For this, on Linux, type:
 
Then, run it to see if you can run the script in a command line mode. For this, on Linux, type:
<pre>php-cli ./myscript.php
+
<source lang="bash">
 +
php-cli ./myscript.php
 +
</source>
 
or
 
or
php ./myscript.php</pre>
+
<source lang="php">
You muste get the following output:
+
php ./myscript.php
<pre>
+
</source>
 +
You must get the following output:
 +
<source lang="bash">
 
Usage: myscript.php param1 param2 ...
 
Usage: myscript.php param1 param2 ...
</pre>
+
</source>
  
 
== Step 2 - Editing script code ==
 
== Step 2 - Editing script code ==
 
Modify the contents of the script to perform operations that interest you.  
 
Modify the contents of the script to perform operations that interest you.  
 
All the code that lies between the tags
 
All the code that lies between the tags
<pre>// ---------- START OF YOUR CODE HERE</pre>
+
<source lang="php">// ---------- START OF YOUR CODE HERE</source>
 
and
 
and
<pre>// ---------- END OY YOUR CODE</pre>
+
<source lang="php">// ---------- END OY YOUR CODE</source>
 
is provided as an example.  
 
is provided as an example.  
 
You can delete it and put the code that you want.  
 
You can delete it and put the code that you want.  
Line 38: Line 42:
 
=== Example to insert a product ===
 
=== Example to insert a product ===
 
For example to insert a product in the database Dolibarr, you can place the following code:
 
For example to insert a product in the database Dolibarr, you can place the following code:
<pre>
+
<source lang="php">
 
// Include mother classes for user and product
 
// Include mother classes for user and product
 
require_once(DOL_DOCUMENT_ROOT."/user.class.php");
 
require_once(DOL_DOCUMENT_ROOT."/user.class.php");
Line 71: Line 75:
 
if ($idproduct < 0) dol_print_error($db,$myproduct->error);
 
if ($idproduct < 0) dol_print_error($db,$myproduct->error);
 
else print "Product $idproduct created.\n";
 
else print "Product $idproduct created.\n";
</pre>
+
</source>

Revision as of 02:19, 23 August 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 skeleton 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:

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 must 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";