Εδώ είναι οι κατάλληλοι τρόποι ενσωμάτωσης της λειτουργικότητας ενός αρχείου PHP μέσα σε μια επανάκληση σελίδας Drupal:
1. Χρησιμοποιώντας μια συνάρτηση μέσα σε μια προσαρμοσμένη ενότητα:
Αυτή είναι η καλύτερη και συνιστώμενη προσέγγιση. Δημιουργήστε μια προσαρμοσμένη ενότητα, τοποθετήστε τον κωδικό PHP (που περιέχει λειτουργίες) μέσα σε ένα αρχείο `.module` και, στη συνέχεια, καλέστε αυτές τις λειτουργίες από την επανάκληση σελίδας σας.
* `mymodule.module`:
`` `php
Php
/**
* Υλοποιεί το hook_menu ().
*/
Λειτουργία mymodule_menu () {
$ αντικείμενα ['myModule/myPage'] =array (
«Τίτλος» => «η σελίδα μου»,
'Callback Page' => 'mymodule_mypage_callback',
'Access Arguments' => Array ('Περιεχόμενο πρόσβασης'),
)
επιστροφή $ αντικείμενα?
}
/**
* Επανάληψη σελίδας για το MyModule/MyPage.
*/
λειτουργία mymodule_mypage_callback () {
$ output =myModule_Helper_Function (); // καλέστε μια λειτουργία βοηθού
return array ('#markup' => $ output);
}
/**
* Λειτουργία Helper για να χειριστείτε τη λογική από το αρχικό σας αρχείο PHP.
*/
λειτουργία mymodule_helper_function () {
// Ο κωδικός σας από το αρχικό αρχείο PHP πηγαίνει εδώ.
$ data =[1,2,3,4,5].
$ sum =array_sum ($ data);
επιστροφή "
Το άθροισμα του πίνακα είναι:"$ SUM."
"?}
`` `
* Επεξήγηση:
* Ορίζουμε ένα στοιχείο μενού (`mymodule_menu ()`) που δείχνει την επανάκληση σελίδας μας (`mymodule_mypage_callback ()`).
* Η επανάκληση σελίδας χρησιμοποιεί μια λειτουργία βοηθού (`myModule_Helper_Function ()`) για να ενσωματώσει τη λογική από το αρχικό σας αρχείο PHP. Αυτό διατηρεί την επανάκληση της σελίδας σας καθαρό και εστιασμένο.
* Το στοιχείο `#markup'` render array χρησιμοποιείται για την εξάτμιση του αποτελέσματος.
2. Χρησιμοποιώντας μια λειτουργία θέματος (για πτυχές θεμάτων):
Εάν το αρχείο PHP ασχολείται κυρίως με τη λογική παρουσίασης, εξετάστε το ενδεχόμενο να τοποθετήσετε τον κώδικα του μέσα σε μια λειτουργία θεμάτων.
* `mytheme.theme` (μέσα στο φάκελο του θέματος):
`` `php
Php
/**
* Υλοποιεί το hook_preprocess_page ().
*/
Λειτουργία mytheme_preprocess_page (&$ μεταβλητές) {
$ μεταβλητές ['my_data'] =mytheme_get_data ();
}
/**
* Λειτουργία βοηθού για τη λήψη δεδομένων. Αυτή η λειτουργία θα περιέχει τον κώδικα από το αρχικό σας αρχείο.
*/
Λειτουργία mytheme_get_data () {
// Ο κωδικός σας από το αρχικό αρχείο PHP πηγαίνει εδώ (Λήψη δεδομένων κ.λπ.).
επιστροφή «δεδομένα από τη λειτουργία μου».
}
`` `
* Στη συνέχεια στο αρχείο προτύπου σας (π.χ. `page.tpl.php`):
`` `php
php print $ my_data;>>
`` `
3. Συμπεριλαμβανομένου του κώδικα μέσα σε ένα προσαρμοσμένο μπλοκ (λιγότερο συνιστώμενο):
Παρόλο που είναι δυνατόν, η δημιουργία ενός προσαρμοσμένου μπλοκ για να κρατήσετε τον κώδικα από το αρχικό σας αρχείο PHP είναι γενικά λιγότερο δομημένη από τη χρήση μιας μονάδας. Είναι κατάλληλο μόνο για πολύ απλές περιπτώσεις. Θα πρέπει ακόμα να χρησιμοποιήσετε το API απόδοσης του Drupal μέσα στο προσαρμοσμένο μπλοκ.
Σημαντικές εκτιμήσεις:
* Ασφάλεια: Πάντα να απολυθείτε και να επικυρώνετε τυχόν δεδομένα που χρησιμοποιείτε από το αρχείο που περιλαμβάνονται για να αποφύγετε τη διασταύρωση Scripting (XSS) και άλλα τρωτά σημεία.
* API του Drupal: Χρησιμοποιήστε τα API του Drupal (π.χ. λειτουργίες πρόσβασης βάσεων δεδομένων, API φόρμας) αντί να αλληλεπιδρούν άμεσα με τη βάση δεδομένων ή έντυπα στο αρχείο που περιλαμβάνονται. Αυτό εξασφαλίζει τη συμβατότητα και την ασφάλεια.
* Προσωρινή αποθήκευση: Το σύστημα προσωρινής αποθήκευσης του Drupal δεν θα λειτουργήσει σωστά εάν συμπεριλάβετε άμεσα αρχεία εντός της επανάκλησης της σελίδας σας. Η χρήση λειτουργιών εντός των λειτουργιών ή των λειτουργιών θεμάτων επιτρέπει την αποτελεσματική λειτουργία των μηχανισμών προσωρινής αποθήκευσης του Drupal.
Η πρώτη μέθοδος (χρησιμοποιώντας μια προσαρμοσμένη μονάδα με βοηθητικές λειτουργίες) προτιμάται έντονα για τη διατήρηση, την ασφάλεια και την ενσωμάτωση με το οικοσύστημα Drupal. Αποφύγετε την άμεση συμπερίληψη αρχείων PHP εντός επαναλήψεων σελίδας όποτε είναι δυνατόν.
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα