Difference between revisions of "Script development"
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: | ||
− | < | + | <source lang="bash"> |
cd scripts/mydir; | cd scripts/mydir; | ||
chmod a+rx myscript.php | chmod a+rx myscript.php | ||
− | </ | + | </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: | ||
− | < | + | <source lang="bash"> |
+ | php-cli ./myscript.php | ||
+ | </source> | ||
or | or | ||
− | php ./myscript.php</ | + | <source lang="php"> |
− | You | + | php ./myscript.php |
− | < | + | </source> |
+ | You must get the following output: | ||
+ | <source lang="bash"> | ||
Usage: myscript.php param1 param2 ... | Usage: myscript.php param1 param2 ... | ||
− | </ | + | </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 | ||
− | < | + | <source lang="php">// ---------- START OF YOUR CODE HERE</source> |
and | and | ||
− | < | + | <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: | ||
− | < | + | <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"; | ||
− | </ | + | </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";