php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2004

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 27.10.2004, 14:51  
Gast
 
Beiträge: n/a
Standard 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
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 27.10.2004, 14:56  
Erfahrener Benutzer
 
Registriert seit: 16.05.2004
Beiträge: 369
Simon9990
Standard

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
Simon9990 ist offline  
Alt 27.10.2004, 15:10  
Gast
 
Beiträge: n/a
Standard

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(":-P", "<img src=\"img/smile/sm_03.gif\" alt=\":-P\" width=\"15\" height=\"15\" />", $string);
$string = str_replace(":-D", "<img src=\"img/smile/sm_04.gif\" alt=\":-D\" 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
 
Alt 28.10.2004, 13:55  
Gast
 
Beiträge: n/a
Standard

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

Gruß,
Thomas
 
Alt 28.10.2004, 14:16  
Erfahrener Benutzer
 
Registriert seit: 08.11.2003
Beiträge: 139
Calexico
Standard

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://]
Calexico ist offline  
Alt 28.10.2004, 14:29  
Gast
 
Beiträge: n/a
Standard

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.
 
Alt 28.10.2004, 14:30  
Gast
 
Beiträge: n/a
Standard

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
 
Alt 28.10.2004, 16:12  
Erfahrener Benutzer
 
Registriert seit: 08.11.2003
Beiträge: 139
Calexico
Standard

Zitat:
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.
Calexico ist offline  
Alt 28.10.2004, 16:18  
Gast
 
Beiträge: n/a
Standard

Ä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
 
Alt 29.10.2004, 15:47  
Gast
 
Beiträge: n/a
Standard

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

Gruß,
Thomas
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Problem mit der Linkausgabe! Datenbanken 4 01.08.2005 22:39
Linkausgabe PHP Tipps 2005-2 3 15.06.2005 16:40

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
js linkausgabe

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:56 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.