Πίνακας περιεχομένων

  1. Εισαγωγή

  2. Κατανόηση της αρθρωτής αρχιτεκτονικής του Dolibarr

  3. Πότε και γιατί να δημιουργήσετε μια εξωτερική ενότητα

  4. Ρύθμιση Εργαλείων και Περιβάλλοντος

  5. Δομή φακέλων και συμβάσεις ονομασίας αρχείων

  6. Δημιουργία του αρχείου περιγραφής ενότητας

  7. Υλοποίηση Hooks και Triggers

  8. Χρησιμοποιώντας τις βασικές κλάσεις και τα API του Dolibarr

  9. Ενσωμάτωση με υπάρχουσες λειτουργίες Dolibarr

  10. Οδηγίες UI/UX για απρόσκοπτη ενσωμάτωση

  11. Διαχείριση δικαιωμάτων και ελέγχου πρόσβασης

  12. Διαχείριση Αρχείων Γλώσσας και Μεταφράσεις

  13. Ζητήματα ασφαλείας κατά την ανάπτυξη

  14. Χειρισμός αναβαθμίσεων και συμβατότητας

  15. Δοκιμή της ενότητας σας: Χειροκίνητη και αυτόματη

  16. Συσκευασία και Διανομή της Μονάδας σας

  17. Συμβολή στο οικοσύστημα Dolibarr

  18. Συμπέρασμα


1. Εισαγωγή

Η επιτυχία του Dolibarr ως συστήματος ERP και CRM βασίζεται βαθιά στον αρθρωτό σχεδιασμό του. Οι χρήστες μπορούν να επεκτείνουν ή να προσαρμόσουν τη βασική λειτουργικότητα του Dolibarr μέσω εξωτερικών ενοτήτων χωρίς να αγγίξουν τον βασικό κώδικα. Είτε αναπτύσσετε μια κάθετη επέκταση του κλάδου είτε ένα πρόσθετο λειτουργιών, αυτός ο οδηγός παρουσιάζει τις βέλτιστες πρακτικές για την ανάπτυξη συντηρήσιμων, ασφαλών και φιλικών προς το χρήστη εξωτερικών ενοτήτων για το Dolibarr.


2. Κατανόηση της αρθρωτής αρχιτεκτονικής του Dolibarr

Το Dolibarr έχει σχεδιαστεί για επέκταση. Κάθε ενότητα λειτουργεί εντός του δικού της χώρου ονομάτων και καταλόγου κάτω από /htdocs/custom/ or /htdocs/module/.

Βασικές αρχές:

  • ΕνθυλάκωσηΟι ενότητες είναι αυτόνομες.

  • Μη παρεμβατικότηταΟι ενότητες δεν πρέπει να τροποποιούν τα βασικά αρχεία.

  • ΕπαναχρησιμοποίησηΗ γενική λογική θα πρέπει να σχεδιάζεται για επαναχρησιμοποίηση.

Αυτή η αρχιτεκτονική επιτρέπει ασφαλείς αναβαθμίσεις και συνεργατική ανάπτυξη.


3. Πότε και γιατί να δημιουργήσετε μια εξωτερική ενότητα

Θα πρέπει να εξετάσετε το ενδεχόμενο δημιουργίας μιας ενότητας όταν:

  • Χρειάζεστε προσαρμοσμένη επιχειρηματική λογική που δεν βρίσκεται στον πυρήνα του Dolibarr.

  • Τα χαρακτηριστικά σας αφορούν συγκεκριμένα την εταιρεία ή τον κλάδο σας.

  • Σκοπεύετε να μοιραστείτε λειτουργίες με άλλους μέσω του Dolistore.

Πλεονεκτήματα:

  • Ευκολότερη συντήρηση

  • Ανεξαρτησία ελέγχου έκδοσης

  • Δυνατότητα υιοθέτησης από την κοινότητα


4. Ρύθμιση Εργαλείων και Περιβάλλοντος

Προτεινόμενα εργαλεία:

  • PHP 7.4+ και MySQL

  • Apache/Nginx με mod_rewrite

  • Μια τοπική εγκατάσταση Dolibarr για ανάπτυξη

  • Ένα σύστημα ελέγχου εκδόσεων (Git)

σετ MAIN_MODULE_CUSTOMDIR in conf.php να δείξω /htdocs/custom αν τοποθετείτε μονάδες εκεί.


5. Δομή φακέλων και συμβάσεις ονομασίας αρχείων

Η ενότητα σας θα πρέπει να ακολουθεί την εξής δομή:

/custom/mycustommodule/
├── class/
├── core/
├── lang/
├── modulebuilder.txt
├── modMycustommodule.class.php
├── mycustommodule.php

Συμβάσεις ονοματολογίας:

  • Προθέστε αρχεία και κλάσεις με το όνομα της ενότητας σας

  • Χρησιμοποιήστε ονόματα αρχείων με πεζά γράμματα και υπογράμμιση

  • Τα αρχεία της τάξης θα πρέπει να ακολουθούν τη μορφή της θήκης καμήλας του Dolibarr.


6. Δημιουργία του αρχείου περιγραφής ενότητας

modMycustommodule.class.php ορίζει μεταδεδομένα:

  • Όνομα και αριθμός ενότητας

  • Εκδοχή

  • Εξαρτήσεις

  • Μενού και δικαιώματα

  • Σκανδάλες και άγκιστρα

The init η μέθοδος χειρίζεται την εγκατάσταση και remove αναλαμβάνει τον καθαρισμό.


7. Υλοποίηση Hooks and Triggers

Το Dolibarr επιτρέπει στην ενότητα σας να αλληλεπιδρά με τα βασικά συμβάντα μέσω:

  • άγκιστρα (Επίπεδο UI): Προσθήκη κουμπιών, καρτελών ή παράκαμψη οθονών

  • ωθήσεις (επίπεδο δεδομένων): Εκτέλεση ενεργειών δημιουργίας, ενημέρωσης, διαγραφής

Ορίστε άγκιστρα στο hook/ και καταχωρήστε τα στον περιγραφέα της ενότητας σας.


8. Χρήση των Βασικών Κλάσεων και API του Dolibarr

Αξιοποιήστε τις υπάρχουσες κλάσεις Dolibarr για να χειριστείτε:

  • Τιμολόγια (Facture)

  • Τρίτα μέρη (Societe)

  • Προϊόντα (Product)

Για εξωτερικές ενσωματώσεις, χρησιμοποιήστε το REST API ή δημιουργήστε τα δικά σας προσαρμοσμένα τελικά σημεία.


9. Ενσωμάτωση με υπάρχουσες λειτουργίες του Dolibarr

Βεβαιωθείτε ότι η ενότητα σας λειτουργεί καλά με:

  • Πολυεταιρική ενότητα (ελέγξτε για conf->entity)

  • Διαχείριση γλώσσας (χρήση langs->trans())

  • Δικαιώματα χρήστη (ορισμός σαφών δικαιωμάτων)


10. Οδηγίες UI/UX για Απρόσκοπτη Ενσωμάτωση

Σεβαστείτε τα οπτικά πρότυπα του Dolibarr:

  • Χρήση υπαρχουσών κλάσεων CSS

  • Ενσωμάτωση καρτελών σε υπάρχουσες οντότητες, όταν είναι δυνατόν

  • Αποφύγετε τις ενοχλητικές αλλαγές στο σχεδιασμό ή τις προσαρμοσμένες γραμματοσειρές

Κάντε το να μοιάζει εγγενές στο σύστημα.


11. Διαχείριση Δικαιωμάτων και Ελέγχου Πρόσβασης

Η ενότητα σας θα πρέπει:

  • Ορίστε κλειδιά δικαιωμάτων στον περιγραφέα

  • Ελέγξτε τα δικαιώματα μέσω user->rights->mycustommodule->access

  • Απόκρυψη μενού και κουμπιών για μη εξουσιοδοτημένους χρήστες

Διατηρήστε τη λογική ελέγχου κεντρική και συνεπή.


12. Διαχείριση Αρχείων Γλώσσας και Μεταφράσεις

Τα αρχεία γλώσσας θα πρέπει να βρίσκονται σε:

/langs/en_US/mycustommodule.lang

Χρήση langs->load("mycustommodule") και συμβολοσειρές αναφοράς μέσω langs->trans("MyLabel")

Αυτό υποστηρίζει πολυγλωσσικά περιβάλλοντα και την κοινότητα μεταφράσεων του Dolibarr.


13. Ζητήματα ασφαλείας κατά την ανάπτυξη

Βέλτιστες πρακτικές ασφάλειας:

  • Απολύμανση των εισροών χρήστη (dol_htmlentities, GETPOST)

  • Χρήση επαλήθευσης διακριτικών για φόρμες

  • Έξοδος διαφυγής για την αποτροπή XSS

  • Προστατέψτε τα εσωτερικά σενάρια με ελέγχους πρόσβασης (restrictedarea())

Ποτέ μην εμπιστεύεστε εξωτερικές πηγές δεδομένων.


14. Χειρισμός αναβαθμίσεων και συμβατότητας

Σχεδιάστε την ενότητα σας για να χειριστείτε την εξέλιξη της έκδοσης:

  • Διατηρήστε την συμβατότητα με παλαιότερες εκδόσεις, όταν είναι δυνατόν

  • Χρήση module_version πεδία για τη διαχείριση μετεγκαταστάσεων

  • Συμπεριλάβετε σενάρια αναβάθμισης στην ενότητα σας

Διατηρήστε την ενότητα σας συμβατή με τις τελευταίες 2–3 κύριες εκδόσεις του Dolibarr.


15. Δοκιμή της ενότητας σας: Χειροκίνητη και αυτοματοποιημένη

Πάντα να δοκιμάζετε:

  • Συμπεριφορές διεπαφής χρήστη

  • Εκτέλεση ενεργοποίησης

  • Αλλαγές στη βάση δεδομένων

  • Έλεγχος πρόσβασης

Εξετάστε το ενδεχόμενο να γράψετε δοκιμές PHPUnit, εάν είναι εφικτό. Χρησιμοποιήστε ξεχωριστά περιβάλλοντα δοκιμών.


16. Συσκευασία και Διανομή της Μονάδας σας

Για δημοσίευση στο Dolistore:

  • Συμπίεση του φακέλου της ενότητας χωρίς τον γονικό κατάλογο

  • Συμπεριλάβετε README.md και CHANGELOG.txt

  • Παρέχετε στιγμιότυπα οθόνης και τεκμηρίωση

Χρήση σημασιολογικής εκδοχής (1.0.0, 1.1.0) και να διατηρείτε αρχεία καταγραφής αλλαγών.


17. Συμβολή στο οικοσύστημα Dolibarr

You Can:

  • Υποβάλετε την ενότητα σας στο Dolistore

  • Κοινοποίηση βελτιώσεων στο GitHub

  • Συμμετοχή σε φόρουμ και IRC

  • Υποβολή αιτημάτων έλξης για βασικές βελτιώσεις

Τα σχόλια της κοινότητας βελτιώνουν τόσο την ενότητα σας όσο και το ίδιο το Dolibarr.


18. Σύναψη

Η δημιουργία εξωτερικών ενοτήτων είναι ο πιο αποτελεσματικός τρόπος για να προσαρμόσετε το Dolibarr στις ανάγκες του οργανισμού σας, διατηρώντας παράλληλα τη δυνατότητα αναβάθμισης και τη σταθερότητα. Η τήρηση των βέλτιστων πρακτικών διασφαλίζει ότι η ενότητά σας είναι καθαρή, ασφαλής και εύκολη στη συντήρηση. Καθώς το Dolibarr συνεχίζει να αναπτύσσεται, οι καλοσχεδιασμένες ενότητες θα είναι βασικοί μοχλοί στην εξέλιξη και την υιοθέτησή του.