Seite 7 von 39

Verfasst: 23.03.2003 17:29
von esperitox
Nun gehts aber wenn man einen der parameter weglässt also statt:

Code: Alles auswählen

[schild=1 fontcolor=FFA500 shadowcolor=8B0000 shieldshadow=1]text im schild[/schild]
das nimmt:

Code: Alles auswählen

[schild=1 shadowcolor=8B0000 shieldshadow=1]text im schild[/schild]
Wird es nur als text angezeigt :)

esperitox

BTW: Es kam der JS-Fehler "fontcolor ist undefiniert" und ausgegeben als bbcode wurde dann [schild=1 fontcolor=undefined...

Verfasst: 23.03.2003 17:36
von saerdnaer
also bei mir nicht... bei deinem forum funktioniert alles wie es soll...

Verfasst: 23.03.2003 17:49
von saerdnaer
achja
$patterns[] = "#\[schild=([a-z0-9]+)([a-z0-9\-\.,\?!% \*_\#:;~\\&$@\/=\+\\\\)]+)\](.*?)\[/schild\]#sie";
damit das mit dem zufall auch funktioniert...

und könntest du die raute wieder hinzufügen... und die raute im text2schild.php script wieder entfernen damit auch farbnamen benutzt werden können...

ah

Verfasst: 23.03.2003 17:50
von esperitox
Stimmt hast recht hab mich nur verschrieben deswegen gings net :oops:
Danke dir für die Hilfe nun läufts perfekt :)

Frage in die runde: Wie siehts aus mit Schildfarbe/Schildrahmenfarbe sollte die auch einstellbar sein? das würde den bbcode dann nochmal um 2 einträge verlängern :roll:

esperitox

Verfasst: 23.03.2003 17:56
von saerdnaer
du könntest doch einfach den parameter weglassen wenn er auf standart gestellt ist...

achja und nochmal eine änderung damit das auch funktioniert wenn man keine parameter angiebt:
$patterns[] = "#\[schild=([a-z0-9]+)([a-z0-9\-\.,\?!% \*_\#:;~\\&$@\/=\+\\\\)]*)\](.*?)\[/schild\]#sie";

Verfasst: 23.03.2003 18:04
von esperitox
Ohne parameter wäre es dann so oder?

Code: Alles auswählen

[schild=1;A52A2A;008000;1]text im schild[/schild]  
weil das funzt nicht so wirds als text ausgegeben.

Oder meinst du jetzt komplett ohne parameter [schild=1]text[/schild] ?

esperitox

Verfasst: 23.03.2003 18:11
von saerdnaer
und nochmal eine optimierung..

Code: Alles auswählen

function phpbb_schild($smilie, $parameter, $text) 
{ 
        $text = trim(urlencode($text));
        $fontcolor = '#000000';
        $shadowcolor = '#00ff00';
        $shieldshadow = '1';

        $parameter = trim($parameter);
        if ( !empty($parameter) )
        {
                $parameter = explode(' ', $parameter);
                $parameter2 = array();

                if ( !empty($parameter) )
                {
                        reset($parameter);
                        while ( list( , $line) = each($parameter) )
                        {
                                if ( ( $pos = strpos(' ' . $line, '=') ) )
                                {
                                        $name = substr($line, 0, $pos - 1);
                                        $value = substr($line, $pos);
                                        $parameter2[$name] = $value;
                                }
                        }

                        if ( !empty($parameter2['fontcolor']) )
                        {
                                $fontcolor = $parameter2['fontcolor'];
                        }

                        if ( !empty($parameter2['shadowcolor']) )
                        {
                                $shadowcolor = $parameter2['shadowcolor'];
                        }

                        if ( !empty($parameter2['shieldshadow']) )
                        {
                                $shieldshadow = $parameter2['shieldshadow'];
                        }
                }
        }
        return "text2schild.php?smilie=$smilie&fontcolor=$fontcolor&shadowcolor=$shadowcolor&shieldshadow=$shieldshadow&text=$text";
}
ah

Verfasst: 23.03.2003 18:19
von esperitox
Also jetzt funktionieren die parameter shadowcolor & fontcolor nicht mehr korrekt wenn man FF0000/00ff00 angibt müsste der text eigentlich in rot angezeigt werden aber es wird in orange angezeigt die angegebenen farben bei fontcolor/shadowcolor werden miteinander gemischt :o

Wegen den parametern wenn ich einen der beiden parameter fontcolor/shadowcolor weglasse funzt es problemlos aber wenn ich beide weglasse wird es nur als text angezeigt ist es auch möglich das man beide weglassen kann also das es auch so:

Code: Alles auswählen

[schild=1]text im schild[/schild]
funktioniert?

esperitox

Verfasst: 23.03.2003 18:34
von saerdnaer
ähm scharz entspricht dem farbcode 000000 ....

und wegen dem keinen parameter angeben: das meinte ich ja in dem post hier:
-> http://www.phpbb.de/viewtopic.php?p=131085#131085

ah

Verfasst: 23.03.2003 18:43
von esperitox
sry hab mich oben verschrieben schwarz sollte eigentlich rot heissen probiers selbst mal aus in meinem Board wenn du als fontcolor FF0000 und als shadowcolor=00ff00 wird der text in orange angezeigt obwohl er rot sein müsste wenn du red/blue etc. verwedest wird beides in schwarz angezeigt :D

esperitox