Drupal lernen. Ich weiß jetzt, dass ich Block über das Backend erstellen kann, aber ich würde sie lieber programmgesteuert vorerstellen, wenn es möglich ist. Tatsächlich bin ich mir ziemlich sicher, dass es möglich ist. Aber wie geht das am einfachsten?
26
Antworten:
Für Drupal 7:
Verwenden Sie Hook_block_info- und Hook_block_view- Hooks in Ihrem benutzerdefinierten Modul . hook_block_info definiert den Block. Es wird in admin > structure > blocks angezeigt . * hook_block_view * zeigt den Inhalt an. Unten finden Sie Beispiele aus der Drupal-API.
Beispiel für hook_block_info, in dem zwei Blöcke definiert sind (mit dem Titel "Syndicate" und "Recent content"):
Beispiel für hook_block_view:
Eine vollständige Liste der Hooks finden Sie auf der Seite Blocks API auf Drupal.org. Drupal 6 ist etwas anders. Es gibt keinen hook_block_view-Hook. Verwenden Sie stattdessen hook_block , um Blöcke zu deklarieren.
quelle
Für Drupal 6 lautet die kurze Antwort, dass Sie ein benutzerdefiniertes Modul erstellen, das hook_block implementiert .
Für Drupal 7 verwenden Sie die Block-API .
Wenn dies Ihr erster Ausflug in die Modulentwicklung ist, kann ich Pro Drupal Development oder Pro Drupal 7 Development nur empfehlen . Es ist so ziemlich alles drin, was Sie wissen müssen.
quelle
Vielleicht suchen Sie nach dem, wonach ich gesucht habe und haben es hier gefunden:
Wenn Sie sich diese Funktion ansehen, werden Sie feststellen, dass Sie das db_update einfach selbst durchführen können.
quelle
Schauen Sie sich
block_add_block_form_submit
in Drupal 7 in anmodules/block/block.admin.inc
.Dies ist das reguläre Formular zum Erstellen von Blöcken. Es scheint nur die Datensätze direkt einzufügen, anstatt eine andere Funktion aufzurufen. Beachten Sie, dass jeder Datensatz in der Blocktabelle mit einem einzelnen Thema verknüpft ist (Sie können nur das aktive verwenden, aber es ist sicherer, Datensätze für alle Themen einzufügen).
Die block_custom- Tabelle enthält den Inhalt.
quelle
Mit dem Modul Features Extra können Sie Blöcke exportieren.
Alternativ können Sie Datensätze auch direkt in der Blocktabelle erstellen.
quelle