Ursprünglich wollte ich erst mal auf diese Frage antworten, aber in dem Forum kann man als normaler User nicht mehr posten:
wassereimer hat geschrieben:Über der Stelle wo man die Codes bei antwort erstellen auswählen kann, ist doch das Feld Titel und darunter das Feld mit dem Text..... Wie kann ich es einstellen, das die Textfelder sich der länge der Code Liste anpassen? Dadurch das ich jetzt den Smilie Creator Button noch habe hängen die Code Felder über die Text Felder hinaus........
In der Datei posting_body.tpl:
---find:
<input type="text" name="subject" size="45" maxlength="60" style="width:450px" tabindex="2" class="post" value="{SUBJECT}" />
---replace:
<input type="text" name="subject" size="45" maxlength="60" style="width:550px" tabindex="2" class="post" value="{SUBJECT}" />
---find:
<table width="450" border="0" cellspacing="0" cellpadding="2">
---replace:
<table width="550" border="0" cellspacing="0" cellpadding="2">
---find:
<tr>
<td colspan="9">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
--replace:
<tr>
<td colspan="10">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
---find:
<td colspan="9"> <span class="gensmall">
<input type="text" name="helpbox" size="45" maxlength="100" style="width:450px; font-size:10px" class="helpline" value="{L_STYLES_TIP}" />
---replace:
<td colspan="10"> <span class="gensmall">
<input type="text" name="helpbox" size="45" maxlength="100" style="width:550px; font-size:10px" class="helpline" value="{L_STYLES_TIP}" />
---find:
<td colspan="9"><span class="gen">
<textarea name="message" rows="15" cols="35" wrap="virtual" style="width:450px" tabindex="3" class="post" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);">{MESSAGE}</textarea>
---replace:
<td colspan="10"><span class="gen">
<textarea name="message" rows="15" cols="35" wrap="virtual" style="width:550px" tabindex="3" class="post" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);">{MESSAGE}</textarea>
---EOM
Man muss aber beachten, das hierbei das Textfeld etc. breiter wird!
Ich habe nun aber auch noch ein Problem mit dem Smiley Creator:
Ich habe mein Board vollständig auf utf-8 umgestellt, funktioniert auch alles perfekt, aber beim Smiley Creator nicht: Sonderzeichen (z.B. ä,ö,ü,ß) werden als zwei andere Zeichen dargestellt. Ich habe aber gelesen, das html-sonderzeichen von den imagestring-funktionen verarbeitet werden, also habe ich in der text2schild.php neben dem Ersetzen aller string-funktionen durch die multibyte-varianten unten in der Schleife noch mb_encode_numericentity vor die übergabe an das image-teil gesetzt.
Leider kann die imagestring-Funktion das doch nicht, und ich habe so tolle HTML-Codes im Schild. Aber die imagettftext kann das! Also habe ich oben in der Datei definiert (es ist schon dafür ausgelegt das man eine ttf-schrift angibt):
z.B. $schriftdatei = 'c:\windows\fonts\cour.ttf';
Nun nimmt er Courier für die Ausgabe. Sonderzeichen sind perfekt. Dummerweise verrechnet er sich ganz gewaltig bei der Positionierung der des Textes, mit dem Ergebnis das ein Großteil abgeschnitten ist, das Schild viel zu klein...
Hat jemand da eine Lösung??
Edit:
1. Es wäre vielleicht sinnvoll das ein Moderator einen Post unter
dieses Thema setzt, mit dem Hinweis auf diesen Post, wo eine Lösung des Problems beschreiben wird.
2. Mir ist aufgefallen, das bei < und > Probleme auftauchen, sind sie vorhanden bephauptet der Smilie Creator ich hätte den Text vergessen:
Lösung:
bbcode.php
---find:
$text = trim(urlencode($text));
---replace:
$se = array('/', '=');
$re = array('-', '_');
$text = str_replace($se, $re, base64_encode(undo_htmlspecialchars($text)));
text2schild.php:
---find:
$text = stripslashes($text);
$text = str_replace("<","<",$text);
$text = str_replace(">",">",$text);
while(substr_count($text, "<")){
$text = ereg_replace(substr($text, strpos($text, "<"), (strpos($text, ">") - strpos($text, "<") + 1)), "", $text);
}
---replace:
$se = array('-', '_');
$re = array('/', '=');
$text = base64_decode(str_replace($se, $re, $text));
---EOM
Edit 2:
Mir ist aufgefallen, es wird gar kein Alternativtext in dem Bild angegebn, hier ist eine (wenn auch nicht sehr schöne) Lösung wie man das alt-Attribut auf den Schildtext setzt:
bbcode.php
---find / mit obrigem Mod
$text = str_replace($se, $re, base64_encode(undo_htmlspecialchars($text)));
---replace
$urltext = str_replace($se, $re, base64_encode(undo_htmlspecialchars($text)));
---find / ohne obrigem Mod
$text = trim(urlencode($text));
---replace
$urltext = trim(urlencode($text));
---find
return "text2schild.php?smilie=$smilie&fontcolor=$fontcolor&shadowcolor=$shadowcolor&shieldshadow=$shieldshadow&text=$text";
---replace
return "text2schild.php?smilie=$smilie&fontcolor=$fontcolor&shadowcolor=$shadowcolor&shieldshadow=$shieldshadow&text=$urltext" alt="$text";
---EOM