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

Blockadressierung

Eingetragen von ronald (3857)
am 30.06.2014 - 10:25 Uhr in
  • Modul-Entwicklung
  • Drupal 7.x oder neuer

Ich bin geard an einem Modul, das ich so konfigurierbar machen möchte, dass die Eingabe und die Ausgabe in verschiedenen Blöcken erfolgen kann.

Das Modul selbst bezieht seinen content von einem externen service.

Die Abfrageparameter sollen in einem kleinen Block eingebbar sein.

Beispiel zur Verdeutlichung: in der Sidebar ganz oben sei ein Textfeld und ein Abfragebutton - wird der Abfragebutton gedrückt, wird der Text aus dem Textfeld an den Service gesendet, und die Antwort landet im Footer (oder im contentbereich, oder ...).

Hierfür suche ich noch den richtigen Ansatz.

‹ Zugriff auf nodes aus eigenem Modul fboauth und die neue facebook graph api ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

wir gerade für einen Kunden

Eingetragen von montviso (2188)
am 30.06.2014 - 15:50 Uhr

Wir haben gerade für einen Kunden http:/www.mietwagen-preisvergleich.de online gebracht.
Da ist auf der Startseite und auch auf den Unterseiten ein Formular- Block, der den Ort und die gewünschte Zeit entgegen nimmt und via JSON an eine Schnittstelle sendet.
Diese sammelt die Daten von den einzelnen Autovermietern und liefert die zurück an ein Drupal-Modul, wo wir sie gelistet bzw. im Detail ausgeben.

Meinst Du sowas in der Art?
Puh, das ist ganz schön komplex.
Da spielen einige Module zusammen, die mit der externen Schnittstelle (Service) kommunizieren.

Oder verstehe ich Dich falsch und Du meinst eine viel kleinere Aufgabe?

  • Anmelden oder Registrieren um Kommentare zu schreiben

so ähnlich, aber nicht so komplex

Eingetragen von ronald (3857)
am 30.06.2014 - 16:33 Uhr

Den Service habe ich im Griff, so dass er mir einen HTML-Text liefert.

Ich muss nur definieren, wohin der Text soll.

Und ich will den Aufruf mit ein paar Parametern - es sind nur 3 - aus einem Formular holen, das in einem anderen Block fix steht.

Ich brauche ggf. ein Feld aus dem Userprofil, das im Formular als hidden field mitgesendet werden soll.
Das ist aber dann schon die advanced version ;-).

  • Anmelden oder Registrieren um Kommentare zu schreiben

Aaaahhhh...das ist doch etwas

Eingetragen von montviso (2188)
am 30.06.2014 - 18:48 Uhr

Aaaahhhh...das ist doch etwas einfacher. ;-)
Da gibt es verschiedene Ansätze.

Du holst ja vermutlich die drei Parameter und übergibst sie via GET-Methode an die Action des Formulars.
Mit der Action wird eine Seite aufgerufen, in der Du dann den HTML Code der fremden Seite ausgibst.

Methoden, mit denen Du solch fremden Code ausgeben kannst, sind hier gesammelt:
http://www.drupalcenter.de/node/39639

Es gibt noch das Webclient Modul (kenne ich nicht näher)
https://www.drupal.org/project/webclient

Die Funktion drupal_http_request macht genaus sowas.
Wir haben in o.g. Projekt indirekt mit der Funktion gearbeitet, da sie auch im JSON Client Modul verwendet wird.
Du kannst sie natürlich auch direkt verwenden:
https://api.drupal.org/api/drupal/includes!common.inc/function/drupal_http_request/7
Die gibt ein Objekt zurück u.a. mit den gewünschten Daten, die Du dann auf dieser Seite ausgeben kannst.

Sauber wäre die Verarbeitung einer der o.g. Methoden als Modul.
Quick+Dirty wäre die Verwendung von PHP-Code in der Seite oder dem Block, wo der Code eingebunden werden soll.

  • Anmelden oder Registrieren um Kommentare zu schreiben

das soll schon ein eigenes Modul werden

Eingetragen von ronald (3857)
am 30.06.2014 - 20:39 Uhr

Auf Klimmzüge habe ich keine Lust.
Quick ist zwar gut, es muss nicht auch noch dirty sein ;-)

Mir geht es um die Konfigurierbarkeit des Kontrollfensters und des Ausgabefensters.

Also vergiß den externen Service - die eigentliche Frage lautet:

Wie bringe ich ein Formular in einen Block, und dessen Ergebnis in einen anderen?
Wie mache ich das konfigurierbar?

Kurze Frage dazu: sind um $user alle Felder (auch hinzugefügte) immer verfügbar? Ich könnts ja ausprobieren, aber so gehts schneller ;-).

  • Anmelden oder Registrieren um Kommentare zu schreiben

Von wegen Formular in

Eingetragen von montviso (2188)
am 30.06.2014 - 21:04 Uhr

Von wegen Formular in Block.
Da habe ich mich bei obigem Projekt auch lange verkopft.
Du kannst ja Webforms auch als Block einrichten, statt als Node.
Aber da hast Du immer das Problem, daß die Anfragen auch in der Datenbank gespeichert werden.
Wir haben dann eben eigene Module geschrieben, wo man auch noch via Callback-Funktionen Validierungen einfügen kann oder irgendwelchen Zauber rund um den Submit anstellen kann.

Da du das nicht brauchst, kannst Du ja den Aufbau des Formulars einfach als HTML in den Block schreiben.
$user ist verfügbar im Block:

Du brauchst eine Zeile

<?php

global $user;
?>

Danach stehen Dir alle Werte aus dem objekt zur Verfügung.

Was genau soll konfigurierbar sein?
Das Formular oder die Ausgabe des HTML?

  • Anmelden oder Registrieren um Kommentare zu schreiben

meine Vorstellung

Eingetragen von ronald (3857)
am 30.06.2014 - 21:56 Uhr

Ich erstelle ein Modul, das ein Abfrageformular erzeugt.
Das ist nicht so schwierig.
Forms API, nicht Webforms.

Wenn dort der Sendebutton gedrückt wird, soll ein Service aufgerufen werden, also eine Webseite, die die Parameter aus dem Formular (per POST) erhält, und daraus ein HTML-Dokument liefert.

Dieses soll aber nun nicht dort erscheinen, wo das Formular steht, sondern in einem anderen Block.

Das Modul hat also zwei Blöcke, den Formularblock und den Ausgabeblock. Diese sollen frei konfigurierbar sein.

Einen Parameter möchte ich aus dem User-Registration-Form ziehen, die anderen beiden Parameter sind Datumsangaben relativ zum Aufrufdatum, bzw von Hand einzugeben.

  • Anmelden oder Registrieren um Kommentare zu schreiben

"Das ist nicht so

Eingetragen von montviso (2188)
am 01.07.2014 - 05:43 Uhr

"Das ist nicht so schwierig."
Nicht so schwierig, wie Dir die Infos aus der Nase zu ziehen. ;-)

Fehlt Dir evt. noch der Teil, der ein Template für die Ausgabe erzeugt?
Oder wo genau hängt's jetzt noch?

Was verstehst Du unter frei konfigurierbar?
Daß Du den Block in eine beliebige Region schieben kannst?

  • Anmelden oder Registrieren um Kommentare zu schreiben

ich bin in der Lösungsfindungsphase

Eingetragen von ronald (3857)
am 01.07.2014 - 08:37 Uhr

Da ist es manchmal gut und wichtig, mit jemandem zu "reden", um Designfehler zu vermeiden.
Da dies nicht mein Hauptprojekt ist, kann ich nur wenig Zeit darauf verwenden.
Deshalb versuche ich nebenher theoretisch so viel zu klären wie möglich.

Der nächste Schritt, wahrscheinlich erst am Wochenende, wird der erste Codeentwurf sein.

Aber vielen Dank für die Hilfe bei der Vorklärung.

Bin einen Schritt weiter -
hook_block_info und hook_block_configure bringen mich weiter.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Jetzt will ICH aber mehr wissen, bitte schön!

Eingetragen von maen (547)
am 01.07.2014 - 09:01 Uhr

Das interessiert mich aus einem anderen Blickwinkel.

Du nimmst einen externen Webservice, also REST oder SOAP???

Du baust eine form mit der Form api. Darin gibst Du den Endpoint an mit der extern definierten Syntax.
Dann machst Du einen Block mit einem Callback, der die Ergbnisse abfängt.

Habe ich das jetzt richtig verstanden?

Danke vorab,
Marc

  • Anmelden oder Registrieren um Kommentare zu schreiben

wie gesagt

Eingetragen von ronald (3857)
am 01.07.2014 - 09:37 Uhr

ich bin noch in der Findungsphase, aber ja, so soll das ablaufen.

Wenn Interesse besteht, veröffentliche ich das Ergebnis hier oder an anderer Stelle.

Kann aber etwas dauern, da ich dieses Projekt privat und nebenher betreibe.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Klar besteht da Interesse!

Eingetragen von maen (547)
am 01.07.2014 - 09:42 Uhr

Klar besteht da Interesse!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Zitat: Klar besteht da

Eingetragen von montviso (2188)
am 01.07.2014 - 10:10 Uhr
Zitat:

Klar besteht da Interesse!

Dem schließe ich mich an.

  • 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 2 Wochen 35 Minuten
  • Hey danke
    vor 2 Wochen 19 Stunden
  • Update: jetzt gibt's ein
    vor 2 Wochen 1 Tag
  • Hallo, im Prinzip habe ich
    vor 2 Wochen 5 Tagen
  • Da scheint die Terminologie
    vor 2 Wochen 6 Tagen
  • Kannst doch auch alles direkt
    vor 3 Wochen 3 Tagen
  • In der entsprechenden View
    vor 3 Wochen 3 Tagen
  • Dazu müsstest Du vermutlich
    vor 3 Wochen 3 Tagen
  • gelöst
    vor 5 Wochen 6 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 6 Wochen 19 Stunden

Statistik

Beiträge im Forum: 250233
Registrierte User: 20452

Neue User:

  • ByteScrapers
  • Mroppoofpaync
  • 4aficiona2

» 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 24 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