Sie "in ein Standard -PHP -Skript in einem Drupal -Seiten -Rückruf" nicht direkt "eine PHP -Datei integrieren". Drupals Theming- und Modulsystem verwandelt die Aufnahme von Dateien auf strukturiertere und organisiertere Weise. Ein direktes Einfügen einer PHP -Datei mit "Include" oder "Request" innerhalb eines Seiten -Rückrufs wird im Allgemeinen entmutigt, da sie Drupals Caching -Mechanismen umgeht und zu Inkonsistenzen und Sicherheitsanfälligkeiten führen kann.
Hier finden Sie die geeigneten Möglichkeiten, die Funktionalität einer PHP -Datei in einen Rückruf von Drupal -Seiten einzubeziehen:
1. Verwenden einer Funktion innerhalb eines benutzerdefinierten Moduls:
Dies ist der beste und empfohlene Ansatz. Erstellen Sie ein benutzerdefiniertes Modul, platzieren Sie Ihren PHP -Code (mit Funktionen) in einer `.module` -Datei und rufen Sie diese Funktionen aus Ihrem Seiten -Rückruf aus.
* `myModule.module`:
`` `php
Php
/**
* Implementiert Hook_Menu ().
*/
Funktion MYMODULE_MENU () {
$ items ['MyModule/myPage'] =Array (Array (
'title' => 'meine Seite',
'Page Callback' => 'MYMODULE_MYPAGE_CALLBACK',
'Zugriffsargumente' => Array ('Inhalt zugreifen'),
);
$ items zurückgeben;
}
/**
* Seitenrückruf für MyModule/MyPage.
*/
Funktion myModule_mypage_callback () {
$ output =myModule_helper_function (); // eine Helferfunktion aufrufen
return array ('#markup' => $ output);
}
/**
* Helferfunktion zur Logik aus Ihrer ursprünglichen PHP -Datei.
*/
Funktion myModule_helper_function () {
// Ihr Code aus der ursprünglichen PHP -Datei geht hier.
$ data =[1,2,3,4,5];
$ sum =array_sum ($ data);
zurückkehren "
Die Summe des Arrays lautet:". $ Sum."
";
}
`` `
* Erläuterung:
* Wir definieren einen Menüelement (`MYMODULE_MENU ()`), das auf unseren Seiten -Rückruf (`myModule_mypage_callback ()`) zeigt.
* Der Seitenrückruf verwendet eine Helferfunktion (`myModule_helper_function ()`), um die Logik aus Ihrer ursprünglichen PHP -Datei zu verkörpern. Dadurch wird Ihr Seitenrückruf sauber und fokussiert.
* Das Element "` '#markup'` Render Array wird verwendet, um das Ergebnis auszugeben.
2. Verwenden einer Themenfunktion (für Themenaspekte):
Wenn sich Ihre PHP -Datei hauptsächlich mit der Präsentationslogik befasst, sollten Sie ihren Code in eine Themenfunktion platzieren.
* `mytheme.theme` (im Ordner Ihres Themas):
`` `php
Php
/**
* Implementiert Hook_Proprocess_Page ().
*/
Funktion MyTHEME_PREPROCESS_PAGE (&$ Variablen) {
$ variablen ['my_data'] =mytheme_get_data ();
}
/**
* Helferfunktion zum Abrufen von Daten. Diese Funktion würde den Code aus Ihrer ursprünglichen Datei enthalten.
*/
Funktion mytheme_get_data () {
// Ihr Code aus der ursprünglichen PHP -Datei wird hier (Daten abrufen usw.).
zurück "Daten aus meiner Themenfunktion";
}
`` `
* Dann in Ihrer Vorlagendatei (z. B. `page.tpl.php`):
`` `php
Php Print $ my_data; ?>
`` `
3. Einbeziehung von Code in einen benutzerdefinierten Block (weniger empfohlen):
Das Erstellen eines benutzerdefinierten Blocks, um den Code aus Ihrer ursprünglichen PHP -Datei zu halten, ist im Allgemeinen weniger strukturiert als die Verwendung eines Moduls. Es ist nur für sehr einfache Fälle geeignet. Sie müssen Drupals Rendering -API im benutzerdefinierten Block verwenden.
Wichtige Überlegungen:
* Sicherheit: Bereinigen und validieren Sie alle Daten, die Sie verwenden, aus der enthaltenen Datei, um Cross-Site-Skript (XSS) und andere Schwachstellen zu verhindern.
* Drupals API: Verwenden Sie die APIs von Drupal (z. B. Datenbankzugriffsfunktionen, Formular -APIs), anstatt direkt mit der Datenbank oder Formularen in Ihrer enthaltenen Datei zu interagieren. Dies gewährleistet die Kompatibilität und Sicherheit.
* Caching: Das Caching -System von Drupal funktioniert nicht korrekt, wenn Sie direkt Dateien in Ihren Seiten -Rückruf einbeziehen. Durch die Verwendung von Funktionen in Modulen oder Themenfunktionen können Drupals Caching -Mechanismen effektiv funktionieren.
Die erste Methode (unter Verwendung eines benutzerdefinierten Moduls mit Helferfunktionen) wird für Wartbarkeit, Sicherheit und Integration in das Drupal -Ökosystem stark bevorzugt. Vermeiden Sie die direkte Einbeziehung von PHP -Dateien in Seitenrückrufe, wann immer möglich.