Symbol-Tag
Moderatoren: tuff, Bergfrühling, Weizen, Kwolfli
Symbol-Tag
[symbol]Cairete![/symbol]
Zuletzt geändert von Weizen am 28.12.2004 - 13:06, insgesamt 1-mal geändert.
Damit ihr auch halbwegs richtig Griechisch reden könnte hab ich mal einen Symbol-Tag eingebaut. Text, der zwischen [symbol] und [/symbol] steht wird in der Schriftart Symbol angezeigt.
Die Schriftgröße ist auf 16px gestellt, im Gegensatz zu den 12px bei normalem Text. Wenn du (wie im oberen Posting) eine andere Schriftgröße eingestellt haben willst, dann muss der size-Tag innerhalb des Symbol-Tags stehen, sonst wird die Schriftgröße ignoriert.
Also richtig: [symbol][size=24]Cairete![/size][/symbol]
Und falsch: [size=24][symbol]Cairete![/symbol][/size]
Zur Erklärung: Im ersten Fall wird die Schriftart auf Symbol, die Größe auf 16 und danach die Größe auf 24 gestellt. Im zweiten Fall wird zuerst die Größe auf 24, dann die Schrift auf Symbol und die Größe wieder auf 16 gestellt. Vor Allem bei einzelnen griechischen Wörtern in größer geschriebenem Text also drandenken!
Viel Spaß damit!
Die Schriftgröße ist auf 16px gestellt, im Gegensatz zu den 12px bei normalem Text. Wenn du (wie im oberen Posting) eine andere Schriftgröße eingestellt haben willst, dann muss der size-Tag innerhalb des Symbol-Tags stehen, sonst wird die Schriftgröße ignoriert.
Also richtig: [symbol][size=24]Cairete![/size][/symbol]
Und falsch: [size=24][symbol]Cairete![/symbol][/size]
Zur Erklärung: Im ersten Fall wird die Schriftart auf Symbol, die Größe auf 16 und danach die Größe auf 24 gestellt. Im zweiten Fall wird zuerst die Größe auf 24, dann die Schrift auf Symbol und die Größe wieder auf 16 gestellt. Vor Allem bei einzelnen griechischen Wörtern in größer geschriebenem Text also drandenken!
Viel Spaß damit!
SYNTAX? Why not - they tax everything else!
Ab sofort ist der symbol-Tag vollkommen anders implementiert und funktioniert damit auch in Mozilla und Firefox. Statt einfach eine andere Schriftart zu verwenden werden jetzt alle Buchstaben durch ihre Entsprechungen in der Schriftart Symbol ersetzt, also z.B. a durch α (α), h durch η (η) usw.
Dadurch gibt es eine wichtige Änderung in der Benutzung des Symbol-Tags: War es bisher so, dass [symbol] außen und alle weiteren Textauszeichnungen innnen stehen mussten, so ist es jetzt gerade umgekehrt.
Also richtig: [size=24][symbol]Cairete![/symbol][/size]
Und falsch: [symbol][size=24]Cairete![/size][/symbol]
Letzteres führt zu folgendem Ergebnis:
<[symbol]span style=[/symbol]"[symbol]font-size: 24px; line-height: normal[/symbol]">[symbol]Cairete![/symbol]
Das heißt, der HTML-Code, der die Schriftgröße ändert, wird ebenfalls durch griechische Buchstaben ersetzt.
Dadurch gibt es eine wichtige Änderung in der Benutzung des Symbol-Tags: War es bisher so, dass [symbol] außen und alle weiteren Textauszeichnungen innnen stehen mussten, so ist es jetzt gerade umgekehrt.
Also richtig: [size=24][symbol]Cairete![/symbol][/size]
Und falsch: [symbol][size=24]Cairete![/size][/symbol]
Letzteres führt zu folgendem Ergebnis:
<[symbol]span style=[/symbol]"[symbol]font-size: 24px; line-height: normal[/symbol]">[symbol]Cairete![/symbol]
Das heißt, der HTML-Code, der die Schriftgröße ändert, wird ebenfalls durch griechische Buchstaben ersetzt.
SYNTAX? Why not - they tax everything else!
Und weiter gehts: Ich habe die Funktion jetzt etwas umgeschrieben; jetzt wird HTML-Code genauso wie Smilies und benannte Zeichen nicht mehr umgewandelt, d.h. man sollte in [symbol]-Blöcken genauso schreiben können wie außerhalb
(Klärt mich auf, wenn ich mich täuschen sollte
)


SYNTAX? Why not - they tax everything else!
Auszug aus der bbcode.tpl, function bbencode_first_pass:
Auszug aus der bbcode.tpl, function bbencode_second_pass (ganz unten, wo bereits alles Andere in HTML umgewandelt ist):
Neue Funktion in der functions.php:
Code: Alles auswählen
$text = preg_replace("#\[symbol\](.*?)\[/symbol\]#si", "[symbol:$uid]\\1[/symbol:$uid]", $text);
Code: Alles auswählen
$text = preg_replace("#\[symbol:$uid\](.+?)\[/symbol:$uid\]#ies", "symbolify('\\1')", $text);
Code: Alles auswählen
function symbolify($text)
{
$alt = array ("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K",
"L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V",
"W", "X", "Y", "Z", "a", "b", "c", "d", "e", "f", "g",
"h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r",
"s", "t", "u", "v", "w", "x", "y", "z");
$neu = array ("Α", "Β", "Χ", "Δ", "Ε",
"Φ", "Γ", "Η", "Ι", "ϑ",
"Κ", "Λ", "Μ", "Ν", "Ο",
"Π", "Θ", "Ρ", "Σ", "Τ",
"Υ", "ς", "Ω", "Ξ", "Ψ",
"Ζ", "α", "β", "χ", "δ",
"ε", "φ", "γ", "η", "ι",
"φ", "κ", "λ", "μ", "ν",
"ο", "π", "θ", "ρ", "σ",
"τ", "υ", "ϖ", "ω", "ξ",
"ψ", "ζ");
$erg = "";
$ignore = false;
// HTML / benannte Zeichen nicht symbolifizieren!
$text = str_replace ('\"', '"', $text);
// Damit HTML funktioniert
$text = str_replace ('&', '&', $text);
// Damit direkt eingegebene benannte Zeichen funktionieren
for ($i = 0; $i < strlen($text); $i++)
{
$ersetzt = false;
if (($text[$i] == "<") || ($text[$i] == "&"))
// HTML-Block / benannte Zeichen ignorieren
{
$ignore = true;
}
elseif (($text[$i] == ">") || ($text[$i] == ";"))
// HTML-Block zu Ende
{
$ignore = false;
}
elseif (!$ignore)
// Zeichen nicht in einem HTML-Block oder benannten Zeichen
{
for ($j = 0; $j < 52; $j++)
// Entsprechung suchen und ersetzen
{
if ($text[$i] == $alt[$j])
{
$erg .= $neu[$j];
$ersetzt = true;
}
}
}
if (!$ersetzt) $erg .= $text[$i];
// Wenn nichts ersetzt wurde
}
// Jetzt müssen nur noch die Smilies wiederhergestellt werden:
$erg = str_replace(":Δ", ":D", $erg);
$erg = str_replace(":εεκ:", ":eek:", $erg);
$erg = str_replace(":χοολ:", ":cool:", $erg);
$erg = str_replace(":μαδ:", ":mad:", $erg);
$erg = str_replace(":Π", ":P", $erg);
$erg = str_replace(":ρ ολλεψ" .
"εσ:", ":rolleyes:", $erg);
$erg = str_replace(":τοπ:", ":top:", $erg);
$erg = str_replace(":φλοπ:", ":flop:", $erg);
$erg = str_replace(":χονφυσε" .
"δ:", ":confused:", $erg);
$erg = str_replace(":ιδεα:", ":idea:", $erg);
$erg = str_replace(":αρροω:", ":arrow:", $erg);
$erg = str_replace(":χρψ:", ":cry:", $erg);
$erg = str_replace(":φροων:", ":frown:", $erg);
$erg = str_replace(":ωηατ:", ":what:", $erg);
$erg = str_replace(":εϖιλ:", ":evil:", $erg);
$erg = str_replace(":κεκσ:", ":keks:", $erg);
$erg = str_replace(":βισσ:", ":biss:", $erg);
return $erg;
}
SYNTAX? Why not - they tax everything else!
Ich häng das hier einfach mal mit dran: Benannte Zeichen werden jetzt auch in der Vorschau und im Topic Review ("Thema-Überblick", der iframe beim Antwort erstellen) richtig dargestellt; außerdem gibt es soweit ich das sehe keine Probleme mehr, wenn mehrere dieser Zeichen direkt aufeinander folgen 

SYNTAX? Why not - they tax everything else!