Re: Ersetzen von Variablen in TextArea - 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 Marco (840 Beiträge) am Freitag, 7.April.2006, 12:19.
    Re: Ersetzen von Variablen in TextArea

      Hallo Oliver,


      ja, das kommt meinem Anliegen schon näher ;-)

      Das Vorgehen hat aber den Nachteil, dass ich für jede Variable, die ich im TextArea verwende diese Substitution machen muss (es wird vermutlich nicht nur bei der URL bleiben) :-(

      Ich setze in einem zentralen config-Template eine Vielzahl von Standardvariablen, für für meine gesamte Seite Gültigkeit haben.

      Ich meine, auch hier im Forum vor langer, langer Zeit mal etwas mit "eval()" gelesen zu haben, ich habe über die Suche nur den betreffenden Artikel nicht gefunden.


      Marco


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Marco (840 Beiträge) am Freitag, 7.April.2006, 09:25.
    Ersetzen von Variablen in TextArea

      Hallo,


      ich habe eine DB mit einem TextArea-Feld.

      In dieses Feld möchte ich gerne Variablen einbauen, die ich in der aufrufenden Seite gesetzt habe.

      Beispiel:

      In meinem Datensatz im Feld "TextAreaFeld" steht:
      "Der Link zu der Seite ist $baseurl/link&param=3"

      In meinem Template steht ganz zu Beginn:

      $baseurl = "http://www.meinedomain.de/baseportal";
      get ...
      out "$TextAreaFeld";
      

      Die erhoffte Ausgabe ist
      "Der Link zu der Seite ist http://www.meinedomain.de/baseportal/link¶m=3", und die tatsächlich lautet:
      "Der Link zu der Seite ist $baseurl/link&param=3"

      Wie kann ich das TextArea ausgeben und gleichzeitig enthaltene Variablen dabei auflösen? Gibt es da nicht Möglichkeiten mit dem Befehl "eval"?

      Marco

     Antworten

    Beitrag von richard (1187 Beiträge) am Freitag, 7.April.2006, 10:14.
    Re: Ersetzen von Variablen in TextArea

      Ich würde das anders machen. Schlage vor, daß Du in Deinem Datenbankfeld nur den spezifischen Teil des Links einträgst, also

       link&param=3
      

      Den Rest erledigst Du im Template,

       $baseurl = "Der Link zu der Seite ist http://www.meinedomain.de/baseportal/";
       get ...
       out "$baseurl$TextAreaFeld";
      

     Antworten

    Beitrag von Marco (840 Beiträge) am Freitag, 7.April.2006, 11:31.
    Re: Ersetzen von Variablen in TextArea

      Hallo Richard,


      mein Beispiel war stark vereinfacht.

      Das TextArea-Feld enthält bei jedem Datensatz naturgemäß verschiedenste Inhalte. U.a. können auch Links in diesem Feld auftauchen.

      Um bei einem Umzug meines BP-Paketes auf eine andere Domain auf der sicheren Seite zu sein, möchte ich aber Links nirgendwo hart eintragen.

      Deshalb trägt der Workaround leider nicht.

      Trotzdem, danke für die Antwort.


      Marco

     Antworten

    Beitrag von Oliver ;-) (500 Beiträge) am Freitag, 7.April.2006, 11:44.
    Re: Ersetzen von Variablen in TextArea

      Hallo Marco,

      versuche es so:
      Im Feld "TextAreaFeld" sollte stehen:

      "Der Link zu der Seite ist [BASEURL]"
      ------Ausschnitt aus Template-----
      $baseurl = "http://www.meinedomain.de/baseportal";
      get ...
      $TextAreaFeld=~s/\[BASEURL\]/$baseurl/gi; #Variable $baseurl füllen
      out convert_br($TextAreaFeld);  # ist vielleicht schöner... ;-)
      
      ------Ende Ausschnitt aus Template----

      Grüße
      Oliver ;-)

     Antworten

    Beitrag von Marco (840 Beiträge) am Freitag, 7.April.2006, 12:19.
    Re: Ersetzen von Variablen in TextArea

      Hallo Oliver,


      ja, das kommt meinem Anliegen schon näher ;-)

      Das Vorgehen hat aber den Nachteil, dass ich für jede Variable, die ich im TextArea verwende diese Substitution machen muss (es wird vermutlich nicht nur bei der URL bleiben) :-(

      Ich setze in einem zentralen config-Template eine Vielzahl von Standardvariablen, für für meine gesamte Seite Gültigkeit haben.

      Ich meine, auch hier im Forum vor langer, langer Zeit mal etwas mit "eval()" gelesen zu haben, ich habe über die Suche nur den betreffenden Artikel nicht gefunden.


      Marco

     Antworten

    Beitrag von Marco (840 Beiträge) am Freitag, 7.April.2006, 12:37.
    Re: Ersetzen von Variablen in TextArea!!! Ich hab´s...

      Nach ein wenig spielen und herumprobieren habe ich folgende Lösung gefunden.
      Ich interpretiere den Inhalt meines TextAreas einfach als Perl-Code, den ich mit eval() einfach nochmal kompiliere.

      Ich hänge einfach eine Klammer mit out <<EOF; und EOF darum, damit mir wegen vorhandener Anführungszeichen nichst um die Ohren fliegt, und schon haut es hin:

      $TextArea="out <<EOF;\n".$TextArea."\nEOF";
      eval ($TextArea);
      

      Dies nur als Lösungsansatz für diejenigen, die sich mit ähnlichen Probleme plagen ;-)


      Marco

     Antworten

    Beitrag von Oliver ;-) (439 Beiträge) am Freitag, 7.April.2006, 13:30.
    Re: Ersetzen von Variablen in TextArea!!! Ich hab´s...

      Hallo Marco,

      der Lösungsansatz ist klasse. Kannst du denn die Inhalte von TextArea auch noch weiter verarbeiten? Ich denke da z.B. an Änderungen der Farbe einzelner Buchstaben.
      Oder wie sieht es mit dem Einsatz von "convert_br" aus?

      Grüße
      Oliver ;-)

     Antworten

    Beitrag von Marco (840 Beiträge) am Samstag, 8.April.2006, 18:47.
    Re: Ersetzen von Variablen in TextArea!!! Ich hab's...

      Hallo Oliver,

      auf jeden Fall kann ich im TextArea beliebigen Perl-Code ausführen... also auch DB-Abfragen mit "get"... und das eröffnet Möglichkeiten.

      convert_br habe ich nicht ausprobiert.


      Marco

     Antworten


     
 Liste der Einträge von 19051 bis 19201: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.05s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!