forked from Wavyzz/dolibarr
216 lines
5.6 KiB
Markdown
216 lines
5.6 KiB
Markdown
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](https://wiki.dolibarr.org/index.php/Module_development)
|
|
|
|
[Dolibarr development](https://wiki.dolibarr.org/index.php/Developer_documentation)
|
|
|
|
### Translations
|
|
|
|
Dolibarr uses [Transifex](https://transifex.com) to manage it's translations.
|
|
|
|
This template also contains a sample configuration for Transifex managed translations under the hidden [.tx](.tx) directory.
|
|
|
|
For more informations, see the [translator's documentation](http://wiki.dolibarr.org/index.php/Translator_documentation).
|
|
|
|
There is a [Transifex project](https://transifex.com/projects/p/dolibarr-module-template) for this module.
|
|
|
|
Install
|
|
-------
|
|
|
|
### Manually
|
|
|
|
- Make sure Dolibarr 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:
|
|
```php
|
|
//$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:
|
|
```php
|
|
$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.
|
|
|
|
- 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.)*
|
|
```sh
|
|
git clone git@github.com:Dolibarr/dolibarr-module-template.git mymodule
|
|
```
|
|
|
|
- Install [Composer](https://getcomposer.org) dependencies:
|
|
```sh
|
|
composer install
|
|
```
|
|
|
|
Follow the [final steps](#final_steps).
|
|
|
|
### Using [Composer](https://getcomposer.org)
|
|
Require this repository from Dolibarr's composer:
|
|
```json
|
|
{
|
|
"repositories": [
|
|
{
|
|
"type": "vcs",
|
|
"url": "https://github.com/dolibarr/dolibarr-module-template"
|
|
}
|
|
],
|
|
"require": {
|
|
"dolibarr/mymodule": "dev-master"
|
|
}
|
|
}
|
|
```
|
|
|
|
Run
|
|
```sh
|
|
composer update
|
|
```
|
|
|
|
Follow the [final steps](#final_steps).
|
|
|
|
### <a name="final_steps"></a>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](dev/newmodule.sh) 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.
|
|
```sh
|
|
./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](dev/img/README.md) 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](composer-comments.md) or the [composer.json](composer.json) itself for more informations.
|
|
|
|
#### Check
|
|
|
|
Run a linter, a PHP compatibility version checker and checks coding style.
|
|
```sh
|
|
composer check
|
|
```
|
|
|
|
#### Test
|
|
|
|
Run unit and functional tests.
|
|
```sh
|
|
composer test
|
|
```
|
|
|
|
#### Doc
|
|
Build code and user documentation.
|
|
|
|
#### Release
|
|
|
|
Run the checks and tests then build a distribution ZIP.
|
|
```sh
|
|
composer release
|
|
```
|
|
|
|
#### Git hooks
|
|
|
|
Optional [GIT hooks](https://git-scm.com/book/it/v2/Customizing-Git-Git-Hooks) are provided.
|
|
These are just wrappers calling composer scripts.
|
|
They ensure best practices are followed during module development.
|
|
|
|
Install:
|
|
```sh
|
|
composer git_hooks_install
|
|
```
|
|
|
|
Remove:
|
|
```sh
|
|
composer git_hooks_remove
|
|
```
|
|
|
|
## Publishing the module
|
|
The de-facto standard for publishing and marketing modules for Dolibarr is the [Dolistore](https://www.dolistore.com).
|
|
Templates for required images and texts are [provided](dev/dolistore).
|
|
Check the dedicated [README](dev/dolistore/README.md) for more informations.
|
|
|
|
|
|
Licenses
|
|
--------
|
|
|
|
### Main code
|
|
|
|

|
|
|
|
GPLv3 or (at your option) any later version.
|
|
|
|
See [COPYING](COPYING) for more information.
|
|
|
|
### Other Licenses
|
|
|
|
#### [Parsedown](http://parsedown.org/)
|
|
|
|
Used to display this README in the module's about page.
|
|
Licensed under MIT.
|
|
|
|
#### [GNU Licenses logos](https://www.gnu.org/graphics/license-logos.html)
|
|
|
|
Public domain
|
|
|
|
#### Documentation
|
|
|
|
All texts and readmes.
|
|
|
|

|