(Weblink) Mehrzeiliges Perl

Begonnen von Virsacer, 23 Juli 2015, 18:07:29

Vorheriges Thema - Nächstes Thema

Virsacer

Hi, ich habe ein Weblink mit htmlCode, der aufgrund von Javascript etwas länger ist.
Außerdem benötige ich darin eine Perl-Ausgabe.

Der Code wird dann allerdings nur interpretiert, wenn er komplett in einer Zeile steht, was aber extrem unlesbar ist :-\
Wäre schön, wenn hier ebenfalls Zeilenumbrüche möglich wären...

rudolfkoenig

Meiner Ansicht nach gehoert sowas in eine JavaScript-Datei, die man mit dem JavaScripts FHEMWEB Attribut reinladen kann.

Virsacer

Und wie bekomme ich dann meine Perl-Werte da rein?
...auch mit unübersichtlichem einzeiligem Code :/

Außerdem soll das JS ja nicht auf jeder Seite sein, sondern nur da wo es tatsächlich ausgeführt werden soll.
Gibt sicher noch andere Anwendungsfälle ohne JS, bei denen das für höhere Lesbarkeit sorgen würde...

rudolfkoenig

ZitatUnd wie bekomme ich dann meine Perl-Werte da rein?
Da gibt es diverse Methoden, wie trigger JS:meineFunktion("Parameter1","usw"), oder im weblink ein Hidden div mit den Parameter anlegen, und im Javascript nach diesem div suchen, oder ein eigenes FHEMWEB-Widget definieren, und mit normalen Events fuettern, usw. usf.

Btw. mehrzeilige welinks der Sorte htmlCode funktionieren, gerade getestet, siehe Anhang.

Virsacer

#4
ZitatBtw. mehrzeilige welinks der Sorte htmlCode funktionieren, gerade getestet, siehe Anhang.
Dass das funktioniert, ist klar...
...aber ich will ja Perl verwenden und das funktioniert nur, wenn alles in einer Zeile steht :-\

ZitatDa gibt es diverse Methoden, wie trigger JS:meineFunktion("Parameter1","usw"), oder im weblink ein Hidden div mit den Parameter anlegen, und im Javascript nach diesem div suchen, oder ein eigenes FHEMWEB-Widget definieren, und mit normalen Events fuettern, usw. usf.
Die Varianten haben doch auch alle das gleiche Problem, oder nicht?

PS: Im Anhang ist nur ein einfaches Beispiel - mein Code hat z.Z. 25 Zeilen...

karl0123

Warum verwendest du denn keine sub in der myUtils? Da kannst du dann so viele Zeilen verwenden, wie du möchtest.

Virsacer

ZitatWarum verwendest du denn keine sub in der myUtils? Da kannst du dann so viele Zeilen verwenden, wie du möchtest.
Stimmt, das wäre ne Möglichkeit :)

Hab mal ein bisschen rumgespielt...
Damit funktionierts:

--- /opt/fhem/FHEM/x98_weblink.pm
+++ /opt/fhem/FHEM/98_weblink.pm
@@ -92,7 +92,7 @@

   my $attr = AttrVal($d, "htmlattr", "");
   if($wltype eq "htmlCode") {
-    $link = AnalyzePerlCommand(undef, $link) if($link =~ m/^{(.*)}$/);
+    $link = AnalyzePerlCommand(undef, $link) if($link =~ m/^{(.*)}$/s);
     $ret = $link;

   } elsif($wltype eq "link") {

rudolfkoenig


Virsacer