Beitrag von Thomas Fedder (333 Beiträge) am Freitag, 27.Mai.2005, 14:56.
convert_br und convert_links verknüpfen
Antworten
Beitrag von Sander (8133 Beiträge) am Freitag, 27.Mai.2005, 14:57.
Re: convert_br und convert_links verknüpfen
Antworten
Beitrag von Thomas Fedder (333 Beiträge) am Freitag, 27.Mai.2005, 15:04.
Re: convert_br und convert_links verknüpfen
Antworten
Beitrag von Sander (8133 Beiträge) am Freitag, 27.Mai.2005, 15:43.
Re: convert_br und convert_links verknüpfen
was funzt nich?
wenn du das so einsetzt wie bei deinem letzen beitrag, geht es.
http://test.netpure.de/?id=37241
<perl>
$dienstleistungen_langbeschreibung="hallo
1
2
3
http://www.test.de
";
$langbeschreibung_veroeffentlichen=1;
if ($langbeschreibung_veroeffentlichen)
{
out convert_br(convert_links($dienstleistungen_langbeschreibung))." ";
out "</div></div>";
}
</perl>
Antworten
Beitrag von Thomas Fedder (333 Beiträge) am Freitag, 27.Mai.2005, 16:52.
Re: convert_br und convert_links verknüpfen
Antworten
Beitrag von Jürgen (614 Beiträge) am Freitag, 27.Mai.2005, 17:20.
Re: convert_br und convert_links verknüpfen
sieht so aus, dass die Daten nicht im Rohformat vorliegen.
Wie holst du denn die Daten ... get oder loop ?
Beim get sollten sie im Rohformat vorliegen, beim loop halt mit mit ($_raw{feldname}) arbeiten.
Antworten
Beitrag von Thomas Fedder (333 Beiträge) am Freitag, 27.Mai.2005, 17:24.
Re: convert_br und convert_links verknüpfen
Hallo,
ich arbeite im perl mit get.
Danke
TF
Antworten
Beitrag von hempelr (1976 Beiträge) am Freitag, 27.Mai.2005, 18:55.
Re: convert_br und convert_links verknüpfen
da hätte ich doch glatt wieder ne Sub für dich ;-)
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#
sub convert_brlinks { ################################################################
$a_debug.= "<b>A sub convert_brlinks(@_)</b><br>";
# Syntax: &convert_brlinks($String1, $String2...$StringN
my @cv_liste = @_; my @cv_back;
foreach $cv_string(@cv_liste){
my $t = convert_links($cv_string);
$t = convert_br($t);
push (@cv_back, $t);
}
$a_debug.= "<b>E sub convert_brlinks</b><br>";
return (@cv_back);
} ################################################################
wobei du dann immer genausoviel Werte in ner Liste zurückbekommst, wie du in der Liste reingibst, also Anwendung so:
($string_a,$string_b) = convert_brlinks($string_a,$string_b);
für dein Beispiel:
out convert_brlinks($dienstleistungen_langbeschreibung)." ";
Ruben
Antworten
Beitrag von Thomas Fedder (333 Beiträge) am Samstag, 28.Mai.2005, 10:42.
Re: convert_br und convert_links verknüpfen
Hi Ruben,
danke für deine Mühe.
Statt des Inhaltes des Feldes wird nur eine 1 ausgegeben.
Bei dem Feld "dienstleistungen_langbeschreibung" handelt es sich um mehrzeiliges Textfeld.
Danke
ciao
TF
Antworten
Beitrag von hempelr (1976 Beiträge) am Samstag, 28.Mai.2005, 16:54.
Re: convert_br und convert_links verknüpfen
Antworten
Beitrag von Thomas Fedder (333 Beiträge) am Samstag, 28.Mai.2005, 20:19.
Re: convert_br und convert_links verknüpfen
Hi,
auch das klappte nicht.
Hier mal ein Auszug aus dem Code:
<perl>
get "Id==$Id","/stadtratingen.de/behoerdenwegweiser/dienstleistungen","dienstleistungen";
get "kuerzel_intern==$kuerzel_intern","aemter";
if ($langbeschreibung_veroeffentlichen)
{
out <<EOF;
<div id="kasten_hellgrau">
<div id="spalte_links_rechts_titel">
<p><b>Details:</b></p>
</div>
<div id="spalte_links_rechts">
EOF
}
# Subroutine zur Behebung des Fehlers bei der Interpretation von convert_links
# bzw. convert_br #
################################################################################################
sub convert_brlinks { ################################################################
$a_debug.= "<b>A sub convert_brlinks(@_)</b><br>";
# Syntax: &convert_brlinks($String1, $String2...$StringN
my @cv_liste = @_; my @cv_back;
foreach $cv_string(@cv_liste){
my $t = convert_links($cv_string);
$t = convert_br($t);
push (@cv_back, $t);
}
$a_debug.= "<b>E sub convert_brlinks</b><br>";
return (@cv_back);
} ################################################################
###################################################################################
# Subroutine zur Behebung des Fehlers bei der Interpretation von convert_links
# bzw. convert_br #
$temp = &convert_brlinks($langebeschreibung);
out "$temp ";
out "</div></div>";
</perl>
Wärst du bereit, direkt in meinen Code zu schauen?
Dann würde ich dir per Mail den Zugang zumailen.
Ach ja: Es handelt sich hierbei um meine Weiterentwicklung des Bisy Bürstadt.
:-)
privat@thomas-fedder.de
Danke
TF
Antworten
Beitrag von Sander (8133 Beiträge) am Samstag, 28.Mai.2005, 22:22.
Re: convert_br und convert_links verknüpfen
ruben: setz mal zum testen ein <br> in den originalfeldinhalt. funzt das dann noch?
Antworten
Beitrag von Thomas Fedder (49 Beiträge) am Samstag, 28.Mai.2005, 22:31.
Re: convert_br und convert_links verknüpfen
Hi Sander,
bisher hat sich Ruben noch nicht gemeldet.
Was meinst du mit "setz mal zum testen ein <br> in den originalfeldinhalt. funzt das dann noch?"
Danke
ciao
TF
Antworten
Beitrag von Sander (8133 Beiträge) am Samstag, 28.Mai.2005, 22:33.
Re: convert_br und convert_links verknüpfen
na zur zeit sieht es so aus, als ob die linkerkennung in convert_links die <br> alle in <br> umbiegt. deswegen soll ruben sein code mal testen.
Antworten
Beitrag von Thomas Fedder (333 Beiträge) am Samstag, 28.Mai.2005, 23:44.
Re: convert_br und convert_links verknüpfen
Hi,
danke.
Eine weitere Info: Mit dem Code von Ruben wird immer eine 1 ausgegeben, auch wenn das Feld keinen Inhalt hat.
ciao
TF
Antworten
Beitrag von hempelr (1976 Beiträge) am Sonntag, 29.Mai.2005, 10:45.
Re: convert_br und convert_links verknüpfen
sory - schönes Wetter - da war gestern Rasen mähen angesagt (nagut, hab zwar mehr Rasenmäher gebaut als gemäht - das durfte mein festes Mädchen machen) und dann mal im Grünen baumeln...und abends ein Grillertz...wird heut nicht viel anders werden, man muss die Tage im Holzäppelgebirge nutzen, wenn sie sommerlich gut sind...;-)
Wie schon gesagt, die Sub ist in meiner Funktionsbibliothek und schon uralt, und ich jag fast jede Ausgabe aus Textarea-Feldern da durch - das seltsame Verhalten mit der 1 als Rückgabewert hab ich bisher noch nicht festgestellt - komisch...
Hab das dann mal getestet mit nem handisch eingegeben <br> und nem link - hier anzusehn: http://bapos.de/exec/baseportal.pl?htx=/solarbruecke/zzz_kurztest
nja, HTML wird in die HTML-Pendants gewandelt (jagut - ist ja eigentlich auch sinnvoll, oder?)
Aber ne 1 kommt nicht...
Kanns sein, dass das an irgendwelchen Unterschieden zwischen Lizenz und Miete oder den Versionsnummern liegt? - wäre ja interessant zu wissen...
Antworten
Beitrag von Thomas Fedder (333 Beiträge) am Sonntag, 29.Mai.2005, 11:52.
Re: convert_br und convert_links verknüpfen
Hi Ruben,
ich hoffe, du hast trotz basteln an dem Rasenmäher den Rasen gemäht bekommen?
Ich bleib bei so einem Wetter nur in meiner Bude, da es in schön kühl ist :-))
Zu BP:
Ich habe die Mietversion, 2 irgendwas.
Es müßte sich um "baseportal Smart 2" handeln.
Hoffe, das hilft.
Falls du bereit bist, in den Account zu schauen, schick mir per Mail deine Adresse.
Heute bin ich aber ab 12.30 weg - wir spielen im Garten einer Bekannten "Siedler von Catan".
ciao
TF
Antworten
Beitrag von Sander (8133 Beiträge) am Sonntag, 29.Mai.2005, 20:00.
Re: convert_br und convert_links verknüpfen
naja, convert_links und convert_html zusammen passt nich immer wie du siehst :-)
Antworten
Beitrag von hempelr (1976 Beiträge) am Montag, 30.Mai.2005, 07:32.
Re: convert_br und convert_links verknüpfen
wie jetzt, das versteh ich nicht ganz...
Ist doch nur convert_br und convert_links zusammen "verkettet", ein convert_html ist nicht drin.
Deshalb ist es schon seltsam, dass html-Zeichen in ihre Pendants gewandelt werden - das sollten sie ja eigentlich nicht tun.
Hab mal alle Varianten auf der Testseite untergebracht, Rohtext, die Ausgabe nach der Sub, die Ausgabe von convert_br, die Ausgabe von convert_links und die Ausgabe von convert_html - interessante Ergebnisse...
http://bapos.de/exec/baseportal.pl?htx=/solarbruecke/zzz_kurztest
Fakt ist, dass convert_links fehlerhaft ist und gleichzeitig html-Zeichen mit konvertiert, das aber nicht soll!
Hier ist ganz klar Christoph gefragt...
Antworten
Beitrag von Sander (8133 Beiträge) am Montag, 30.Mai.2005, 10:28.
Re: convert_br und convert_links verknüpfen
Antworten
Beitrag von richard (1187 Beiträge) am Montag, 30.Mai.2005, 11:55. WWW: posaunenchor-rhoden.de
Re: convert_br und convert_links verknüpfen
----------
Ich habe die DB irgendwann mal exportiert und dann wieder importiert.
Dadurch sind die <br> entstanden.
Ich dachte durch convert_br würden die entfernt.
----------
Ich denke mal, daß das Gegenteil der Fall ist.
Wenn convert_html auch <br> bearbeitet, ist das doch ganz genau das was die Funktion tun soll.
Wenn man convert_br erst nach convert_html ausführt, bekommt man auch keine Schwierigkeiten. Anders "eingeschleppte" <br> kann man vor convert_html über einen regulären Ausdruck in "sichere" Zeichenketten umwandeln (oder ganz entfernen) und dann nach convert_html wieder zurück.
Antworten
Beitrag von hempelr (1976 Beiträge) am Montag, 30.Mai.2005, 13:22.
Re: convert_br und convert_links verknüpfen
axo, ja ist eingentlich überhaupt nicht sinnvoll - die bp-internen convert-Funktionen sollten auch tatsächlich nur das konvertieren was sie aussagen.
Sicher müsste man beim Einsatz dann die Reihenfole beachten (wenn bspw.ers convert_link und dann convert_html gemacht wird, erreichen wir wieder das, was im Moment das convert_link allein macht) aber es würde nicht zu solchen Fehlausgaben kommen.
Komisch, dass das bisher noch niemandem aufgefallen ist...
Wenn Christoph da nicht was schraubt muss sich irgendjemand für nen Workaround erbarmen, in der Art, dass ne RegEx nur die Links wandelt.
Ob das so schon funzt? - ich habs mit dem RegEx Coach "entwickelt" und getestet:
($cv_link = $textareafeld) =~ s/(mailto:|http://){1}([\w-@.]*)/<a href="$1$2">/ig
Antworten
Beitrag von hempelr (1976 Beiträge) am Montag, 30.Mai.2005, 13:26.
da fehlte ne Hälfte war Re: convert_br und convert_links verknüpfen
Der Ausdruck war ja nur halb, sorry, zu schnell abgeschickt :|
($cv_link = $textareafeld) =~ s#(mailto:|http://){1}([\w-@.]*)#<a href="$1$2">$2</a>#ig
Antworten
Beitrag von hempelr (1976 Beiträge) am Montag, 30.Mai.2005, 13:29.
Nur halber Ausdruck - war Re: convert_br und convert_links verknüpfen
war ja nur der halbe Ersetzungsausdruck, sorry, irrtümlicherweise schon abgeschickt...
Vielleicht so:
($cv_link = $textareafeld) =~ s/(mailto:|http:\/\/){1}([\w-@.]*)/<a href="$1$2">$2<\/a>/ig
Antworten
Beitrag von Thomas Fedder (333 Beiträge) am Montag, 30.Mai.2005, 14:19.
Re: Nur halber Ausdruck - war Re: convert_br und convert_links verknüpfen
Hi,
sorry, aber ich jetzt verwirrt.
Könntest du wohl nochmal den ganzen Code der Subroutine posten?
bzw.: Wo muss der Ersetzungsausdruck hin?
Danke
TF
Antworten
Beitrag von Thomas Fedder (333 Beiträge) am Freitag, 27.Mai.2005, 17:22.
Re: convert_br und convert_links verknüpfen - Nachtrag
Nachtrag:
Wenn ich nur convert_br oder convert_links anwende, wird das gewünschte Ergebnis erzielt.
Beide auf einmal funktionieren jedoch nicht.
Danke
Antworten
Beitrag von Sander (8133 Beiträge) am Freitag, 27.Mai.2005, 22:28.
Re: convert_br und convert_links verknüpfen - Nachtrag
stimmt, es scheint ein fehler in convert_links() zu sein.
ein fall für CB :)
Antworten
Beitrag von Christoph Bergmann (8110 Beiträge) am Montag, 30.Mai.2005, 13:32.
Re: convert_br und convert_links verknüpfen - Nachtrag
Antworten
Beitrag von Thomas Fedder (333 Beiträge) am Montag, 30.Mai.2005, 14:40.
Re: convert_br und convert_links verknüpfen - Nachtrag
Hi,
danke für die Erläuterung, aber wie soll ich das ganze nun schreiben?
Zur Erinnerung:
Es Textarea Feld soll ausgegeben werden, html Befehle sollen als solche interpretiert werden und evtl. vorhandene <br>s sollen als Zeilenumbruch interpretiert werden.
Hier die Ausgabe:
http://www.stadtratingen.de/baseportal/behoerdenwegweiser/detailseite_dienstleistungen_alle&Id=15
Vor der Ausgabe steht noch:
$dienstleistungen_langbeschreibung = $langbeschreibung;
1) Wenn ich das Feld direkt ausgebe:
out "$dienstleistungen_langbeschreibung";
wird alles korrekt interpretiert, nur der Link wird nicht als solcher erkannt.
2) wenn ich die obige perl Ausgabe
# $dienstleistungen_langbeschreibung = $langbeschreibung;
und die Ausgabe so gestalte
out "$langbeschreibung";
wird alles korrekt interpretiert, nur der Link wird nicht als solcher erkannt.
3) wenn ich die obigen perl Ausgabe
$dienstleistungen_langbeschreibung = $langbeschreibung;
und die Ausgabe so gestalte
out "$langbeschreibung";
wird alles korrekt interpretiert, nur der Link wird nicht als solcher erkannt.
4) wenn ich nun wie von Christoph vorgeschlagen
$dienstleistungen_langbeschreibung=~ s/<br>/\n/gi;
out convert_links(convert_html($dienstleistungen_langbeschreibung))." ";
schreibe, wird der Link zwar erkannt, aber weder die html Befehle noch die <br>s erkannt
Was muss ich tun, damit die Ausgabe genauso erfolgt, wie oben beschrieben?
?????
Danke
TF
Antworten
Beitrag von hempelr (1976 Beiträge) am Montag, 30.Mai.2005, 14:54.
Re: convert_br und convert_links verknüpfen - Nachtrag
Antworten
Beitrag von Thomas Fedder (333 Beiträge) am Montag, 30.Mai.2005, 15:12.
Re: convert_br und convert_links verknüpfen - Nachtrag
Antworten
Beitrag von hempelr (1976 Beiträge) am Montag, 30.Mai.2005, 15:12.
Zeichen verschluckt - so ist die RegEx / auch getestet...
Antworten
Beitrag von hempelr (1976 Beiträge) am Montag, 30.Mai.2005, 15:15.
Re: Zeichen verschluckt - so ist die RegEx / auch getestet...
weider zu zeitig abgesendet - Interpunktion war falsch - so richtig(er):
($dienstleistungen_langbeschreibung = $langbeschreibung) =~ s/(\smailto:|http:\/\/){1}([\w-@.]*\s)/<a href="$1$2">$2<\/a>/ig;
Antworten
Beitrag von Thomas Fedder (49 Beiträge) am Montag, 30.Mai.2005, 15:19.
Re: Zeichen verschluckt - so ist die RegEx / auch getestet...
Hi,
nichts hat sich geändert:
Text wird ohne Link ausgegeben.
Wäre es nicht einfacher, wenn ich dir den Zugang maile?
Danke
TF
Antworten
Beitrag von Christoph Bergmann (8110 Beiträge) am Montag, 30.Mai.2005, 15:42.
Re: convert_br und convert_links verknüpfen - Nachtrag
Antworten
Beitrag von Thomas Fedder (333 Beiträge) am Montag, 30.Mai.2005, 15:51.
Re: convert_br und convert_links verknüpfen - Nachtrag
Hi,
das war es fast.
Jetzt werden nur Formatierunen wie <b></b> noch nicht interpretiert.
:-)
Antworten
Beitrag von Christoph Bergmann (8110 Beiträge) am Montag, 30.Mai.2005, 17:08.
Re: convert_br und convert_links verknüpfen - Nachtrag
Antworten
Beitrag von Thomas Fedder (333 Beiträge) am Montag, 30.Mai.2005, 17:13.
Re: convert_br ... DANKE
Hi,
genau das wars.
Jetzt klappt es genau so, wie ich es mir dachte.
DANKE vielmals
ciao
TF
Antworten
Beitrag von hempelr (1976 Beiträge) am Montag, 30.Mai.2005, 17:46.
Re: convert_br und convert_links verknüpfen - Nachtrag
Antworten
Beitrag von Christoph Bergmann (8110 Beiträge) am Montag, 30.Mai.2005, 18:26.
Re: convert_br und convert_links verknüpfen - Nachtrag
Mhh, kannst Du den Teil der regex:
([\w-@.]*)
nich auf
(.*)
kürzen, weil: . bedeutet nunmal sowieso jedes Zeichen ;-) Und schiesst Du damit dann nich übers Ziel hinaus, z.b. indem Du Leerzeichen aufnimmst?
Und: Bei meinen Tests erkennt er keine Links ;-)
http://test.netpure.de/?id=38064
Antworten
Beitrag von hempelr (1976 Beiträge) am Montag, 30.Mai.2005, 21:16.
Re: convert_br und convert_links verknüpfen - Nachtrag
Antworten
Beitrag von Friesecke (245 Beiträge) am Montag, 30.Mai.2005, 15:42.
Re: convert_br und convert_links verknüpfen
Hallo Herr Fedder,
sehe gerade, daß Du Dich schon drei Tage mit dem Problem rumschlägst.
Wenn Dein textarea - Feld Text heißt, so mach einfach die Ausgabe
Wenn die Ausgabe nicht so ist, wie Du sie haben willst, dann korrigier den Feldinhalt. Bei alten (vorhandenen) Sätzen mit ner Routine, bei Neueingaben per Formular unmittelbar beim Abspeichern.
Ziel muß sein, daß die Ausgabe ruckzuck-problemlos ist. Bei jeder Abfrage alle Datensätze konvertieren, ist eh fürn Eimer.
Also : willst Du die br's drin haben ? Dann fehlt nur noch der Link.
Dann mußt Du vor www.test.de auch kompletten HTML-code schreiben (a href=)
Willst Du die br's weg haben, dann schreib ne kleine Routine, die Du einmal aufrufst und die die br's ersetzt.
Willst Du Anwender Daten eingeben lassen, die keinen HTML-Code können und einfach ihren Link so runterschreiben, dann prüf die Eingabe mit perl ab und ersetze www. durch http://www. und http://www. durch a href=
Also : geh den Weg anders rum. Ausgabe einfach - Eingabe mit Korrekturfunktion, anders : sorg dafür, daß der Datenbankinhalt richtig ist (so wie Du ihn brauchst), aber reparier nicht bei der Ausgabe.
Gruß
Friesecke
Antworten