Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module › Modul-Entwicklung ›

Sinvolles Updaten von Drupal Modulen

Eingetragen von Anonymous (0)
am 24.03.2009 - 10:23 Uhr in
  • Modul-Entwicklung
  • Drupal 6.x

Hi

Mal eine ganz blöde Frage...
Wie funktioniert es eigentlich wenn ich eine neue Version zu einem bereits aktivierten Modul hochgeladen habe und die update.php ausführe? Wir dann die .install des Moduls ausgeführt?
Habe gesehen das einige Module ****_update_*zahl* nutzen.
Hat dies irgendwelche Vorteile?

Und kann man updates eigentlich auch autom ausführen?
Also z.B. in dem man im Adminpanel einen Link klickt und dieser dann alles abarbeitet!?

Möchte dies alles wissen um meine Module möglichst effektiv und Sinnvoll updaten zu können.

Lg

Uhu

‹ Bei fieldset verschwindet der value nicht, wenn collapsed! Session beenden ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Re: Sinvolles Updaten von Drupal Modulen

Eingetragen von traxer (1009)
am 24.03.2009 - 13:46 Uhr
Uhu schrieb

Wie funktioniert es eigentlich wenn ich eine neue Version zu einem bereits aktivierten Modul hochgeladen habe und die update.php ausführe? Wir dann die .install des Moduls ausgeführt?

Ja. In der .install-Datei liegen aber normalerweise nur ein Haufen von Funktionen. Das Ergebnis der Ausführung ist dann, das die in der .install-Datei definierten Funktionen (z.B. foo_install, foo_update_1, ..., foo_uninstall) von Drupal aufgerufen werden können.

Uhu schrieb

Habe gesehen das einige Module ****_update_*zahl* nutzen.
Hat dies irgendwelche Vorteile?

Beispiel: Du hast ein Modul foo, das eine eigene Datenbanktabelle mit einem Integer key und einem Float wert verwendet.
Damit die Tabelle bei der Installation des Moduls automatisch angelegt wird schreibst du eine Datei foo.install mit einer Funktion

<?php
/**
* Implementation of hook_install().
*/
function foo_install() {
 
// TODO Tabelle mit Integer 'key' und Float 'wert' anlegen
}
?>

Du möchtest dein Modul überarbeiten, weil du aus Konsistenzgründen die Spalte lieber value nennen möchtest. Außerdem passt zu der Funktionalität deines Modul eher der Datentyp Decimal. Dazu musst du deine .install-Datei anpassen:

<?php
/**
* Implementation of hook_install().
*/
function foo_install() {
 
// TODO Tabelle mit Integer 'key' und Decimal 'value' anlegen
}

/**
* Implementation of hook_update_N().
*/
function foo_update_1() {
 
// TODO Decimal Spalte 'value' anlegen
  // TODO Daten von Spalte 'wert' in Spalte 'value' migrieren
  // TODO Spalte 'wert' löschen
}
?>

Beim Installieren eines Moduls (also z.B. beim erstmaligen Aktivieren) wird hook_install aufgerufen. Dabei merkt sich Drupal, welche hook_update_N existieren und sieht diese als veraltet an.

Beim Aktualisieren eines Moduls wird geschaut, welche hook_update_N in deinem Modul nicht veraltet sind und führt diese aus.

--
XING

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi Danke für deine

Eingetragen von Uhu (nicht überprüft) (0)
am 25.03.2009 - 08:56 Uhr

Hi

Danke für deine Ausführungen.
Genau sowas habe ich gemeint.
Habe den hook_update_N auch schon in auf der API Page gesehen ihn aber leider voreilig mit einem "Unterpunkt" von hook_update assoziiert...

Jetzt bleibt nur...
Ist es mir möglich die update.php autom ausführbar zu machen?
Also das duch anklicken einen Update Links bspw. diese Funktionen voll autom ausgeführt werden!?

Lg

Uhu

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Best Practices for Plain Text Notes
  • gepatchte PHP Version 7.4 für Windows
  • Canvas Palette: Eine fertige Komponentenbibliothek für Drupal Canvas
  • Hilfe zu Updates oder Composer
  • Vergleich Drupal und Contao
  • [geloest] Blocks in Bootstrap nebeneinander darstellen und nicht untereinander
  • DrupalCamp Frankfurt 27-28 November 2026
  • Bitte mein Bentzerkonto löschen
  • Beim Aufruf einiger Inhalte erhalte ich folgende Fehlermeldung
  • Neuinstallation: vermutlich ein rewrite-Problem
  • Drupal CMS installieren
  • [erledigt]MP3 in Drupal 10 einbinden
Weiter

Neue Kommentare

  • Muss ja nicht genau php 8.3 sein
    vor 2 Tagen 17 Stunden
  • Guten morgen und Danke
    vor 3 Tagen 24 Minuten
  • Evtl. versuchen auf PHP 8 zu wechseln
    vor 3 Tagen 6 Stunden
  • Danke Schmittrich. Die Frage
    vor 4 Tagen 22 Stunden
  • Keine Antwort auf die Frage nach dem Woher
    vor 5 Tagen 58 Minuten
  • Danke ich werde mir die
    vor 6 Wochen 2 Tagen
  • Vielen Dank für Ihren
    vor 6 Wochen 5 Tagen
  • Composer ist sehr ratsam
    vor 7 Wochen 11 Stunden
  • Vielen Dank für den
    vor 7 Wochen 2 Tagen
  • Die alten CMS Vergleiche von contentmanager.de
    vor 7 Wochen 3 Tagen

Statistik

Beiträge im Forum: 250324
Registrierte User: 20571

Neue User:

  • alxshell
  • FesObsemo
  • AnthonyhoF

» Alle User anzeigen

User nach Punkten sortiert:
wla9466
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 12 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association