Seite 5 von 39

Verfasst: 16.03.2003 15:17
von saerdnaer
zeig mal den regulären ausdruck der den bisherigen tag erkennt...

ah

Verfasst: 16.03.2003 15:25
von esperitox
Wenn du mir noch sagst was du damit meinst gerne wie gesagt k/a von BBCode ich hab mir bisher einfach nur was zusammengebastelt das einigermaßen funzt :D

Edit: Das hab ich gemacht:

bbcode.php

Nach:

Code: Alles auswählen

$bbcode_tpl['email'] = str_replace('{EMAIL}', '\\1', $bbcode_tpl['email']);
hab ich das eingefügt:

Code: Alles auswählen

bbcode_tpl['schild'] = str_replace('{SMILIE}', '\\1', $bbcode_tpl['schild']);
$bbcode_tpl['schild'] = str_replace('{FONTCOLOR}', '\\2', $bbcode_tpl['schild']);
$bbcode_tpl['schild'] = str_replace('{SHADOWCOLOR}', '\\3', $bbcode_tpl['schild']);
$bbcode_tpl['schild'] = str_replace('{SHIELDSHADOW}', '\\4', $bbcode_tpl['schild']);
$bbcode_tpl['schild'] = str_replace('{SCHILD_TEXT}', '\\5', $bbcode_tpl['schild']);
und nach:

Code: Alles auswählen

// [email]user@domain.tld[/email] code..
        $patterns[5] = "#\[email\]([a-z0-9\-_.]+?@[\w\-]+\.([\w\-\.]+\.)?[\w]+)\[/email\]#si";
        $replacements[5] = $bbcode_tpl['email'];
hab ich das eingefügt:

Code: Alles auswählen

$patterns[12] = "#\[schild=([a-z0-9\-\.,\?!%\*_\#:;~\\&$@\/=\+\(\)]+) fontcolor=([a-z0-9\-\.,\?!%\*_\#:;~\\&$@\/=\+\(\)]+) shadowcolor=([a-z0-9\-\.,\?!%\*_\#:;~\\&$@\/=\+\(\)]+) shieldshadow=([a-z0-9\-\.,\?!%\*_\#:;~\\&$@\/=\+\(\)]+)\](.*?)\[/schild\]#si";
        $replacements[12] = $bbcode_tpl['schild'];
und im bbcode.tpl das:

Code: Alles auswählen

<!-- BEGIN schild --><img src="text2schild.php?smilie={SMILIE}&fontcolor={FONTCOLOR}&shadowcolor={SHADOWCOLOR}&shieldshadow={SHIELDSHADOW}&text={SCHILD_TEXT}" border="0"><!-- END schild -->

Verfasst: 16.03.2003 18:46
von Candy

Code: Alles auswählen

[schild=1;red;green;1]text[/schild]
Also ich finde diesen BBCode zu kompliziert auch wenn der Automatisch ins posting feld geschrieben wird woher soll ich wissen, wenn ich z.b. die Schriftfarbe nachträglich ändern will was genau ich ändern muss!

besser wäre solch ein BBCode:

Code: Alles auswählen

[schild=1 schattenfarbe="red" schriftfarbe="green" schildschatten=1"]text[/schild] 
wobei man aber auch einzelne teile z.b. schattenfarbe="red" weglassen sollen könnte und das, das dann durch standardwerte ersetzt wird :)

Grüße Candy

Verfasst: 17.03.2003 20:18
von saerdnaer
wie wärs wenn man beides benutzen könnnte...?

also ich würde zuerst folgendes:

Code: Alles auswählen

$bbcode_tpl['schild'] = str_replace('{SMILIE}', '\\1', $bbcode_tpl['schild']); 
$bbcode_tpl['schild'] = str_replace('{FONTCOLOR}', '\\2', $bbcode_tpl['schild']); 
$bbcode_tpl['schild'] = str_replace('{SHADOWCOLOR}', '\\3', $bbcode_tpl['schild']); 
$bbcode_tpl['schild'] = str_replace('{SHIELDSHADOW}', '\\4', $bbcode_tpl['schild']); 
$bbcode_tpl['schild'] = str_replace('{SCHILD_TEXT}', '\\5', $bbcode_tpl['schild']);
durch folgendes ersetzen:

Code: Alles auswählen

bbcode_tpl['schild'] = str_replace('{URL}', "' . phpbb_schild('\\1', '\\2') . '", "'" . $bbcode_tpl['schild'] . "'"); 
dann noch folgendes:

Code: Alles auswählen

$patterns[12] = "#\[schild=([a-z0-9\-\.,\?!%\*_\#:;~\\&$@\/=\+\(\)]+) fontcolor=([a-z0-9\-\.,\?!%\*_\#:;~\\&$@\/=\+\(\)]+) shadowcolor=([a-z0-9\-\.,\?!%\*_\#:;~\\&$@\/=\+\(\)]+) shieldshadow=([a-z0-9\-\.,\?!%\*_\#:;~\\&$@\/=\+\(\)]+)\](.*?)\[/schild\]#si"; 
durch folgendes ersetzen:

Code: Alles auswählen

$patterns[12] = "#\[schild=([a-z0-9\-\.,\?!%\*_\#:;~\\&$@\/=\+\(\)]+)\](.*?)\[/schild\]#sie"; 
achja... meineswissens ist die 12 am anfang ab phpbb 204 draußen ;-)

dann noch folgendes in der bbcode.tpl suchen:

Code: Alles auswählen

<!-- BEGIN schild --><img src="text2schild.php?smilie={SMILIE}&fontcolor={FONTCOLOR}&shadowcolor={SHADOWCOLOR}&shieldshadow={SHIELDSHADOW}&text={SCHILD_TEXT}" border="0"><!-- END schild -->
und ersetzen durch

Code: Alles auswählen

<!-- BEGIN schild --><img src="{URL}" border="0"><!-- END schild -->
dann muss man nur noch eine funktion machen die die url erzeugt...:

Code: Alles auswählen

function phpbb_schild($parameter, $text)
{
// Fortsetzung folgt ;-) oder kannst du das?
return "text2schild.php?smilie=$smile&fontcolor=$fontcolor&shadowcolor=$schadow_color&shieldshadow=&schields_schaddow&text=$text";
}
ah

Verfasst: 17.03.2003 21:56
von esperitox
achja... meineswissens ist die 12 am anfang ab phpbb 204 draußen
Oops hast recht war mir noch garnicht aufgefallen das,das beim 2.0.4 nicht mehr hochgezählt :oops:
// Fortsetzung folgt ;-) oder kannst du das?
Ehrlich gesagt nein :D :roll:

esperitox

Verfasst: 22.03.2003 19:17
von Henne
Geht die Entwicklung voran oder hängst irgendwo?
Würd mich nämlich freuen... :)

Verfasst: 23.03.2003 12:56
von esperitox
Im mom. hängts an saerdnaer ich warte noch auf den rest des bbcodes :P :D

esperitox

Verfasst: 23.03.2003 14:53
von saerdnaer
okay den regulären ausdruck machst du am besten so:

Code: Alles auswählen

$patterns[] = "#\[schild=([0-9]+)([a-z0-9\-\.,\?!%\*_\#:;~\\&$@\/=\+\(\)]+)\](.*?)\[/schild\]#sie";
und

Code: Alles auswählen

bbcode_tpl['schild'] = str_replace('{URL}', "' . phpbb_schild('\\1', '\\2', '\\3') . '", "'" . $bbcode_tpl['schild'] . "'"); 
und hier die funktion...

Code: Alles auswählen

function phpbb_schild($smilie, $parameter, $text) 
{
        $text = trim(urlencode($text));
        $parameter = trim($parameter);
        $parameter = explode($parameter);
        $parameter2 = array();

        reset($parameter);
        while ( list( , $line) = each($parameter) )
        {
                if ( ( $pos = strpos(' ' . $line) ) )
                {
                        $name = substr($line, 0, $pos - 1);
                        $value = substr($line, $pos);
                        $parameter2[$name] = $value;
                }
        }
        $fontcolor = '#000000';
        $schadowcolor = '#00ff00';
        $schields_schaddow = 'yes';
        // usw...

        if ( !empty($parameter2['fontcolor']) )
        {
                $fontcolor = $parameter2['fontcolor'];
        }
        if ( !empty($parameter2['schadowcolor']) )
        {
                $schadowcolor = $parameter2['schadowcolor'];
        }
        // usw....

        return "text2schild.php?smilie=$smile&fontcolor=$fontcolor&shadowcolor=$schadowcolor&shieldshadow=$schields_schaddow&text=$text"; 
}
musst sie natürlich noch etwas erweitern... kannst auch noch ein paar checks einbauen ob die angaben auch richtig sind...

es sind warscheinlich ein paar parse errors drinn... aber die kannst du ja beheben....

Verfasst: 23.03.2003 15:22
von esperitox
Danke dir :)

Eine Frage noch zu der funktion sollen das die standardwerte sein die genommen werden falls man einen der parameter weglässt?

Code: Alles auswählen

$fontcolor = '#000000';
        $schadowcolor = '#00ff00';
        $schields_schaddow = 'yes';
esperitox

Verfasst: 23.03.2003 15:28
von saerdnaer
der kandidat hat 100 punke... oder kürzer: ja