Drupal: Insert PHP
Der PHP-Filter von Drupal ermöglicht die Verwendung von rohem PHP-Code in Textfeldern. Dies ist zwar ein extrem mächtiges Feature, führt aber schnell zu ernsthaften Sicherheitsproblemen. Benutzer mit der Berechtigung, PHP-Code in Eure Webseite einzufügen, können mit der Webseite praktisch alles machen, was sie wollen. Zudem wird der PHP-Code in der Datenbank gespeichert und lebt außerhalb Eures normalen Workflows. Mein Insert PHP-Modul versucht, diese Einschränkungen des PHP-Filters zu beheben und bietet eine sicherere Möglichkeit, PHP-Code redaktionell in Eure Drupal-Webseite einzubinden.

Das Insert PHP-Modul ermöglicht das Einfügen von PHP-Dateien in Textfelder mit Hilfe von Tokens. Das Modul verwendet die Drupal-Funktion drupal_get_path, um den Speicherort Eurer Skriptdatei zu ermitteln. Daher können Eure PHP-Dateien nur über Module oder Themes hinzugefügt werden. Zunächst müsst Ihr das Insert PHP-Modul allerdings aktivieren.

Nachdem Ihr das Modul aktiviert habt, müsst Ihr den Insert PHP-Filter in eines Eurer Textformate einfügen. In diesem Beispiel werde ich einen neuen Filter erstellen, den nur Admins verwenden dürfen. Das Einfügen von PHP-Dateien in Eure Inhalte bringt immer noch potenzielle Sicherheitsprobleme mit sich. Also seid vorsichtig, wem Ihr dieses Recht gebt.

Der neue Filter kann dann von Benutzern z.B. innerhalb von Node-Formularen verwendet werden. Um eine PHP-Datei einzufügen, verwendet Ihr [theme:THEME_NAME:FILE_PATH] oder [module:MODULE_NAME:FILE_PATH]. Die Datei muss die Endung ".inc" haben, um korrekt erkannt zu werden. Wenn der Filter die PHP-Datei nicht findet, wird das Token nicht ersetzt.

In diesem Beispiel füge ich die mit diesem Modul ausgelieferte Beispieldatei in eine neue Artikel-Node ein. Ihr könnt die allgemeine Funktion des Moduls testen, indem Ihr den im Beispiel verwendeten Token kopiert. Das Ergebnis sollte ein Text mit der Nachricht "It works" sein.

Mit diesem Modul seid Ihr nun in der Lage, Eure eigenen PHP-Dateien z.B. mit Git zu verwalten und trotzdem als regulären Node-Inhalt einzufügen. Zudem fügt dieses Modul weit weniger kritische Sicherheitsprobleme hinzu, als der native PHP-Filter.
Update
Ihr findet das Modul derzeit in einem Github Repository.
Noch keine Kommentare vorhanden.