[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
Verwendung von OUTPUT_FILTER - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
nichome
Beiträge: 2
Registriert: 13. Sep 2006, 20:50

Verwendung von OUTPUT_FILTER

13. Sep 2006, 21:17

Hallo,

ich versuche mich gerade an einem Modul, das einen aufgrund der Eingabe in einem Block einen JavaScript-Code erzeugt, der dann in den HTML-Header eingefügt werden soll.

Das Modul "Code im HEAD einfügen" (http://www.redaxo.de/165-Moduldetails.h ... ule_id=117) hat mir als Beispiel schonmal weitergeholfen, dennoch komme ich nicht weiter. Hier das Beispiel:

Code: Alles auswählen

<?php

rex_register_extension('OUTPUT_FILTER', 'rex_insert');
if (!function_exists(rex_insert)) {
  function rex_insert($params) {
    $content = $params['subject'];
    $javacode = "\n".'REX_PHP'."\n";
    return str_replace('</head>', $javacode.'</head>', $content);
  }
}

?>
Bei diesem Beispiel wird der Code mittels REX_PHP in die Function rex_insert eingebunden, d.h. die Benutzereingabe wird 1:1 übernommen. Ich möchte allerdings den Text für den HEAD (nennen wir ihn $javacode) erst generieren (PHP-Code im "Ausgabe"-Teil des Moduls).

Ich müsste also dieser Function rex_insert einen String übergeben, komme aber nicht drauf, ob oder wie das gehen soll. :(

Für's Erste habe ich mal das Generieren des Codes $javacode innerhalb der Function rex_insert eingebaut und die Eingaben mittels REX_VALUE[1] usw. übernommen. Doch das funktioniert dann nicht mehr, wenn ich dasselbe Modul mehrmals hintereinander in einem Artikel einbinde.

Weiß jemand, wie ich das Problem lösen könnte?

Vielen Dank!

Benutzeravatar
Markus.Staab
Entwickler
Beiträge: 9634
Registriert: 29. Jan 2005, 15:50
Wohnort: Aschaffenburg/Germany
Kontaktdaten: ICQ Website

13. Sep 2006, 21:36

Hi,

Willkommen bei REDAXO!

hast du diesen Code in der Ausgabe deines Moduls?

Gruß,
Markus

nichome
Beiträge: 2
Registriert: 13. Sep 2006, 20:50

14. Sep 2006, 09:10

Hallo und danke schon mal für die Antwort und die Begrüßung. ;)

Ja, den Code generiere ich in der Ausgabe des Moduls. Vereinfacht zum besseren Verständnis, so in der Art:

Code: Alles auswählen

...
if ("REX_VALUE[1]" == "xxx") $javacode .= 'hello("REX_VALUE[2]");';
...
Übrigens: Auch wenn ich inzwischen festgestellt habe, dass mein JS auch im HTML-Body funktioniert (ging zunächst nicht), würde ich trotzdem gerne die endgültige Ausgabe wie beschrieben vom Modul aus mehrfach verändern können. Wäre toll, wenn es dafür eine einfache Möglichkeit gäbe, hat allerdings jezt nicht mehr die allerhöchste Dringlichkeit. :wink:

Servus

Benutzeravatar
Markus.Staab
Entwickler
Beiträge: 9634
Registriert: 29. Jan 2005, 15:50
Wohnort: Aschaffenburg/Germany
Kontaktdaten: ICQ Website

14. Sep 2006, 09:42

Hi,

schau dir mal den Code an, den das Modul bei dir erzeugt...

Ich vermute, da fehlt ein <script ...></script> um den Code herum..

Weiterhin würde ich das ganze noch mit einem if(!$REX['REDAXO']) versehen, da du sonst auch im Backend deine Javascripts eingebunden bekommst..

Gruß,
Markus

mb@WIT
Beiträge: 56
Registriert: 26. Sep 2006, 13:50
Wohnort: Nürnberg
Kontaktdaten: Website

31. Jul 2007, 12:38

Hallo habe ein ähnliches Problem.

Habe die Dinge wie von kills beschrieben bereits eingebaut funktioniert auch alles.. Jedoch gleiches Problem wie bei nichome bei mehrfachem Einbinden.

Mein Modul verändert den TemplateCode und fügt in der Navigation noch Punkte an. Idee war das vorher fest definierte Artikel je nach Lust und Laune des Kunden bei beliebigen Artikeln dynamisch eingebunden werden können.

Jedoch gibt die Funktion nur jeweils die zuerst übergebenen Werte aus. D.h. sämtliche eingebunde Artikel werden gleich bezeichnet bzw haben den Link auf den ersten Artikel.

Gibt es eine Möglichkeit die Generierung der Daten für die Funktion wie oben angesprochen vor der Funktion ablaufen zu lassen und diese dann der Funktion zu übergeben?

Oder hat jemand sogar eine ganz andere Lösung für mein Problem?

Herzlichen Dank schonmal,
Grüße
Wegener IT - Integration & Collaboration

mb@WIT
Beiträge: 56
Registriert: 26. Sep 2006, 13:50
Wohnort: Nürnberg
Kontaktdaten: Website

17. Okt 2007, 15:36

Habe das ganze umgeschrieben in dem ich das Modul nicht mehrfach aufrufe sondern nur 1 mal und in dem Modul bis zu 10 Eingaben machen kann.
Bin halt nun auf 10 Eingaben beschränkt dafür sind alle unterschiedlich.
Wegener IT - Integration & Collaboration

Zurück zu „Allgemeines [R3]“