Wie kann ich auf transparente Weise Funktionen von Kernmodulen überschreiben?
Kein direktes Hacken von Kernmodulen!
Das Hacken von Kernmodulen gilt zu Recht als absolutes Tabu. Gelegentlich kommt es aber doch vor, dass man eine Funktion vermisst, die mit einer kleinen Änderung in einem Kernmodul einfach zu erzielen wäre (siehe das Beispiel unter http://www.drupalcenter.de/node/15036). Was also tun, wenn man nicht gleich ein Modul schreiben will?
Die Lösung: Drupals Multisite-Funktionalität
Die Lösung liefert Drupals Multisite-Funktionalität. Man kopiert einfach das Kernmodul in den entsprechenden Ordner, z.B. /sites/all/modules/core_hacks/
. An dieser Kopie nimmt man seine Modifikationen vor. Nun muss man nur noch den Cache löschen. Das nächste Mal greift Drupal dann auf die modifizierte Version zu statt auf das Original.
Die Vorteile:
- Es erfolgt keine direkte Änderung des Kerncodes.
- Die Änderungen lassen sich sauber wieder rückgängig machen (einfach das modifizierte Modul löschen).
- Bei einem Update der Kernmodule gehen die eigenen Modifikationen nicht verloren. (Man sollte bei einem Sicherheitsupdate aber überprüfen, dass man nicht mit einer veralteten, unsicheren Version arbeitet.)
Hier die Originalartikel für diesen Trick:
Cleanly overriding core modules in Drupal through the magic of multisite
http://raincitystudios.com/blogs-and-pods/boris-mann/cleanly-overriding-...
One way to override Drupal core modules - safely
http://www.elvisblogs.org/drupal/one-way-override-drupal-core-modules-sa...
- Anmelden oder Registrieren um Kommentare zu schreiben
Beispiel: Inhaltsverwaltung mit mehr Nodes pro Seite
am 22.12.2008 - 10:23 Uhr
Ein konkretes Beispiel für eine Lösung des in http://www.drupalcenter.de/node/15036 geschilderten Problems findet sich unter http://drupal.org/node/347659.
Frank
Gruß
Frank
Bitte Erledigtes im Betreff des ersten Postings als [gelöst] markieren. Danke!