BB-Code ähnliches für meine Webseite

Ich bin gerade dabei einen Adminbereich für meine Website zu schreiben.
Jetzt bin ich auf der suche danach, wie ich sowas wie BB-Codes verwenden kann, damit ich die Formatierungen nicht jedesmal selber schreiben muss, aber ich habe leider keine Idee, wie ich soetwas realisieren könnte.
Wisst ihr vlt. wie ich das hinbekomme??

Danke schonmal

Bau doch ein Editor ein. :ps:

http://www.mywebsolution.de/tutorials/4/show_BB-Code.html
Bin an dem zufällig mal vorbei keine ahnung ob das gut ist

okay danke, ich scahu mir des mal an

edit: ich hab mir des mal angeschaut, aber da sieht man nicht, wie man buttons für die codes macht…

Wie gesagt ich habs mir auch nicht wirklich angeschaut. sonst ==> google :wink:

functions.php

[code]<?php

include ‘includes/mysql.php’;

function bbcodes($bbcode_text)
{
$bbcode_text = htmlspecialchars($bbcode_text);
$bbcode_text = nl2br($bbcode_text);
$bbcode_text = preg_replace("/[b](.)[/b]/Usi", “<b title=“Fett: Text”>\1”, $bbcode_text);
$bbcode_text = preg_replace("/[i](.
)[/i]/Usi", “<i title=“Kursiv: Text”>\1”, $bbcode_text);
$bbcode_text = preg_replace("/[u](.)[/u]/Usi", “<u title=“Unterstrichen: Text”>\1”, $bbcode_text);
$bbcode_text = preg_replace("/[img](.
)[/img]/Usi", “<img alt=”\1" border=“0” src="\1" title=“Bilder anzeigen: “>”, $bbcode_text);
$bbcode_text = preg_replace(”/[img=(.)](.)[/img]/Usi", “<img alt=”\1" border=“0” src="\1" title=“Bilder anzeigen: “>”, $bbcode_text);
$bbcode_text = preg_replace(”/[link=(.)](.)[/link]/Usi", “<a border=“0” href=”\1" target="_blank">\2", $bbcode_text);
$bbcode_text = preg_replace("/[zitat](.)[/zitat]/Usi", “<div class=“zitat”>\1”, $bbcode_text);
$bbcode_text = preg_replace("/[color=(.
)](.)[/color]/Usi", “<span style=“color: \1” title=“Schriftfarbe: Text”>\2”, $bbcode_text);
$bbcode_text = preg_replace("/[datum](.
).(.).(.)[/datum]/Usi", “<a href=“termine.php?d=\1&m=\2&j=\3” title=“Datum anzeigen: [datum]\1.\2.\3[/datum]”>\1.\2.\3”, $bbcode_text);

$sql_sm = “SELECT bbcode, url FROM smilies ORDER BY url”;
$res_sm = mysql_query($sql_sm) OR die(“Konnte keine Verbindung zur Datenbank herstellen”);
while ($row_sm = mysql_fetch_array($res_sm))
{
$bbcode_text = str_replace("".$row_sm[‘bbcode’]."", “<img alt=“Smilie “.$row_sm[‘bbcode’].”” src=”".$row_sm[‘url’]."" title=“Smilie “.$row_sm[‘bbcode’].””>", $bbcode_text);
}
return $bbcode_text;
}

?>[/code]

functions.js

[code]function bbcodes(form_name, textarea_name, tag1, tag2)
{
if (document.selection)
{
var str = document.selection.createRange().text;
document.forms[form_name].elements[textarea_name].focus();
var sel = document.selection.createRange();
sel.text = “” + tag1 + “” + str + “” + tag2 + “”;
return;
}

else if ((typeof document.forms[form_name].elements[textarea_name].selectionStart) != ‘undefined’)
{
var txtarea = document.forms[form_name].elements[textarea_name];
var selLength = txtarea.textLength;
var selStart = txtarea.selectionStart;
var selEnd = txtarea.selectionEnd;
var oldScrollTop = txtarea.scrollTop;
var s1 = (txtarea.value).substring(0, selStart);
var s2 = (txtarea.value).substring(selStart, selEnd)
var s3 = (txtarea.value).substring(selEnd, selLength);
txtarea.value = s1 + “” + tag1 + “” + s2 + “” + tag2 + “” + s3;
txtarea.selectionStart = s1.length;
txtarea.selectionEnd = s1.length + 5 + s2.length + tag.length * 2;
txtarea.scrollTop = oldScrollTop;
txtarea.focus();
return;
}

else einfügen(form_name, textarea_name, “” + tag1 + “” + tag2 + “”);
}

function bbcodes_hilfe(tag, color)
{
var bbcodes_hilfe_sch =
{
b: “Fett: Text -> Text”,
i: “Kursiv: Text -> Text”,
u: “Unterstrichen: Text -> Text”,
img: "Bilder anzeigen: oder ",
link: “Links anzeigen: [link=http://webside_url]Websidename[/link]”,
tipp: “Tipp: Formatierungen werden hier angezeigt.”
}

if (bbcodes_hilfe_sch[tag] != null)
{
document.getElementById(“bbcodes_hilfe”).innerHTML = bbcodes_hilfe_sch[tag] + " ";
}

if (tag == “color”)
{
var bbcodes_hilfe_sch_color = "Schriftfarbe: Text -> <span style=“color: " + color + “;”>Text”;
document.getElementById(“bbcodes_hilfe”).innerHTML = bbcodes_hilfe_sch_color + " ";
}
}

function einfügen(form_name, textarea_name, zeichen)
{
if (document.forms[form_name].elements[textarea_name].createTextRange)
{
document.forms[form_name].elements[textarea_name].focus();
document.selection.createRange().duplicate().text = zeichen;
}

else if ((typeof document.forms[form_name].elements[textarea_name].selectionStart) != ‘undefined’)
{
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);
var oldScrollTop = tarea.scrollTop;
tarea.value = txtbefore + zeichen + txtafter;
tarea.selectionStart = txtbefore.length + zeichen.length;
tarea.selectionEnd = txtbefore.length + zeichen.length;
tarea.scrollTop = oldScrollTop;
tarea.focus();
}

else
{
document.forms[form_name].elements[textarea_name].value += zeichen;
document.forms[form_name].elements[textarea_name].focus();
}
}[/code]

und abschleißend textarea.php

[code]<?php

echo “<table border=“0” cellpadding=“0” cellspacing=“0” width=“400”>\n”;
echo “

\n”;
echo “<td colspan=“2” valign=“top”>\n”;
echo “<input class=“input_submit” onClick=“bbcodes(’”.$form_name.”’, ‘".$textarea_name."’, ‘’, '’)" onMouseOut=“bbcodes_hilfe(‘tipp’)” onMouseOver=“bbcodes_hilfe(‘b’)” type=“button” value=" b “>\n”;
echo “<input class=“input_submit” onClick=“bbcodes(’”.$form_name.”’, ‘".$textarea_name."’, ‘’, '’)" onMouseOut=“bbcodes_hilfe(‘tipp’)” onMouseOver=“bbcodes_hilfe(‘i’)” type=“button” value=" i “>\n”;
echo “<input class=“input_submit” onClick=“bbcodes(’”.$form_name.”’, ‘".$textarea_name."’, ‘’, '’)" onMouseOut=“bbcodes_hilfe(‘tipp’)” onMouseOver=“bbcodes_hilfe(‘u’)” type=“button” value=" u “>\n”;
echo “<input class=“input_submit” onClick=“bbcodes(’”.$form_name.”’, ‘".$textarea_name."’, ‘[link=]’, ‘[/link]’)" onMouseOut=“bbcodes_hilfe(‘tipp’)” onMouseOver=“bbcodes_hilfe(‘link’)” type=“button” value=" URL “>\n”;
echo “<input class=“input_submit” onClick=“bbcodes(’”.$form_name.”’, ‘".$textarea_name."’, ‘’)" onMouseOut=“bbcodes_hilfe(‘tipp’)” onMouseOver=“bbcodes_hilfe(‘img’)” type=“button” value=" Img “>
\n”;
echo “\n”;
echo “\n”;
echo “\n”;
echo “<td id=“bbcodes_hilfe” valign=“top” width=“330”> \n”;
echo “<td valign=“top” width=“30”>Schriftfarbe\n”;
echo “\n”;
echo “\n”;
echo “<td valign=“top”><textarea class=“input_text” cols=“55” name=”".$textarea_name."" rows=“10”>".$textarea_text."
\n";
echo “<a id=“zeige_smilies_button_on” onClick=“zeige_smilies()”>Zeige Smilies\n”;
echo “<div id=“zeige_smilies” style=“display: none;”>\n”;
echo “<div align=“right”><img border=“0” onClick=“schließe_smilies()” src=“images/schliessen.gif”>\n”;

$sql_sm = “SELECT bbcode, url FROM smilies ORDER BY url”;
$res_sm = mysql_query($sql_sm) OR die($keine_verbindung);
while ($row_sm = mysql_fetch_array($res_sm))
{
echo “<img alt=“Smilie “.$row_sm[‘bbcode’].” einfügen” border=“0” onClick=“einfügen(’”.$form_name.”’, ‘".$textarea_name."’, ’ “.$row_sm[‘bbcode’].” ')" src=“images/smilies/”.$row_sm[‘htmlcode’]."">\n";
}

echo “\n”;
echo “\n”;
echo “<td valign=“top”>\n”;
// Hier kommt die Farbpallette rein
echo “\n”;
echo “

\n”;
echo “\n”;

?>[/code]

und wie muss ich das wo einfügen??

Was meinst du damit?
Das sind alle benötigten Komponenten, die du dafür brauchst, nämlich functions.php (muss includiert werden), functions.js (ist für die Textarea), und textarea.php (kann includiert werden oder in das Script eingefügt werden).

<?php echo bbcodes("Das ist der Text, der z. B. [b]dick[/b] oder [u]unterstrichen[/u] werden soll"); ?>

okay danke.