SlideShare a Scribd company logo
Dolibarr Module Development
#360
Rajib Hossain Pavel
@pavelrajib
CIO
(Courtesy::A. Korsonsky)
Introduction
Dolibarr is GPL Licensed Open Source PHP Project. One thing I want to tell you this
is PSR-2 Compliant though not following strict still today.
It is a Backend Management System.
It is an ERP. Or it may be more.
It has its own unique OOP Programming Model. For instance I can tell you every
object(Product, Order, Invoice etc.) inherits from CommonObject and it has Context
for User($user), Configuration($conf) and Languages($lang) available in each
module. It has Ajax Support too. A bit tricky but once you have understood the
concepts, you would praise the structure. This system may not be lightweight(there is
extensive use of XML) but it is effective.
Fundamental Constructs
Module Descriptor, here it is the Single File that acts like a Configuration file for a Module.
Tree of Path, here it is the Directory Structure.
Admin Management, here it allows defining some parameters from the UI.
Constants, here Parameters globally(all users) or locally(specific user).
Rights, here Admin/User Differentiator or Permissions.
Menu System.
Tab Management.
View System, here CSS and JS can be included.
Substitution Variable Management.
SQL Management, here we can have models but it can be skipped too.
Before Delving into Details
Do not fell into the trap of idmenu. Just make sure this value is sanitized. Do not let
anyone do XCRF Attack on your site.
Keep your Module simple. Write Code that you understand. Consult the
Documentation if you need it, I think you will need this. Check some repositories in
the Github, there are some wonderful modules and fiddle with them and you can turn
into an Expert I guess.
Attribute Licensing terms in the right manner. Do not plagiarize or steal or be unfair.
We have the basic responsibility to do honorable conduct of being fair.

More Related Content

Viewers also liked

Sahar Saqib - Transcript of Oral Presentation
Sahar Saqib - Transcript of Oral PresentationSahar Saqib - Transcript of Oral Presentation
Sahar Saqib - Transcript of Oral Presentation
saharsaqib
 
Beyond The Euclidean Distance: Creating effective visual codebooks using the ...
Beyond The Euclidean Distance: Creating effective visual codebooks using the ...Beyond The Euclidean Distance: Creating effective visual codebooks using the ...
Beyond The Euclidean Distance: Creating effective visual codebooks using the ...
Shao-Chuan Wang
 

Viewers also liked (16)

ERP & CRM Dolibarr InnovAthens 2016 (Greek)
ERP & CRM Dolibarr InnovAthens 2016 (Greek)ERP & CRM Dolibarr InnovAthens 2016 (Greek)
ERP & CRM Dolibarr InnovAthens 2016 (Greek)
 
Structurer et gérer son entreprise avec un logiciel libre dolibarr
Structurer et gérer son entreprise avec un logiciel libre  dolibarrStructurer et gérer son entreprise avec un logiciel libre  dolibarr
Structurer et gérer son entreprise avec un logiciel libre dolibarr
 
Sahar Saqib - Transcript of Oral Presentation
Sahar Saqib - Transcript of Oral PresentationSahar Saqib - Transcript of Oral Presentation
Sahar Saqib - Transcript of Oral Presentation
 
Horizons Beyond Dreams Business Plan
Horizons Beyond Dreams Business PlanHorizons Beyond Dreams Business Plan
Horizons Beyond Dreams Business Plan
 
Is she a good student
Is she a good studentIs she a good student
Is she a good student
 
OUTPUT BI - MAKING IT WORK FOR YOU
OUTPUT BI - MAKING IT WORK FOR YOUOUTPUT BI - MAKING IT WORK FOR YOU
OUTPUT BI - MAKING IT WORK FOR YOU
 
1960 1969
1960 19691960 1969
1960 1969
 
FCWDS (Foreign Construction Workers Directory System) Introductory Presentation
FCWDS (Foreign Construction Workers Directory System) Introductory PresentationFCWDS (Foreign Construction Workers Directory System) Introductory Presentation
FCWDS (Foreign Construction Workers Directory System) Introductory Presentation
 
Reading the Campus/Reading the City
Reading the Campus/Reading the CityReading the Campus/Reading the City
Reading the Campus/Reading the City
 
Bebepolis
BebepolisBebepolis
Bebepolis
 
Beyond The Euclidean Distance: Creating effective visual codebooks using the ...
Beyond The Euclidean Distance: Creating effective visual codebooks using the ...Beyond The Euclidean Distance: Creating effective visual codebooks using the ...
Beyond The Euclidean Distance: Creating effective visual codebooks using the ...
 
Engaging Teens through Sprite Digital Campaign - Teen Till I Die
Engaging Teens through Sprite Digital Campaign - Teen Till I DieEngaging Teens through Sprite Digital Campaign - Teen Till I Die
Engaging Teens through Sprite Digital Campaign - Teen Till I Die
 
Rtp 83 permentan ot.140 6 2014
Rtp 83 permentan ot.140 6 2014Rtp 83 permentan ot.140 6 2014
Rtp 83 permentan ot.140 6 2014
 
aclogを支えるデザイン
aclogを支えるデザインaclogを支えるデザイン
aclogを支えるデザイン
 
E Mail Management In Statoil Norsk Arkivrad October 2010
E Mail Management In Statoil   Norsk Arkivrad October 2010E Mail Management In Statoil   Norsk Arkivrad October 2010
E Mail Management In Statoil Norsk Arkivrad October 2010
 
Blue elevator servocontrol servovalve
Blue elevator servocontrol servovalveBlue elevator servocontrol servovalve
Blue elevator servocontrol servovalve
 

Similar to Dolibarr module development

Nt1310 Unit 3 Language Analysis
Nt1310 Unit 3 Language AnalysisNt1310 Unit 3 Language Analysis
Nt1310 Unit 3 Language Analysis
Nicole Gomez
 

Similar to Dolibarr module development (20)

Nt1310 Unit 3 Language Analysis
Nt1310 Unit 3 Language AnalysisNt1310 Unit 3 Language Analysis
Nt1310 Unit 3 Language Analysis
 
Software Development with PHP & Laravel
Software Development  with PHP & LaravelSoftware Development  with PHP & Laravel
Software Development with PHP & Laravel
 
Linux Assignment 3
Linux Assignment 3Linux Assignment 3
Linux Assignment 3
 
Spring boot
Spring bootSpring boot
Spring boot
 
Codeigniter
CodeigniterCodeigniter
Codeigniter
 
Finding Your Way: Understanding Magento Code
Finding Your Way: Understanding Magento CodeFinding Your Way: Understanding Magento Code
Finding Your Way: Understanding Magento Code
 
Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Rails
 
Raptor 2
Raptor 2Raptor 2
Raptor 2
 
Drools & jBPM Info Sheet
Drools & jBPM Info SheetDrools & jBPM Info Sheet
Drools & jBPM Info Sheet
 
Zend Framework And Doctrine
Zend Framework And DoctrineZend Framework And Doctrine
Zend Framework And Doctrine
 
Cairo meetup low code best practices
Cairo meetup low code best practicesCairo meetup low code best practices
Cairo meetup low code best practices
 
Code igniter - A brief introduction
Code igniter - A brief introductionCode igniter - A brief introduction
Code igniter - A brief introduction
 
Liferay architecture By Navin Agarwal
Liferay architecture By Navin AgarwalLiferay architecture By Navin Agarwal
Liferay architecture By Navin Agarwal
 
Practical catalyst
Practical catalystPractical catalyst
Practical catalyst
 
Workshop - The Little Pattern That Could.pdf
Workshop - The Little Pattern That Could.pdfWorkshop - The Little Pattern That Could.pdf
Workshop - The Little Pattern That Could.pdf
 
dJango
dJangodJango
dJango
 
Ruby on rails for beginers
Ruby on rails for beginersRuby on rails for beginers
Ruby on rails for beginers
 
Laravel
LaravelLaravel
Laravel
 
Hibernate interview questions
Hibernate interview questionsHibernate interview questions
Hibernate interview questions
 
Get things done with Yii - quickly build webapplications
Get things done with Yii - quickly build webapplicationsGet things done with Yii - quickly build webapplications
Get things done with Yii - quickly build webapplications
 

Recently uploaded

Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns
 

Recently uploaded (20)

Designing for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web ServicesDesigning for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web Services
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
 
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdfA Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
 
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
 
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAGAI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
 
iGaming Platform & Lottery Solutions by Skilrock
iGaming Platform & Lottery Solutions by SkilrockiGaming Platform & Lottery Solutions by Skilrock
iGaming Platform & Lottery Solutions by Skilrock
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
AI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in MichelangeloAI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in Michelangelo
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 
AI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning FrameworkAI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning Framework
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
 
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 

Dolibarr module development

  • 1. Dolibarr Module Development #360 Rajib Hossain Pavel @pavelrajib CIO (Courtesy::A. Korsonsky)
  • 2. Introduction Dolibarr is GPL Licensed Open Source PHP Project. One thing I want to tell you this is PSR-2 Compliant though not following strict still today. It is a Backend Management System. It is an ERP. Or it may be more. It has its own unique OOP Programming Model. For instance I can tell you every object(Product, Order, Invoice etc.) inherits from CommonObject and it has Context for User($user), Configuration($conf) and Languages($lang) available in each module. It has Ajax Support too. A bit tricky but once you have understood the concepts, you would praise the structure. This system may not be lightweight(there is extensive use of XML) but it is effective.
  • 3. Fundamental Constructs Module Descriptor, here it is the Single File that acts like a Configuration file for a Module. Tree of Path, here it is the Directory Structure. Admin Management, here it allows defining some parameters from the UI. Constants, here Parameters globally(all users) or locally(specific user). Rights, here Admin/User Differentiator or Permissions. Menu System. Tab Management. View System, here CSS and JS can be included. Substitution Variable Management. SQL Management, here we can have models but it can be skipped too.
  • 4. Before Delving into Details Do not fell into the trap of idmenu. Just make sure this value is sanitized. Do not let anyone do XCRF Attack on your site. Keep your Module simple. Write Code that you understand. Consult the Documentation if you need it, I think you will need this. Check some repositories in the Github, there are some wonderful modules and fiddle with them and you can turn into an Expert I guess. Attribute Licensing terms in the right manner. Do not plagiarize or steal or be unfair. We have the basic responsibility to do honorable conduct of being fair.