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

Batchapi für Drupal5

Eingetragen von dawehner (2639)
am 17.12.2008 - 19:22 Uhr in
  • Modul-Entwicklung
  • Drupal 5.x

Sicher kennt jeder unter d6 den Update/Installationsladebalken

Dieser wird von der sogenannten Batchapi benutzt, welche Aufgaben hintereinander abarbeitet und gleichzeitig so das 30s Limit von PHP umgeht.

Alles schön und gut, jedoch ist das D6.

Ich bräuchte eine BATCH API unter Drupal5, hat da jemand eine Ahnung ob es sowas gibt?, habe leider nichts selber gefunden.

Sonst hat vlt. jemand eine Ahnung wie man so einen Rekursiven Aufruf unter PHP Nachprogrammieren könnnte.

Danke

‹ Modul nicht zwischenspeichern (cachen) Form Panel ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Re: Batchapi für Drupal5

Eingetragen von traxer (1009)
am 25.12.2008 - 15:34 Uhr

Ich habe auch keine Batch API für D5 gefunden. Ich habe aber mal kurz in den Quelltext der Batch API in D6 geschaut: ich habe nichts gefunden, was einen Backport ausschließen würde.

Es stellt sich natürlich die Frage, wozu du die Batch API verwenden würdest. Die Operationen, die man z.B. unter admin/content/node auf Nodes ausführen kann, werden auch durch einen Backport nicht über die Batch API abgewickelt. Deine eigenen Module könnten die Batch API natürlich für aufwendige Operationen verwenden.

Falls ein Backport zu aufwendig ist könntest du

  1. im Submit-Handler des Formulars
    1. dem Batch eine eindeutige ID $bid geben,
    2. die durchzuführenden Operationen anhand der Formularwerte vorbereiten, z.B. als
      <?php
      array(
        array(
         
      'function name' => $first_function,
         
      'arguments' => $first_arguments,
        ),
        array(
         
      'function name' => $second_function,
         
      'arguments' => $second_arguments,
        ),
       
      // ...
      );
      ?>
    3. das ganze unter Verwendung der $bid in der Session speichern,
    4. mittels
      <?php
      return 'my_batch/' . $bid
      ?>
      auf die Verarbeitungsseite weiterleiten,
  2. im hook_menu() einen Eintrag anlegen, der einen Verarbeitungscallback für my_batch zuweist und arg(1) als Argument übergibt,
  3. im Verarbeitungscallback
    1. die Operationen anhand des übergebenen Argumentes aus der Session lesen,
    2. einige Operationen ausführen,
    3. die verbleibenden Operationen zurück in die Session schreiben,
    4. einen Meta-Refresh auf die eigene URL ausgeben,
    5. Daten über den Fortschritt ausgeben,
    6. drupal_goto wenn alle Operationen des Batches ausgeführt wurden.

--
XING

  • Anmelden oder Registrieren um Kommentare zu schreiben

Wow danke Es geht darum alle

Eingetragen von dawehner (2639)
am 25.12.2008 - 22:35 Uhr

Wow danke

Es geht darum alle Nodebodies zu durchsuchen, und entsprechend zu verändern.
Ich bin mir sehr sehr sicher, dass das nicht ohne ein Zusatz funktioniert
--------------
Blog www.freeblogger.org: Deutscher IRC-Channel: irc.freenode.net #drupal.de ... Jabber-me: dwehner@im.calug.deXING

  • Anmelden oder Registrieren um Kommentare zu schreiben

Vielleicht ist ein Filter besser

Eingetragen von traxer (1009)
am 26.12.2008 - 02:02 Uhr
dereine schrieb

Es geht darum alle Nodebodies zu durchsuchen, und entsprechend zu verändern.

Es wäre zu überlegen, ob da nicht ein Filter besser geeignet ist. Ein Filter greift in das Rendering der Inhalte ein. Die Inhalte bleiben also in der Datenbank so erhalten, wie der Benutzer sie eingegeben hat und werden erst bei der Darstellung entsprechend interpretiert (z.B. gibt es einen Filter der aus "[internal:node/256]" automatisch einen Link auf index.php?q=node/256 erzeugt, unter Beachtung deiner Einstellung für Clean URLs und eines Aliases, das du für den genannten Node vergeben hast).

Durch das Ändern des Body verlierst du Informationen. Es stellt sich die Frage, ob du diese Informationen irgendwann noch brauchst oder nicht.

--
XING

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 3 Wochen 1 Stunde
  • Hey danke
    vor 3 Wochen 20 Stunden
  • Update: jetzt gibt's ein
    vor 3 Wochen 1 Tag
  • Hallo, im Prinzip habe ich
    vor 3 Wochen 6 Tagen
  • Da scheint die Terminologie
    vor 3 Wochen 6 Tagen
  • Kannst doch auch alles direkt
    vor 4 Wochen 3 Tagen
  • In der entsprechenden View
    vor 4 Wochen 3 Tagen
  • Dazu müsstest Du vermutlich
    vor 4 Wochen 3 Tagen
  • gelöst
    vor 6 Wochen 6 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 7 Wochen 20 Stunden

Statistik

Beiträge im Forum: 250233
Registrierte User: 20462

Neue User:

  • Znogsnernoimb
  • ByteScrapers
  • Mroppoofpaync

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 18 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