+ Antworten
Ergebnis 1 bis 5 von 5

Thema: Modul mit mehreren Seiten

  1. #1
    Neu an Board
    Registriert seit
    02.02.2010
    Ort
    Frankfurt
    Beiträge
    16
    Bedankte sich
    6
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard Modul mit mehreren Seiten

    Hallo,

    ich muß eine bereits programmierte Webseite nun in Joomla! umsetzen und komme irgendwie nicht weiter.

    Aus einer externen Datenbank werden Daten über eine SOAP Schnittstelle ausgelesen und es wird eine Liste von Fahrzeugen angezeigt. Für diese Ansicht habe ich bereits erfolgreich ein Modul geschrieben und installiert. Funktioniert bisher perfekt.

    Jetzt geht jedoch der Prozess weiter und es soll sich beim Anklicken eines Fahrzeuges eine Ansicht öffnen, in der alle Details (erneut durch eine Abfrage ausgelesen) zum Fahrzeug sichtbar werden. Hierfür existiert bereits eine Seite/ein Skript an die die entsprechende Fahrzeug ID übergeben wird (details.php).

    Ich habe bereits versucht, die Seite details.php in mein Modul zu integrieren (Anpassung der files in der xml-datei und Anpassung der details.php), um sie dann einfach per Link aufrufen zu können, aber so einfach scheint es dann doch nicht zu sein, denn Joomla! findet diese Seite details.php nicht.

    Dazu kommt, daß die Seite details.php auch ein kleines Kontaktformular enthält, daß die Daten an ein weiteres Skript zur Verarbeitung sendet. Diese müsste im nächsten Schritt auch integriert werden.

    Kann mir jemand bitte einen kleinen Tipp geben, wie ich da am besten vorgehe. Ich suche in Foren und suche in Büchern und werde keinesfalls klüger sondern nur immer verwirrter

    Danke schon mal im voraus.

  2. #2
    War schon öfter hier
    Registriert seit
    23.09.2009
    Beiträge
    235
    Bedankte sich
    0
    Erhielt 62 Danksagungen
    in 59 Beiträgen

    Standard

    Für gewöhnlich wird das standard Layout (default.php) geladen. Dies geschieht über die Anweisung:
    PHP-Code:
    JModuleHelper::getLayoutPath'mod_name_des_moduls' ); 
    Durch Abfrangen einer Request Variable würde sich die Möglichkeit ergeben ein anderes Layout einzubinden.
    PHP-Code:
    $layout = ...
    JModuleHelper::getLayoutPath'mod_name_des_moduls'$layout ); 
    Die Datei muss sich, wie das standard Layout auch, im tmpl Verzeichnis des Moduls befinden.

    Ich würde dir / euch im Hinblick auf den Umfang eurer Erweiterung zu einer Umsetzung als Komponente raten. Irgendwann reicht die Funktionalität eines Moduls alleine nicht mehr aus.
    Tell 'em what they want to hear. That will keep them coming back for more. I 've got some for everyone.

  3. #3
    Neu an Board
    Registriert seit
    02.02.2010
    Ort
    Frankfurt
    Beiträge
    16
    Bedankte sich
    6
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Hallo,

    vielen Dank für Deine Antwort.

    Ich stecke wahrscheinlich zu sehr in der außer-Joomla!-Webseitenstruktur, als daß ich alles verstehen könnte.

    Ich möchte eigentlich kein zusätzliches Layout, denn dieses kann ich ja über die CSS und die eindeutigen divs/classen steuern. Es gibt auch einen Standardplatz (user4) wo ich die Details gerne platzieren würde.

    Mein Skript erzeugt eigentlich nur dynamisch Code, den ich gerne anzeigen lassen will.

    In meiner Verzweiflung habe ich etwas neues ausprobiert. Gerade habe ich neuen Beitrag mit übergebener Fahrzeug-ID (per Get) aufrufen lassen. Jetzt will ich es versuchen, hier das (noch zu erstellende) Modul "mod_details" anstelle des Beitrages zu verknüpfen und hoffe, daß ich die ID dann dort "reinholen" und verarbeiten kann. Meinst Du, das wird funktionieren?

    Die Funktionsweise der Komponenten kapier ich überhaupt nicht. Kann ich denn damit einen ganzen "Prozeßblock" (Suchmaske --> Ergebnis --> Details --> Kontakt) abbilden? Ich habe mir bereits einige Beispiele angeschaut, aber keines hat mir weiter geholfen. Entweder bin ich zu doof, zu verwirrt oder was auch immer...auf jeden Fall bin ich sehr gefrustet über meine Hilflosigkeit.

    Ganz viele liebe Grüße
    Petra

  4. #4
    Moderator Avatar von time4mambo
    Registriert seit
    11.12.2006
    Ort
    76646 Bruchsal
    Alter
    54
    Beiträge
    14.367
    Bedankte sich
    456
    Erhielt 2.978 Danksagungen
    in 2.796 Beiträgen

    Standard

    Ich hänge mich hier mal mit dran, da ich gerade exakt das gleiche Problem habe und in einem Modul (welches ebenfalls einwandfrei läuft) auch nach Klick auf einen Link eine detaliertere Ansicht brauche.

    Bevor ich mich in die Geheimnisse der Komponenten-Programierung nun endgültig reinfummele - kann ich bei der genannten JModuleHelper-Methode auch irgendwie Parameter übergeben? Bei mir wäre es eine User-ID, allerdings nicht meine eigene, die ich ja bequem abfragen könnte.


    Axel
    Schulungen, Webentwicklung: time4mambo
    (Video-)Tutorials: time4joomla

  5. #5
    War schon öfter hier
    Registriert seit
    23.09.2009
    Beiträge
    235
    Bedankte sich
    0
    Erhielt 62 Danksagungen
    in 59 Beiträgen

    Standard

    Für genau solche Vorhaben sind die verschiedenen Layouts eines Moduls vorgesehen.
    Die Möglichkeit der Layouts in Modulen kommt dem Verhalten in Komponenten gleich.

    Möchte man beispielsweise zuerst ein Formular darstellen, bietet sich die default.php an. Aufgerufen wird diese meist am Ende des Einstiegspunkts in einem Modul.

    Der Einstiegspunkt, welcher die Funktion des Controllers einer Komponente übernimmt, prüft Post/Request Variablen ( JRequest::getXZY(); ) auf bestimmte Werte.

    Wurde ein Formular abgeschickt oder ein Filter gesetzt, z.B bei / in einer Suche, kann man diesen Wert abfangen und daraufhin ein anderes Layout wählen. Auswertungen etc.

    Parameter die man, sei es über ein Formular oder einem Link übergibt (index.php?bezeichner=wert), werden wie oben angedeutet nicht im Layout abgefragt, sondern im Einstiegspunkt des Moduls. Hier wird dann anhand der Werte ein anderer DB Query ausgeführt und oder ein anderes Layout geladen.

    Hier aus Zeitmangel die Theorie
    Einstiegspunkt
    Prüfe vorhandensein einer Post / Request Variable
    Vorhanden => weitere Verarbeitung => lade detail Layout
    Nicht vorhanden => lade standard Layout

    Sollten weitere Fragen offen sein stehe ich zwischen 18-19 Uhr im Chat zur Verfügung. Eventuell schickt mir eine PM zur Erinnerung.
    Geändert von Barnum (08.02.2010 um 12:33 Uhr)
    Tell 'em what they want to hear. That will keep them coming back for more. I 've got some for everyone.

  6. Erhielt Danksagungen von:


+ Antworten

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein