Re: convert_br und convert_links verknüpfen - baseportal Forum - Web-Anwendungen einfach, schnell, leistungsfähig!
baseportal
English - Deutsch "Es gibt keine dummen Fragen - jeder hat einmal angefangen"

 baseportal-ForumDie aktuellsten 10, 30, 50, 100 Einträge anzeigen.  

 
 Ausgewählter Eintrag: Zur Liste 
    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

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Thomas Fedder (333 Beiträge) am Freitag, 27.Mai.2005, 14:56.
    convert_br und convert_links verknüpfen

      Hallo,

      ich möcht ein Feld mittels convert_links ausgeben:
      out convert_links($dienstleistungen_langbeschreibung)." ";
      

      Das klappt auch.
      Wie aber wende ich zusätzlich convert_br an?

      Danke

      ciao

      TF

     Antworten

    Beitrag von Sander (8133 Beiträge) am Freitag, 27.Mai.2005, 14:57.
    Re: convert_br und convert_links verknüpfen

      out convert_links(convert_br($dienstleistungen_langbeschreibung))." ";
      

     Antworten

    Beitrag von Thomas Fedder (333 Beiträge) am Freitag, 27.Mai.2005, 15:04.
    Re: convert_br und convert_links verknüpfen

      Hi,

      danke schonmal.
      Funzt leider nicht.

      Ich sollte vielleicht erwähnen, das das ganze in einer IF Abfrage steckt:
      :-)


      if ($langbeschreibung_veroeffentlichen)
      {
      out convert_br(convert_links($dienstleistungen_langbeschreibung))." ";
      out "</div></div>";
      }
      

     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

      mhm - komisch, habs grad nochmal explizit getestet, so wie beschrieben und gepostet läuft es (hätte mich echt auch gewundert, ist in meiner Funktions-Bibliothek schon seit ewigen Zeiten drin und wird produktiv eingesetzt)
      Versuchs mal über ne Zwischenvariable:
      $temp = &convert_brlinks($dienstleistungen_langebeschreibung);
      out "$temp ";
      
      Ruben

     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 &lt;br&gt; 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

      >> wie jetzt, das versteh ich nicht ganz...
      

      du schreibst:
      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?)

      meine antwort: ne is nich immer sinnvoll wie man sieht.

     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

      @Thomas, Du schreibst:
      

      ----------
      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

      Kein Bug, sondern ein Feature ;-)

      Allerdings unkommentiert, werd ich gleich mal ändern. convert_links konvertiert auch HTML-Zeichen. Grund ist der: Links (gerade dynamische baseportal-Links) enthalten < > und &-Zeichen die man natürlich nicht als &lt; &gt; und &amp; escaped haben will. Will man nun bei einer Ausgabe aber nun Links und HTML escaped haben (we z.b. hier im Forum), dann geht das nur kombiniert und nicht einzeln hintereinander (würde egal in welcher Reihenfolge zu Problemen führen).

      Das Problem hier ist, dass <br> im Text drin sind, die eigentlich \n sein sollten. Ich würde in dem Fall der Einfachheit halber ein:

      $dienstleistungen_langbeschreibung=~ s/<br>/\n/gi;
      

      vor das convert_links setzen.

     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

      probiers einfach mal so:

      ($dienstleistungen_langbeschreibung = $langbeschreibung) = s/(mailto:|http:\/\/){1}([\w-@.]*)/<a href="$1$2">$2<\/a>/ig;
      .....
      out "$dienstleistungen_langbeschreibung";
      

      Damit bleibt dir der Wert von "$langbeschreibung" erhalten und in $dienstleistung_langbeschreibung ist der Wert mit den gewandelten Links
      s.a. nochmal hier:
      http://bapos.de/exec/baseportal.pl?htx=/solarbruecke/zzz_kurztest
      Hoffe, dass es das war, was dir weiterhilft...
      Ruben

     Antworten

    Beitrag von Thomas Fedder (333 Beiträge) am Montag, 30.Mai.2005, 15:12.
    Re: convert_br und convert_links verknüpfen - Nachtrag

      Hi,

      leider nicht.

      Wenn ich

      ($dienstleistungen_langbeschreibung = $langbeschreibung) = s/(mailto:|http:\/\/){1}([\w-@.]*)/<a href="$1$2">$2<\/a>/ig;
      out "$dienstleistungen_langbeschreibung";
      

      schreibe, wird nichts ausgegeben.



      Wenn ich

      ($dienstleistungen_langbeschreibung = $langbeschreibung) = s/(mailto:|http:\/\/){1}([\w-@.]*)/<a href="$1$2">$2<\/a>/ig;
      out "$langbeschreibung";
      

      schreibe, wird der Link nicht erkannt.

      Wo ist das Problem?

      TF

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Montag, 30.Mai.2005, 15:12.
    Zeichen verschluckt - so ist die RegEx / auch getestet...

      so, da hat er doch glatt auch bereits bestehende Links mit gewandelt, ich hoffe, dass das jetzt alles erfasst:
      ($dienstleistungen_langbeschreibung =~ $langbeschreibung) = s/(\smailto:|http:\/\/){1}([\w-@.]*\s)/<a href="$1$2">$2<\/a>/ig;
      out "$dienstleistungen_langbeschreibung";
      

     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

      Ich würde vorschlagen:

      $dienstleistungen_langbeschreibung=~ s/<br>/\n/gi;
      out convert_br(convert_links($dienstleistungen_langbeschreibung))." ";
      

      ;-)

     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

      Mühsam nährt sich das Eichhörnchen...

      Also Du willst einfach nur URLs als Links ausgeben? Und \n in <br>... Aber HTML-Code soll bleiben... Richtig? Dann so:

      $dienstleistungen_langbeschreibung=~ s#(https?://[^"'\s()]+)#<a href="$1">$1</a>#gis;
      out convert_br($dienstleistungen_langbeschreibung)." ";
      

      ;-)

     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

      naja, das ist ja auch der Knackpunkt, du willst die HTML-Tags erhalten und nur "nackte" Links, die als http://www.irgendwas.de im Fließtext stehen, las Links wandeln. Und das geht eben mit convert_links nicht!
      Ich hab die RegEx nochmal überarbeitet, sie sieht zwar unterdessen total wild aus und hat 4 Puffer, aber das dürfte die Ausgabe nicht jucken, und von der Geschwindigkeit her ist es eh kein Problem bei einem Datensatz.
      Der Ansatz mit dem Wandeln der Eingaben ist eher nicht so gut, dadurch würde man ja die gesamten Vorteile von Baseportal verlieren.
      Hier nun mal der RegEx-Ausdruck - ich habs mal so gemacht, dass man die gewandelten Links in eckigen Klammern sieht, wenn das nicht sein soll, einfach die Klammern im Ersetzungsteil rausnehmen.
      Vom Gebrauch her ist der Textarea-Inhalt erst mal durch die RegEx zu jagen und dann mit convert_br zu bearbeiten, damit erhältst du dann hoffentlich das, was du willst.
      Es funktionieren aller Arten http-Links und mailto-Links, eine Einschränkung besteht, indem zwei aufeinanderfolgende Links, wobei einer am Ende einer Zeile steht und der nächste am Anfang einer neuen Zeile der auf der neuen Zeile nicht gewandelt wird und im Fließtext befindliche zwei unmittelbar aufeinanderfolgende Links mit zwei Leerzeichen getrennt werden müssen; aber ich denke, dieser Fall tritt eher sehr selten ein.
      Hier nun mal der Ausdruck:
      ($cv_textareainhalt = $textareainhalt) =~ s/(\s)(mailto:|http:\/\/)([\w-@.]*)([\n\s])/ <a href="$2$3">[ $3 ]<\/a>$4/ig;

      Dann $cv_textareainhalt vor der Ausgabe noch durch das convert_br jagen.
      out convert_br($cv_textareainhalt);
      
      Hier ist der Link zu einem Testtext mit ein paar möglichen Varianten:
      http://bapos.de/exec/baseportal.pl?htx=/solarbruecke/zzz_kurztest

     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

      mhm - das ist einfach wild mit den RegExes ;-)
      Nachdem ich dein Posting gelesen hatte hab ich noch bissel getestet und bin zunächst zu folgender Lösung gekommen
      s/(\s*)(mailto:|https?:\/\/)([\w-@.]*)([\n\s]+)/$1<a href="$2$3">$3<\/a>$4/ig;
      Nach weiteren Tests dann diese:
      s/(\s*)(mailto:|https?:\/\/)([\w-@\.\/]+)([\n\s]+)/$1<a href="$2$3">$3<\/a>$4/ig;

      Hab mir folgendes dabei gedacht (und auf der Testseite funzts ja auch):
      Finde:
      ( Beginn Puffer1
      \s* WhiteSpace(Leerzeichen)optional
      ) Ende Puffer2
      (Beginn Puffer2
      mailto:|https?:\/\/ Zeichenfolge mailto: oder http evtl. s und // (also https:// oder http://, das mit dem s? hab ich mir noch bei dir abgeguckt ;-)
      ) Ende Puffer2
      ( Beginn Puffer3
      [ Beginn der Zeichenliste
      \w Wortzeichen, also alle Buchstaben und Ziffern und den Unterstrich
      oder
      - den Bindestrich(Minus-Zeichen)
      oder
      @ das at für die Mailaddy
      
      oder
      \. Punkt
      \/ Slash
      ] Ende der Zeichenliste
      + mindestens 1mal eins dieser Zeichen (ist nicht ganz sauber, was besseres ist mir nicht eingefallen)

      ) Ende Puffer3
      ( Beginn Puffer4
      [ Beginn Zeichenliste
      \n entweder New-Line (bei Link am Ende einer Zeile) [komischerweise hat ein \s das nicht mit erschlagen]
      \s oder WhiteSpace
      ] Ende Zeichenliste
      ) Ende Puffer4
      ersetze durch
      <a href="(Puffer1|http(s):// oder mailto:|)(Puffer2|die URL bis zum Leerzeichen|)"(Puffer2|als Linkname|</a>(Puffer4|NewLine oder Whitespace|)
      

      So ein paar Fälle hab ich dann mal in ner DB zum abtesten reingeschrieben - das Feld mit get geholt und dann entsprechend gewandelt - das sieht eigentlich ganz gut aus...
      Na, dass der Ausdruck in der Sandbox, den du eingegeben hast nicht funzt, ist gewollt, es fehlt ja mindestens ein Punkt...mhm stimmt, da fehlt noch der Slash, den es mit erkennen muss...kann ja auch in ner URL stehen
      Ja klar - offenbar zu korrigieren wäre der Punkt maskiert und den Slash auch noch maskiert rein...
      Nach Korrektur siehts gut aus - s.a. unter http://bapos.de/exec/baseportal.pl?htx=/solarbruecke/zzz_kurztest

      Stimmt schon - nur per Trial-and-Error hab ich mich da rangetastet, und offenbar hat der RegExCoach da ein paar Macken - der Punkt bspw. musste nicht maskiert werden - aber wie soll mans anders lernen?

     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

      out "$text";
      

      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


     
 Liste der Einträge von 24151 bis 24301:Einklappen Zur Eingabe 
Neueste Einträge << 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | Neuere Einträge < Zur Eingabe  > Ältere Einträge | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >> Älteste Einträge


Zurück zur Homepage

© baseportal.de. Alle Rechte vorbehalten. Nutzungsbedingungen



powered in 0.07s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!