Πίνακας περιεχομένων
-
Εισαγωγή
-
Τι είναι μια ενότητα Dolibarr;
-
Η βασική αρχιτεκτονική του Dolibarr
-
Πώς εντάσσονται οι ενότητες στην αρχιτεκτονική του Dolibarr
-
Δομή καταλόγου και αρχείου μιας τυπικής ενότητας
-
Ο Ρόλος του Περιγραφέα Ενότητας
-
Hooks, Triggers και Events: Επέκταση Βασικής Λειτουργικότητας
-
Διαχείριση πινάκων βάσης δεδομένων σε ενότητες
-
Δημιουργία διεπαφών: Σελίδες, φόρμες, πρότυπα
-
Ενσωμάτωση με βασικές λειτουργίες (μενού, δικαιώματα, PDF)
-
Βέλτιστες πρακτικές για προσαρμογή χωρίς βασική τροποποίηση
-
Συνηθισμένα λάθη και πώς να τα αποφύγετε
-
Προηγμένα σενάρια προσαρμογής
-
Διατήρηση συμβατότητας σε όλες τις εκδόσεις του Dolibarr
-
Συμπέρασμα
-
Πόροι και αναφορές για προγραμματιστές
1. Εισαγωγή
Το Dolibarr ERP & CRM έχει γίνει μια ευρέως υιοθετημένη πλατφόρμα διαχείρισης επιχειρήσεων ανοιχτού κώδικα λόγω της ευελιξίας, της επεκτασιμότητας και της ευκολίας χρήσης του. Αυτό που κάνει το Dolibarr ιδιαίτερα ισχυρό είναι το Αρθρωτή αρχιτεκτονικήΑυτός ο σχεδιασμός επιτρέπει στους προγραμματιστές και τις εταιρείες να προσαρμόστε και επεκτείνετε το λογισμικό χωρίς να τροποποιήσει τα βασικά αρχεία—εξασφαλίζοντας ένα σταθερό περιβάλλον ασφαλές για αναβάθμιση.
Αυτό το άρθρο παρέχει ένα εμβάθυνση στην αρχιτεκτονική των μονάδων Dolibarr, βοηθώντας τους προγραμματιστές και τους επαγγελματίες πληροφορικής να κατανοήσουν πώς λειτουργούν οι ενότητες στο παρασκήνιο. Είτε σχεδιάζετε να δημιουργήσετε μια νέα ενότητα από την αρχή είτε να προσαρμόσετε υπάρχουσες, αυτός ο οδηγός θα σας δώσει μια λεπτομερή κατανόηση του πώς να το κάνετε αποτελεσματικά, επαγγελματικά και σύμφωνα με τις βέλτιστες πρακτικές.
2. Τι είναι μια ενότητα Dolibarr;
A ενότητα Το Dolibarr είναι ένα αυτοτελές πακέτο που προσθέτει νέες λειτουργίες στο σύστημα ERP. Αυτές θα μπορούσαν να κυμαίνονται από:
-
Δημιουργία νέων επιχειρηματικών αντικειμένων (π.χ. συμβόλαια, εισιτήρια, πιστοποιήσεις)
-
Προσθήκη νέων αναφορών ή πινάκων ελέγχου
-
Ενσωμάτωση με API τρίτων κατασκευαστών
-
Τροποποίηση υπαρχουσών ροών εργασίας ή διεπαφών χρήστη
Οι ενότητες επιτρέπουν και τα δύο διεπαφή χρήστη (UI) και back-end (λογική, βάση δεδομένων) αλλαγές διατηρώντας παράλληλα τη συμβατότητα με τον κύκλο αναβάθμισης του Dolibarr.
Οι ενότητες μπορούν να είναι:
-
Βασικές ενότητεςΑποστέλλεται με το Dolibarr από προεπιλογή
-
Ενότητες τρίτων κατασκευαστών: Εγκατεστημένο από το Dolistore ή προσαρμοσμένης ανάπτυξης
-
Προσαρμοσμένες/ιδιωτικές ενότητες: Κατασκευασμένο για εσωτερική χρήση, διαμονή σε
/htdocs/custom/
3. Η βασική αρχιτεκτονική του Dolibarr
Το Dolibarr είναι κατασκευασμένο κυρίως με PHP και τρέχει σε μια στοίβα LAMP ή LEMP. Η αρχιτεκτονική του βασίζεται σε:
-
Αρχιτεκτονική ενιαίας εισόδου: Όλα τα αιτήματα περνούν
main.inc.php -
Δομή τύπου MVC: Χαλαρά μοντελοποιημένο με αντικείμενα, ελεγκτές, πρότυπα
-
Αρθρωτό στρώμαΟι ενότητες φορτώνονται δυναμικά και προσθέτουν λειτουργικότητα κατά τον χρόνο εκτέλεσης
-
Μοντέλο ασφαλείας που βασίζεται σε δικαιώματα
-
Παγκόσμια διαμόρφωση μέσω
$confκαι$userαντικειμένων -
Επίπεδο αφαίρεσης βάσης δεδομένων χτισμένο σε ακατέργαστη SQL με βοηθητικές συναρτήσεις
Κάθε στοιχείο του Dolibarr—είτε πρόκειται για τιμολόγια, πελάτες είτε για προϊόντα—κατασκευάζεται χρησιμοποιώντας ένα βασικό μοντέλο αντικειμένου που μπορεί να επεκταθεί μέσω ενοτήτων.
4. Πώς εντάσσονται οι ενότητες στην αρχιτεκτονική του Dolibarr
Οι ενότητες βρίσκονται πάνω από την βασική εφαρμογή και αλληλεπιδρούν με αυτήν μέσω:
-
Ακροατές συμβάντων (εναύσματα)
-
Hooks (πρόσθετα σε επίπεδο διεπαφής)
-
Προσαρμοσμένες σελίδες και φόρμες
-
Δικαιώματα και προσθήκες μενού
-
Επεκτάσεις πίνακα βάσης δεδομένων
-
Τελικά σημεία REST API (Προαιρετικό)
Όταν ενεργοποιείται μια ενότητα, το Dolibarr φορτώνει δυναμικά:
-
Τα μενού του
-
Δικαιώματα
-
Προσαρμοσμένες διαμορφώσεις
-
Σκανδάλες και άγκιστρα
-
Προσαρμοσμένα αντικείμενα (κλάσεις, πρότυπα, φόρμες)
Αυτός ο διαχωρισμός διασφαλίζει καθαρή ανάπτυξη αρθρωτών μονάδων και προσαρμογή με ασφάλεια αναβάθμισης.
5. Δομή καταλόγου και αρχείου μιας τυπικής ενότητας
Κατανόηση του δομή μιας ενότητας είναι απαραίτητη για την σωστή προσαρμογή.
Ακολουθεί μια ανάλυση ενός τυπικού φακέλου ενότητας που βρίσκεται στο /htdocs/custom/mymodule/:
Κάθε φάκελος παίζει έναν ξεχωριστό ρόλο στην ενεργοποίηση της λειτουργικότητας, διατηρώντας παράλληλα την ενότητα οργανωμένη και συντηρήσιμη.
6. Ο Ρόλος του Περιγραφέα Ενότητας
Στην καρδιά κάθε ενότητας Dolibarr βρίσκεται η κλάση περιγραφέα, που συνήθως ονομάζεται modMyModule.class.php.
Αυτό το αρχείο περιέχει:
-
Βασικά μεταδεδομένα (όνομα, αριθμός, έκδοση, περιγραφή)
-
Ενεργοποίηση/απενεργοποίηση λογικής
-
Ορισμοί μενού
-
Δηλώσεις δικαιωμάτων
-
URL σελίδας διαμόρφωσης
-
Ορισμοί σχήματος βάσης δεδομένων
-
Γάντζοι, εναύσματα και εργασίες cron
Παράδειγμα αποσπάσματος:
Αυτό το αρχείο εκτελείται όταν η ενότητα ενεργοποιηθεί στον πίνακα διαχείρισης.
7. Hooks, Triggers και Events: Επέκταση Βασικής Λειτουργικότητας
Το Dolibarr παρέχει δύο βασικούς μηχανισμούς για την επέκταση της βασικής λειτουργικότητας. χωρίς να το τροποποιήσω:
7.1 Ενεργοποιητές
Οι εναύσματα είναι ακροατές συμβάντων που εκτελούνται κατά τη διάρκεια ενεργειών συστήματος, όπως:
-
Δημιουργία τιμολογίων
-
Διαγραφή προϊόντων
-
Επικύρωση παραγγελιών
Οι κλάσεις ενεργοποίησης τοποθετούνται σε /core/triggers/ και ονομάστηκε έτσι interface_99_modMyModule_MyTriggers.class.php.
Υλοποιούν το DolibarrTriggers διεπαφή και α runTrigger() μέθοδος.
Παράδειγμα:
7.2 γάντζοι
Τα hooks εισάγουν λογικά στοιχεία ή στοιχεία διεπαφής σε υπάρχουσες σελίδες Dolibarr.
-
Άγκιστρα UI: Εισαγωγή κουμπιών, κειμένου ή HTML σε πρότυπα
-
Λογικά άγκιστρα: Επέκταση της λογικής δημιουργίας αντικειμένων, διαγραφής, επικύρωσης
Υλοποίηση μαθημάτων Hook HookInterface και να ανταποκριθούν σε τομείς όπως formObjectOptions, doActionsΚ.λπ.
Αρχικοποιούνται μέσω:
8. Διαχείριση πινάκων βάσης δεδομένων σε ενότητες
Οι περισσότερες ενότητες απαιτούν τη δική τους δομή δεδομένων. Το Dolibarr σάς επιτρέπει να ορίσετε και να διαχειριστείτε τη δική σας προσαρμοσμένοι πίνακες βάσης δεδομένων με καθαρό, συντηρήσιμο τρόπο.
8.1 Σενάρια εγκατάστασης και αναβάθμισης SQL
Ορίζετε το σχήμα σας χρησιμοποιώντας αρχεία SQL που τοποθετούνται σε /sql/.
Παράδειγμα: /sql/mymodule.sql
Το Dolibarr χρησιμοποιεί την περιγραφή της ενότητας για να εκτελέσει αυτά τα σενάρια κατά την εγκατάσταση.
8.2 Αντιστοίχιση Πινάκων με Αντικείμενο
Τα προσαρμοσμένα αντικείμενα ορίζονται ως κλάσεις PHP στο /class/, συνήθως εκτείνεται CommonObject.
Παράδειγμα: /class/certification.class.php
Αυτή η δομή επιτρέπει στο Dolibarr να δημιουργεί αυτόματα φόρμες, λίστες και αναλυτικές προβολές με ελάχιστη κωδικοποίηση.
9. Δημιουργία διεπαφών: Σελίδες, φόρμες, πρότυπα
Οι ενότητες συχνά περιλαμβάνουν προσαρμοσμένες σελίδες—είτε σελίδες διαχειριστή είτε επιχειρηματικές διεπαφές.
9.1 Αρχεία Σελίδας
Οι προσαρμοσμένες σελίδες τοποθετούνται σε /page/ και ακολουθήστε αυτήν τη δομή:
9.2 Επεξεργασία Φόρμας
Χειρισμός εισόδου χρήστη χρησιμοποιώντας GETPOST() και checkToken():
9.3 Πρότυπα (TPL)
Τα πρότυπα αποθηκεύονται σε /tpl/ και χρησιμοποιείται με include DOL_DOCUMENT_ROOT.'/custom/mymodule/tpl/mypage.tpl.php';.
Αυτό διαχωρίζει τη λογική από τη διάταξη και υποστηρίζει τη δομή HTML, τις κλάσεις και τις μεταφράσεις του Dolibarr.
10. Ενσωμάτωση με βασικές λειτουργίες (μενού, δικαιώματα, PDF)
Οι ενότητες μπορούν να ενσωματωθούν σε βάθος στο οικοσύστημα του Dolibarr.
10.1 Προσθήκη μενού
Ορίζεται στον περιγραφέα της ενότητας χρησιμοποιώντας $this->menu[] πίνακες. Κάθε μενού μπορεί να είναι ανώτατου επιπέδου, αριστερό μενού ή υπομενού.
10.2 Δικαιώματα
Ορίστε στην περιγραφή της ενότητας:
Στη συνέχεια, η πρόσβαση επικυρώνεται με:
10.3 PDF και Ενότητες Αρίθμησης
Οι γεννήτριες PDF και οι μορφές αρίθμησης μπορούν να επεκταθούν τοποθετώντας προσαρμοσμένες κλάσεις σε /core/modules/.
-
Έγγραφα PDF: Επέκταση
ModelePDFXXX -
Μονάδες αρίθμησης: Επέκταση
ModelNumXXX
Δηλώστε τα στην περιγραφή, ώστε να εμφανίζονται στον πίνακα ρυθμίσεων.
11. Βέλτιστες πρακτικές για προσαρμογή χωρίς βασική τροποποίηση
Για να διατηρήσετε το Dolibarr συντηρήσιμο:
-
✅ Χρήση άγκιστρα αντί να τροποποιείτε πρότυπα
-
✅ Χρήση πυροδοτεί αντί για επεξεργασία κλάσεων αντικειμένων
-
✅ Τοποθετήστε την ενότητα σας μέσα
/custom/για να αποφύγετε την αντικατάσταση στις αναβαθμίσεις -
✅ Προσθήκη έλεγχος έκδοσης στην περιγραφή σας
-
✅ Χρήση αρχεία γλώσσας για όλες τις συμβολοσειρές διεπαφής
-
✅ Επικυρώστε όλες τις εισόδους και διαφύγετε από όλες τις εξόδους
-
✅ Διατηρήστε την επιχειρηματική λογική σας
class/, Δενpage/
Αυτές οι συνήθειες διασφαλίζουν τη συμβατότητα αναβαθμίσεων και τη μακροπρόθεσμη σταθερότητα.
12. Κοινά λάθη και πώς να τα αποφύγετε
❌ Επεξεργασία βασικών αρχείων
ΛύσηΧρησιμοποιήστε παρακάμψεις, άγκιστρα και επεκτάσεις.
❌ Χρήση Direct SQL αντί για κλάσεις αντικειμένων
Λύση: Χρήση fetch(), create(), update() μεθόδους στις κλάσεις αντικειμένων σας.
❌ Δεν γίνεται διαχείριση δικαιωμάτων
Λύση: Να ελέγχετε πάντα $user->rights->mymodule->action.
❌ Παράλειψη επικύρωσης εισόδου
Λύση: Να χρησιμοποιείτε πάντα GETPOST() και εισόδους SQL διαφυγής.
❌ Διαδρομές Σκληρού Κώδικα
Λύση: Χρήση DOL_URL_ROOT, dol_buildpath() και σταθερές.
13. Προηγμένα σενάρια προσαρμογής
13.1 Πολυεταιρική Υποστήριξη
Εάν χρησιμοποιείτε την ενότητα MultiCompany, βεβαιωθείτε ότι η ενότητά σας:
-
μπορείτε να χρησιμοποιήσετε
entityπεδίο σε όλους τους προσαρμοσμένους πίνακες -
Σέβη
$conf->entityκατά την υποβολή ερωτημάτων σε δεδομένα
13.2 Προγραμματισμένες εργασίες με Cron Jobs
Προσθήκη εργασιών cron για εκτέλεση εργασιών παρασκηνίου:
13.3 Προσαρμοσμένα τελικά σημεία REST
Δημιουργήστε προσαρμοσμένα API τοποθετώντας σενάρια σε /custom/mymodule/script/api_*.php και την καταχώρισή τους στον περιγραφέα της ενότητας σας.
14. Διατήρηση συμβατότητας σε όλες τις εκδόσεις του Dolibarr
-
Δοκιμάστε την ενότητα σας με κάθε έκδοση του Dolibarr
-
Χρήση
dol_version_compare()για να χειριστείτε τις διαφορές έκδοσης -
Αποφύγετε τη χρήση παρωχημένων συναρτήσεων ή καθολικών μεταβλητών
-
Διατήρηση αρχείου καταγραφής αλλαγών (
changelog.txt) και να διατηρείται η σημασιολογική εκδοχή
15. Σύναψη
Η κατανόηση της αρχιτεκτονικής των ενοτήτων Dolibarr είναι απαραίτητη για τη δημιουργία ισχυρές, αξιόπιστες και ασφαλείς για αναβάθμιση προσαρμογέςΕίτε δημιουργείτε εσωτερικά εργαλεία είτε εμπορικά πρόσθετα, η κατανόηση των ακόλουθων στοιχείων θα σας βοηθήσει:
-
Δομή ενότητας και αρχεία περιγραφής
-
Άγκιστρα, εναύσματα και δικαιώματα
-
Προσαρμοσμένες κλάσεις αντικειμένων και σχήμα βάσης δεδομένων
-
Πίνακες διαχείρισης και διεπαφές χρήστη
-
Ενσωμάτωση με δημιουργία PDF, εργασίες cron και API
Το Dolibarr σχεδιάστηκε για να επεκτείνεται. Όσο καλύτερα κατανοείτε την αρχιτεκτονική του, τόσο μεγαλύτερη αξία μπορείτε να προσφέρετε με τις προσαρμοσμένες ενότητες σας—χωρίς να αγγίξετε ποτέ τον βασικό κώδικα.
