Ankündigung

Einklappen
Keine Ankündigung bisher.

Linkausgabe verändern

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Linkausgabe verändern

    Hallo!
    Ich verwende ein freies Gästebuchskript.
    Unter anderem sind dort auch Buttons für Fettschrift und Links etc eingefügt.
    Da würde ich gerne eine kleine Veränderung vornehmen.

    Ursprünglich gab es nur einen Button "html://", der folgendes generierte:
    (url)(/url)

    Ich hätte aber gerne einen weiteren Button, namens "Link", der folgendes generiert:
    (url=http://)Linktext(/url)

    Die Zeile, die den Linkbutton "html:// generiert habe ich gefunden:
    <input class="button" style="text-decoration: underline;" type="button" name="bbcode-button" value="html://" onclick="bbcode('url');" />

    Diese habe ich dann dupliziert und den Button "Link" benannt.
    <input class="button" style="text-decoration: underline;" type="button" name="bbcode-button" value="html://" onclick="bbcode('url');" />

    Nun habe ich also schonmal zwei Buttons, die bisher aber noch das gleiche ausgeben.

    Was muß verändert werden, damit beim Klick auf den "Link"-Button nicht:
    (url)(/url)
    sondern:
    (url=http://)Linktext(/url)
    ausgegeben wird?
    (Eckige Klammern habe ich hier durch runde Klammern ersetzt)

    Ob aber eine Änderung in dieser Zeile reicht, weiß ich nicht.
    Hier das Skript, welches ich verwende:
    Gästebuch.zip

    Oder ist es sinvoller, den Inhalt der php-Datei hier zu posten (bin mit den gepflogenheiten hier im Forum noch nicht so vertraut).?

    Gruß,
    Thomas

  • #2
    Hi das liegt daran das der Link nur die Javascript Funktion die die Zeichen einträgt aufruft.
    Du müsstest jetzt das bei Javascript auch multiplizieren und das eingeben und dann beim php BBCODE auch
    Such mal zuerst den Javascript Teil!


    Grüsse Simon
    Der G-Translator

    Kommentar


    • #3
      Ah, danke für die schnelle Antwort!
      Also, es ist eine .js-Datei enthalten, mit folgendem Inhalt:

      <!--
      function bbcode(v)
      {
      if (document.selection) // für IE
      {
      var str = document.selection.createRange().text;
      document.forms['form_name'].elements['textarea_name'].focus();
      var sel = document.selection.createRange();
      sel.text = "[" + v + "]" + str + "[/" + v + "]";
      return;
      }
      else if ((typeof document.forms['form_name'].elements['textarea_name'].selectionStart) != 'undefined') // für Mozilla
      {
      var txtarea = document.forms['form_name'].elements['textarea_name'];
      var selLength = txtarea.textLength;
      var selStart = txtarea.selectionStart;
      var selEnd = txtarea.selectionEnd;
      //if (selEnd == 1 || selEnd == 2)
      //selEnd = selLength;
      var s1 = (txtarea.value).substring(0,selStart);
      var s2 = (txtarea.value).substring(selStart, selEnd)
      var s3 = (txtarea.value).substring(selEnd, selLength);
      txtarea.value = s1 + '[' + v + ']' + s2 + '[/' + v + ']' + s3;
      txtarea.selectionStart = s1.length;
      txtarea.selectionEnd = s1.length + 5 + s2.length + v.length * 2;
      return;
      }
      else insert('[' + v + '][/' + v + '] ');
      }

      function insert(what)
      {
      if (document.forms['form_name'].elements['textarea_name'].createTextRange)
      {
      document.forms['form_name'].elements['textarea_name'].focus();
      document.selection.createRange().duplicate().text = what;
      }
      else if ((typeof document.forms['form_name'].elements['textarea_name'].selectionStart) != 'undefined') // für Mozilla
      {
      var tarea = document.forms['form_name'].elements['textarea_name'];
      var selEnd = tarea.selectionEnd;
      var txtLen = tarea.value.length;
      var txtbefore = tarea.value.substring(0,selEnd);
      var txtafter = tarea.value.substring(selEnd, txtLen);
      tarea.value = txtbefore + what + txtafter;
      tarea.selectionStart = txtbefore.length + what.length;
      tarea.selectionEnd = txtbefore.length + what.length;
      }
      else
      {
      document.forms['form_name'].elements['textarea_name'].value += what;
      }
      }
      //-->


      Ist das bereits das Gesuchte? Die Bezeichnung "php-Anfänger" wäre in meinem Fall leider bereits übertrieben. Ich hoffe Ihr habt trotzdem Bock mir etwas weiterzuhelfen.

      OK, nun weiter im Text. Stichwort BBCODE.
      Auch da bin ich fündig geworden. Ob es die richtige Stelle ist, weiß ich nur nicht.
      Das sieht so aus:

      // Funktion, um BB-Code zu formatieren:
      function bbcode($string)
      {
      // hier kannst du das ganze noch erweitern..... ( das musst du natürlich ab zeile 514 auch noch tun ...)

      $string = str_replace("", "<img src=\"img/smile/sm_01.gif\" alt=\"\" width=\"15\" height=\"15\" />", $string);
      $string = str_replace("", "<img src=\"img/smile/sm_02.gif\" alt=\"\" width=\"15\" height=\"15\" />", $string);
      $string = str_replace("", "<img src=\"img/smile/sm_03.gif\" alt=\"\" width=\"15\" height=\"15\" />", $string);
      $string = str_replace("", "<img src=\"img/smile/sm_04.gif\" alt=\"\" width=\"15\" height=\"15\" />", $string);
      $string = str_replace("", "<img src=\"img/smile/sm_05.gif\" alt=\"\" width=\"15\" height=\"15\" />", $string);
      $string = str_replace(":-:", "<img src=\"img/smile/sm_06.gif\" alt=\":-:\" width=\"15\" height=\"15\" />", $string);
      $string = str_replace(";-(", "<img src=\"img/smile/sm_07.gif\" alt=\";-(\" width=\"15\" height=\"15\" />", $string);
      $string = str_replace(":-;", "<img src=\"img/smile/sm_08.gif\" alt=\":-;\" width=\"15\" height=\"15\" />", $string);

      //


      $string = preg_replace("#\[b\](.+?)\[/b\]#is", "\\1", $string);
      $string = preg_replace("#\[i\](.+?)\[/i\]#is", "\\1", $string);
      $string = preg_replace("#\[u\](.+?)\[/u\]#is", "<u>\\1</u>", $string);
      $string = preg_replace("#\[link\]www\.(.+?)\[/link\]#is", "<a href=\"http://www.\\1\" target=_blank>www.\\1</a>", $string);
      $string = preg_replace("#\[link\](.+?)\[/link\]#is", "<a href=\"\\1\">\\1</a>", $string);
      $string = preg_replace("#\[link=(.+?)\](.+?)\[/link\]#is", "<a href=\"\\1\">\\2</a>", $string);
      $string = preg_replace("#\[url\]www\.(.+?)\[/url\]#is", "<a href=\"http://www.\\1\" target=_blank>www.\\1</a>", $string);
      $string = preg_replace("#\[url\](.+?)\[/url\]#is", "<a href=\"\\1\" target=_blank>\\1</a>", $string);
      $string = preg_replace("#\[url=(.+?)\](.+?)\[/url\]#is", "<a href=\"\\1\">\\2</a>", $string);
      return $string;
      }

      // Funktion, um Links anklickbar zu machen:
      function make_link($string)
      {
      $string = ' ' . $string;
      $string = preg_replace("#(^|[\n ])([\w]+?://.*?[^ \"\n\r\t<]*)#is", "\\1<a href=\"\\2\" target=_blank>\\2</a>", $string);
      $string = preg_replace("#(^|[\n ])((www|ftp)\.[\w\-]+\.[\w\-.\~]+(?:/[^ \"\t\n\r<]*)?)#is", "\\1<a href=\"http://\\2\" target=_blank>\\2</a>", $string);
      $string = preg_replace("#(^|[\n ])([a-z0-9&\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#i", "\\1<a href=\"mailto:\\2@\\3\">\\2@\\3</a>", $string);
      $string = substr($string, 1);
      return $string;
      }


      Inwieweit muss ich nun da Veränderungen vornehmen, um das gewünschte Ergebnis zu erhalten?

      Gruß,
      Thomas

      Kommentar


      • #4
        Hi,
        wie schaut's? Hat noch jemand eine Idee, wie das umzusetzen ist?

        Gruß,
        Thomas

        Kommentar


        • #5
          dein link müsste so aussehen:
          <input class="button" style="text-decoration: underline;" type="button" name="bbcode-button" value="html://" onclick="bbcode('url=http://');" />

          allerdings sollte dann das erscheinen [url=http://][/url=http://]

          Kommentar


          • #6
            Mit dem Javascript kann es nicht so ohne weiteres funktionieren, nur wenn Du dadrin rumschreibst und es anpasst. Aber selbst wenn du das gemacht hast, musst du noch in der Funktion oder Datei, wie auch immer, die diesen Code verarbeitet, die nötigen Änderungen vornehmen, dass (url=http://)Link(/url) auch als Link erkannt und entsprechend umgewandelt wird.

            Kommentar


            • #7
              Hi Calexio,
              danke für Deine Antwort.
              Wenn ich es so mache, wie Du es vorgeschlagen hast, gibt der Button dieses aus:
              (url=http://)(/url=http://)

              Das ist wohl etwas zuviel des Guten
              Hast Du noch eine Idee?

              Gruß,
              Thomas

              Kommentar


              • #8
                Zitat von mihaeeel
                Mit dem Javascript kann es nicht so ohne weiteres funktionieren, nur wenn Du dadrin rumschreibst und es anpasst. Aber selbst wenn du das gemacht hast, musst du noch in der Funktion oder Datei, wie auch immer, die diesen Code verarbeitet, die nötigen Änderungen vornehmen, dass (url=http://)Link(/url) auch als Link erkannt und entsprechend umgewandelt wird.

                Kommentar


                • #9
                  Äh ja, dass ich irgendwo irgendwas verändern muss war mir eigentlich von vornherein klar.
                  Leider weiß ich aber eben nicht, was ich verändern muss.
                  Ich hoffe eigentlich, dass mir jemand konkretes dazu sagen kann, mit Rücksicht darauf, dass php normalerweise "nicht mein Fach" ist.

                  Gruß,
                  Thomas

                  Kommentar


                  • #10
                    Hi!
                    Gibt es hier noch jemanden, der mir konkret bei meinem Problem weiterhelfen kann?

                    Gruß,
                    Thomas

                    Kommentar

                    Lädt...
                    X