
Kreativer gehts nicht. Bei Smip2Smile gestaltest Du Dein persönliches Geschenk & kleine Aufmerksamkeiten ganz persönlich, ganz einfach und mit Spaß.
Bleibe am laufenden Ball und abonniere mein RSS Feed
Kreativer gehts nicht. Bei Smip2Smile gestaltest Du Dein persönliches Geschenk & kleine Aufmerksamkeiten ganz persönlich, ganz einfach und mit Spaß.
Bleibe am laufenden Ball und abonniere mein RSS Feed
Überblick der Drupal API Änderung von 6.x nach 7.x - Teil 2
Übersetzung von http://drupal.org/node/224333
Liste wird erweitert, sobald es neue Änderungen gibt und Zeit/Lust vorhanden ist.
(hook_nodeapi issue, hook_user issue) Dank der Ergänzung der Registry können feinstufigere Hooks dynamisch geladen werden anstatt nur ein großen Hook mit ein operation Argument. Gábor schrieb eine Notiz in der Entwickler Mailingliste darüber, falls weiterer Informationsbedarf zum Nachlesen besteht.
Mit dieser Ergänzung kann das $op Argument entfernt werden und haben stattdessen ein Format wie hook_hookname_operationname...
Drupal 6.x:
Drupal 7.x:
(issue) zwischen Drupal 4.7 und Drupal 5 wurde das 'base' Attribute in hook_node_info() zu 'module' geändert. Jedoch war das verwirrend für Entwickler und da es keine Voraussetzung war, dass dieses Attribut mit dem Namen eines Moduls übereinstimmt und ggf. mehrere Inhaltstypen je Modul definiert werden konnte. Wurde es wieder auf 'base' zurückgesetzt.
Darüber hinaus hatten die Inhaltstypen, die durch das Node-Modul verwaltet wurden ein 'module' (jetzt 'base') Attribut von 'node'. Jedoch, um Konflikte mit den Node-Moduls eigenen Hooks zu vermeiden wurde dies gezielt verändert, wenn Hooks 'node_content' aufriefen. Zum Beispiel, haben sie immer node_content_form() verwendet. Durch einfaches zuordnen des 'base'-Attribut von solchen Typen auf 'node_content' in der Datenbank, kann die Fehleranfälligkeit dieser Attribute beseitig werden bei einem Hook-Aufruf.
Die Hilfs-Funktion _node_type_set_defaults() ist nun eine weitere nützliche öffentliche Funktion node_type_set_defaults().
Drupal 6.x:
Drupal 7.x:
Speichern eines Inhaltstyp, der durch das Node-Module verwaltet wird, in der Datenbank:
Drupal 6.x:
Drupal 7.x:
(issue) Beim Einbinden einer Datei (via include(), include_once(), require() oder require_once()) muss der absolute Pfad angegeben werden zu der Datei, durch Verwendung der Konstante DRUPAL_ROOT, um den absoluten Pfad zum Root der Drupal Installation anzugeben.
Drupal 6.x:
Drupal 7.x:
Ein einzelnes Script, dass Zugriff auf Drupal benötigt, muss DRUPAL_ROOT definieren bevor bootstrap.inc eingebunden und drupal_bootstrap() aufgerufen wird. Z.B. für ein Script, dass sich im Drupal Root Ordner befindet:
Dies mussen entsprechend geändert werden für ein Skript, das außerhalb des Drupal Stammordner liegt.
(issue) Die file_copy(), file_move(), file_delete() und file_save_data() Funktionen aus Drupal 6 sind zu file_unmanaged_copy(), file_unmanaged_move(), file_unmanaged_delete() and file_unmanaged_save_data() umbenannt worden.
file_copy() und file_move() geben jetzt den neuen Pfad zurück anstatt by Reference zu übergeben.
| Drupal 6 | Drupal 7 | Beschreibung |
|---|---|---|
| file_copy() | file_unmananged_copy() | Kopiert eine Datei zu einem neuen Ort ohne ein Eintrag in die Datenbank zuspeichern. |
| n/a | file_copy() | Kopiert eine Datei zu einem neuen Ort und fügt ein Dateieintrag zu der Datenbank hinzu. Zudem wird hook_file_copy() aufgerufen, damit andere Module den Kopiervorgang beeinflussen können. |
| file_move() | file_unmananged_move() | Verschiebt eine Datei zu einem neuen Ort ohne ein Änderungen in die Datenbank. |
| n/a | file_move() | Verschiebt eine Datei zu einem neuen Ort und aktualisiert den Datenbankeintrag der Datei. Zudem wird hook_file_move() aufgerufen, damit andere Module den Verschiebevorgang beeinflussen können. |
| file_delete() | file_unmananged_delete() | Löscht eine Datei. |
| n/a | file_delete() | Löscht eine Datei und deren Datenbankeintrag. Außerdem wird hook_file_delete() aufgerufen, so das andere Module diesen Vorgang beeinflussen können, wenn eine Datei gelöscht wird. |
| file_save_data() | file_unmananged_save_data() | Speichern eine Zeichenfolge zum angegebene Ziel, aber macht keine Änderungen an der Datenbank. |
| n/a | file_save_data() | Speichern eine Zeichenfolge zum angegebene Ziel und erstellt ein Datenbankeintrag. |
| n/a | file_load() | Ladet ein Datei-Object aus der Datenbank. Außerdem wird hook_file_load() aufgerufen, damit andere Module mit der geladene Datei etwas machen können. |
| n/a | file_validate() | Überprüft, ob die Datei mit den angegebenen Kriterien vom Validator übereinstimmt. Akzeptiert ein assoziatives Array von Callback-Funktionen, um die Datei zu überprüfen. Außerdem wird hook_file_validate() aufgerufen, damit andere die Überprüfung der neuen Datei beeinflussen können. |
| n/a | file_save() | Speichert ein Datei-Object in die Dateibank. Rufe entweder hook_file_insert() oder hook_file_update() auf, abhängig ob ein $file->fid angeben ist. |
Drupal 6.x:
Drupal 7.x:
Drupal 6.x:
Drupal 7.x:
Drupal 6.x:
Drupal 7.x:
(issue) Wobei Rollen mit „adminster nodes“ alle Daten eines Nodes (Beitrag) verändern können. (Menu, Path etc.) und bei „bypass node access“ kann die Rolle ein Node erstellen, bearbeiten oder löschen. (berechtigungen für die Einstellung innerhalb eines Nodes müssen getrennt zugeteilt werden) Ohne das ein Zugriffsüberprüfung seitens eines Moduls durch hook_access oder das Node-access-System geschieht.
(Issue)
4 neue Hooks zur Einflussnahme für Module auf den Status eines anderen Moduls. Siehe Dokumention.
(Issue) Die Funktion drupal_set_title() überprüft jetzt standardmäßig mit check_plain() den Text eines Titels. Um ein Titel als schon überprüft zumarkieren (zb bei den Platzhalter %,@ in t()) muss eine Konstante PASS_THROUGH als Paramter mit gegeben werden, um doppeltes escaping zu vermeiden.
Drupal 6.x
Drupal 7.x
Drupal 6.x
Drupal 7.x
(drupal_add_js() issue, drupal_add_css() issue) Die drupal_add_js() und drupal_add_css() Funktionen nehmen entweder den Typ als String von dem die Datei stammt oder ein Array als Parameter auf. Der neue Funktionsaufbau sieht wie folgt aus:
Dabei kann $options ein String sein, der den Typ bestimmt zb modules, themes, settings usw. oder ein Array mit den Typ und zusätzlichen Angaben ('type', 'scope', 'defer', 'cache', 'preprocess', 'media'), die vom Standard abweichen.
Drupal 6.x
Drupal 7.x
Moduleänderungen sollten nur notwendig sein, wenn die CSS/JS-Datei mehr als den Typ bisher angegeben hat.
(Issue) Die Funktion file_set_status, welche hauptsächlich dazu genutzt wurde, um eine tempöräre Datei als permanent zu markieren. Stattdessen muss jetzt file_save() verwendet werden.
Drupal 6.x
Drupal 7.x