Prinzessin
I'm new here

Personalisierung: JSP und PHP Code zusammen ausführen?

Hallo,

wir haben das Personalisierungs-Modul gekauft und möchten dieses nun in eines unserer Projekte einbinden. Dazu ändert sich bei allen heraus gerenderten Seiten die Dateiendung von html/php auf jsp.

Unser Problem ist, dass wir in diesem Projekt viele Seiten haben, die mit php enden, da sie dynamische Inhalte aus einer Datenbank anzeigen und das mit php ausgelesen wird. Es ist nicht nur reines auslesen, sonder viel Logik und Klassen, die ebenfalls dahinter hängen.

Wir suchen eine Möglichkeit, wie man den php-Code in der Seite beibehalten kann und trotzdem jsp möglich ist, da jsp das CMS für die Personalisierung benötigt und der Aufwand alle php-Anwendungen auf jsp umzustellen ziemlich enorm ist.

Hatte schon mal jemand so ein oder ein ähnliches Problem und kann dazu was sagen?

8 Replies
hoebbel
Crownpeak employee

Hallo Frau Neubauer,

prinzipiell ist das Ganze schon mal ziemlich schwierig, da meines Wissens nach nur eine serverbasierte Skriptsprache pro Seite ausgeführt werden kann.

Insofern würde ich Ihnen folgende Lösung vorschlagen:

- erzeugen Sie eine JSP Seite mit der Personalisierung

- Binden Sie dort ein iFrame ein, welches die php Seite inkludiert.

Sofern Sie keinen Apache zur Ausgabe des phps vorgeschaltet haben (was ich dringend empfehle), hilft Ihnen vielleicht folgendes weiter:

http://tech.gaeatimes.com/index.php/archive/running-php-5x-on-windows-using-tomcat-4x-or-5x/

Viele Grüsse aus Dortmund,

  Holger Höbbel

0 Kudos

Hallo Herr Höbbel,

die Lösung mit dem iFrame haben wir auch schon diskutiert. Kommt für uns aber nicht in Frage, weil der Inhalt im Frame eine variable Höhe hat. Bei geringer Höhe wäre es ok, bei zu langem Inhalt müsste man scrollen, was wir nicht schön finden.

Danke für den Link, wir haben momentan noch eine andere Lösung in Betracht gezogen. Falls wir noch Fragen  zu diesem Thema haben, melde ich mich wieder.

0 Kudos

Das Scroll-Problem bekommt man ganz leicht mit jquery in den Griff. Einfach abfragen wie hoch der Inhalt des iframe ist und dann nachträglich die Höhe setzen.

Das mache ich auch jetzt schon auf einigen Webseiten und es funktioniert problemlos.

Grüße

Marcus

0 Kudos

Hallo Herr Höbbel,

wir werden ggf. bei unseren zukünftigen Projekten die gleiche Hürde nehmen müssen. Die Verwendung eines iFrames kann nicht die Lösung sein.

Gibt es hier keine besseren Best-Practises Ihrer Kunden?

Gruß Marc Schrader

Hallo Herr Schrader,

rein technologisch ist ein "JSP und PHP gleichzeitig auf einer Seite" nicht möglich, da dies die  Web-/Application-Server nicht hergeben (ist auch nur schwer vorstellbar wie das "nebeneinander" laufen soll, z.B. beim Session-Handling).

Von der Architektur her gibt es mehrere Lösungen, die für Ihren konkreten Anwendungsfall zu bewerten sind:

  1. Seiten sind JSP und die PHP-Teile werden per AJAX Clientseitig eingebunden (üblich heutzutage)
  2. Seiten sind JSP und die PHP-Teile werden per iFrame eingebunden (wurde schon genannt)
  3. Seiten sind komplett JSP und die PHP-Teile werden auf JSP migriert (vermutlich zu aufwändig bei Ihnen)
  4. Seiten sind komplett PHP, und die FirstSpirit Personalisierungskomponente (inkl. Login und Session-Handling) wird durch eine projektspezifisch PHP-Lösung ersetzt. Das lohnt sich vermutlich nur, wenn das in mehreren Projekten verwendet wird. Möglich ist das aber natürlich.

Viele Grüße,

   Andreas Knoor

0 Kudos

Hallo Herr Knoor,

können Sie zu Punkt 4 etwas mehr sagen? Wie würde das aussehen? Gibt es hier schon eine Lösung / Erweiterung der Personalisierung für php oder müsste das von Ihnen erst umgesetzt werden?

0 Kudos

können Sie zu Punkt 4 etwas mehr sagen? Wie würde das aussehen? Gibt es hier schon eine Lösung / Erweiterung der Personalisierung für php oder müsste das von Ihnen erst umgesetzt werden?

Von e-Spirit wird es keine "PHP-Version" der Personalisierung geben, aber das Modul kann man im Projekt natürlich problemlos durch eine eigene Implementierung ersetzen (Achtung Aufwand Smiley Wink)

Folgende Aspekte wären in PHP umzusetzen:

  1. Login Prozess (Passwort-Prüfung gegen die gewünschte Quelle, Ermittlung der Gruppenzugehörigkeit und ggf. weiterer User-Attribute die benötigt werden, Speicherung dieser Daten in der Session)
  2. Ein-/Ausblend Funktion: Die JSP-Tags (speziell "isAuthorized") müssen durch passende PHP-Funktionen ersetzt werden. Diese Funktionen müssen dann analog zu den JSP-Tags mit den FirstSpirit Metadaten aus dem zugehörigen Objekten parametrisiert werden.

Beides insgesamt nicht schwierig, muss aber projektspezifisch implementiert werden.

Vielleicht hat ja jemand aus der Community da sogar schon Erfahrung mit gesammelt?

0 Kudos

Je nach Komplexität ihrer PHP-Anwendung käme vielleicht auch die Verwendung von Quercus in Frage.

0 Kudos