Laurent Destailleur ec03d1705b Fix travis %!s(int64=8) %!d(string=hai) anos
..
.tx dd71fdc82f Work on modulebuilder template %!s(int64=8) %!d(string=hai) anos
admin dd71fdc82f Work on modulebuilder template %!s(int64=8) %!d(string=hai) anos
build ec03d1705b Fix travis %!s(int64=8) %!d(string=hai) anos
class ec03d1705b Fix travis %!s(int64=8) %!d(string=hai) anos
core dd71fdc82f Work on modulebuilder template %!s(int64=8) %!d(string=hai) anos
css dd71fdc82f Work on modulebuilder template %!s(int64=8) %!d(string=hai) anos
dev dd71fdc82f Work on modulebuilder template %!s(int64=8) %!d(string=hai) anos
doc dd71fdc82f Work on modulebuilder template %!s(int64=8) %!d(string=hai) anos
img dd71fdc82f Work on modulebuilder template %!s(int64=8) %!d(string=hai) anos
js ec03d1705b Fix travis %!s(int64=8) %!d(string=hai) anos
langs dd71fdc82f Work on modulebuilder template %!s(int64=8) %!d(string=hai) anos
lib dd71fdc82f Work on modulebuilder template %!s(int64=8) %!d(string=hai) anos
scripts dd71fdc82f Work on modulebuilder template %!s(int64=8) %!d(string=hai) anos
sql dd71fdc82f Work on modulebuilder template %!s(int64=8) %!d(string=hai) anos
test ec03d1705b Fix travis %!s(int64=8) %!d(string=hai) anos
.editorconfig dd71fdc82f Work on modulebuilder template %!s(int64=8) %!d(string=hai) anos
.gitattributes dd71fdc82f Work on modulebuilder template %!s(int64=8) %!d(string=hai) anos
.gitignore dd71fdc82f Work on modulebuilder template %!s(int64=8) %!d(string=hai) anos
COPYING dd71fdc82f Work on modulebuilder template %!s(int64=8) %!d(string=hai) anos
README.md dd71fdc82f Work on modulebuilder template %!s(int64=8) %!d(string=hai) anos
modulebuilder.txt 1371af5f66 Work on modulebuilder template %!s(int64=8) %!d(string=hai) anos
myobject_card.php 5a31d2c95a Fix css %!s(int64=8) %!d(string=hai) anos
myobject_list.php 5e54567558 Merge branch '5.0' of git@github.com:Dolibarr/dolibarr.git into develop %!s(int64=8) %!d(string=hai) anos
phpdoc.dist.xml dd71fdc82f Work on modulebuilder template %!s(int64=8) %!d(string=hai) anos

README.md

Dolibarr Module Template (aka My Module)

This is a full featured module template for Dolibarr. It's a tool for module developers to kickstart their project and give an hands-on sample of which features Dolibarr has to offer for module development.

If you're not a module developer you have no use for this.

Documentation

Module tutorial

Dolibarr development

Translations

Dolibarr uses Transifex to manage it's translations.

This template also contains a sample configuration for Transifex managed translations under the hidden .tx directory.

For more informations, see the translator's documentation.

There is a Transifex project for this module.

Install

Manually

  • Make sure Dolibarr (>= 3.3.x) is already installed and configured on your workstation or development server.

  • In your Dolibarr installation directory, edit the htdocs/conf/conf.php file

  • Find the following lines:

    //$dolibarr_main_url_root_alt ...
    //$dolibarr_main_document_root_alt ...
    
    • Uncomment these lines (delete the leading //) and assign a sensible value according to your Dolibarr installation

    For example :

    • UNIX:

      $dolibarr_main_url_root = 'http://localhost/Dolibarr/htdocs';
      $dolibarr_main_document_root = '/var/www/Dolibarr/htdocs';
      $dolibarr_main_url_root_alt = '/custom';
      $dolibarr_main_document_root_alt = '/var/www/Dolibarr/htdocs/custom';
      
      • Windows: php $dolibarr_main_url_root = 'http://localhost/Dolibarr/htdocs'; $dolibarr_main_document_root = 'C:/My Web Sites/Dolibarr/htdocs'; $dolibarr_main_url_root_alt = '/custom'; $dolibarr_main_document_root_alt = 'C:/My Web Sites/Dolibarr/htdocs/custom';

    For more information about the conf.php file take a look at the conf.php.example file.

    Note that for Dolibarr versions before 3.5, the $dolibarr_main_url_root_alt has to be an absolute path

    • Clone the repository in $dolibarr_main_document_root_alt/mymodule

    (You may have to create the htdocs/custom directory first if it doesn't exist yet.)

    git clone git@github.com:Dolibarr/dolibarr-module-template.git mymodule
    
  • Install Composer dependencies:

    composer install
    

    Follow the final steps.

    Using Composer

    Require this repository from Dolibarr's composer:

    {
    "repositories": [
    {
      "type": "vcs",
      "url": "https://github.com/dolibarr/dolibarr-module-template"
    }
    ],
    "require": {
    "dolibarr/mymodule": "dev-master"
    }
    }
    

Run

composer update

Follow the final steps.

Final steps

From your browser:

  • Log into Dolibarr as a super-administrator
  • Under "Setup" -> "Other setup", set MAIN_FEATURES_LEVEL to 2
  • Go to "Setup" -> "Modules"
  • The module is under one of the tabs
  • You should now be able to enable the new module and start coding ;)

Provided tools

Starting a new module

A script allows you to rename most of the code to your own module name.
It requires find, sed and rename commands on your system.
Just make sure you provide a CamelCase name.

./dev/newmodule.sh [NewName]

Some work still has to be done manually:

  • Rename the directory holding the code
  • Maybe rename some other bits (Search for 'my' in filenames and code)
  • Update your module ID in the module descriptor
  • Update your language files
    • Keywords based on the module ID
    • String referencing the template
  • Remove the features you don't plan to use
  • Fill the copyright notices at the top of each file
  • Add your logo: see images README for specifications
  • Start a new GIT history

    git checkout --orphan [new_branch_name]
    
  • Build an awesome module ;)

Composer scripts

Only the main commands are listed here.
See the composer comments or the composer.json itself for more informations.

Check

Run a linter, a PHP compatibility version checker and checks coding style.

composer check

Test

Run unit and functional tests.

composer test

Doc

Build code and user documentation.

Release

Run the checks and tests then build a distribution ZIP.

composer release

Git hooks

Optional GIT hooks are provided. These are just wrappers calling composer scripts.
They ensure best practices are followed during module development.

Install:

composer git_hooks_install

Remove:

composer git_hooks_remove

Publishing the module

The de-facto standard for publishing and marketing modules for Dolibarr is the Dolistore.
Templates for required images and texts are provided.
Check the dedicated README for more informations.

Contributions

Feel free to contribute and report defects on our issue tracker.

Licenses

Main code

GPLv3 logo

GPLv3 or (at your option) any later version.

See COPYING for more information.

Other Licenses

Parsedown

Used to display this README in the module's about page.
Licensed under MIT.

GNU Licenses logos

Public domain

Documentation

All texts and readmes.

GFDL logo