MyBB.de Forum
Item-Shop - Druckversion

+- MyBB.de Forum (https://www.mybb.de/forum)
+-- Forum: Sonstiges (https://www.mybb.de/forum/forum-1.html)
+--- Forum: Programmierung (https://www.mybb.de/forum/forum-32.html)
+--- Thema: Item-Shop (/thread-20261.html)

Seiten: Seiten: 1 2 3 4 5


Item-Shop - SHViperia - 04.03.2008

Servus,

habe folgendes Problem:

Meine Board Version ist 1.2.12
Habe den Inventory-Shop Plugin

Nun wollte ich es so machen, dass gewisse Items einen Bonus auf Signaturlänge, Max. Attachments im Beitrag usw. geben.

Das klappt bei der Signaturlänge auch soweit ganz gut.

Nun soll hinter Max. Länge noch der Bonus stehen.

Undzwar bei positiven Bonus grün eingefärbt mit nem Pluszeichen davor und bei negativen Bonus halt einfach nur rot.

Um das zu erreichen habe ich folgendes in der usercp.lang.php ergänzt:

PHP-Code:
if ($user['siglenght']<0)
{
$l['edit_sig_note2'] = "Smilies sind {1}.<br />MyCode ist {2}.<br />[img] Tags sind {3}.<br />HTML ist {4}.<br />Max. L&auml;nge {5} Zeichen. <b>(<font color=\"red\">{6}</font>)</b>";
}
else
{
$l['edit_sig_note2'] = "Smilies sind {1}.<br />MyCode ist {2}.<br />[img] Tags sind {3}.<br />HTML ist {4}.<br />Max. L&auml;nge {5} Zeichen. <b>(<font color=\"green\">+{6}</font>)</b>";


bei positiven Wert klappts ganz gut. Da ist der Wert grün eingefärbt und nen Pluszeichen davor.

Aber bei negativen Wert siehts so aus:

[Bild: http://www.myonlinegame.de/signeg.jpg]

Wo liegt der Fehler?
(PS. bei dem Wert handelt ers sich um einen varchar(6) )

Danke für eure Hilfe
Upps....Bitte nach Programmierung verschieben. Habs erst später bemerkt. sorry


RE: Item-Shop - StefanT - 04.03.2008

Du solltest nicht die Sprachdateien bearbeiten. Bearbeite lieber die Datei, wo die Funktion enthalten ist.


RE: Item-Shop - SHViperia - 04.03.2008

Okay, das habe ich versucht.....aber jetzt gibts garkeine Farbe.

usercp.php
PHP-Code:
        $parsed_sig preg_replace("#\s#"""$parsed_sig);
        
$sig_length my_strlen($parsed_sig);
        if(
$sig_length $mybb->settings['siglength']+=$user['siglenght'])
        {
            
$lang->sig_too_long sprintf($lang->sig_too_long$mybb->settings['siglength'], $sig_length-$mybb->settings['siglength']+$user['siglenght']);
            
$error inline_error($lang->sig_too_long);
        }
        
$siguser $user['siglenght'];
        if (
$siguser 0)
        {
        
$col "red";
        }
        else
        {
        
$col "green";
        } 

und usercp.lang.php
PHP-Code:
$l['edit_sig_note2'] = "Smilies sind {1}.<br />MyCode ist {2}.<br />[img] Tags sind {3}.<br />HTML ist {4}.<br />Max. L&auml;nge {5} Zeichen. <b>(<font color=\"{$col}\">{6}</font>)</b>"

Sorry für den Doppel-Post, aber deine Aussage ich sollte es bei der Datei versuchen wo die Funktion abläuft, hat mir schon gut geholfen.

Habs jetzt so:

usercp.php
PHP-Code:
        $query $db->query("SELECT * FROM ".TABLE_PREFIX."users WHERE uid='".$mybb->user['uid']."'");
        
$user $db->fetch_array($query);
    }
            
$siguser $user['siglenght'];
        if (
$siguser 0)
        {
        
$col "red";
        
$z "";
        }
        else
        {
        
$col "green";
        
$z "+";
        }
    
$sig htmlspecialchars_uni($sig);
    
$lang->edit_sig_note2 sprintf($lang->edit_sig_note2$sigsmilies$sigmycode$sigimgcode$sightml$mybb->settings['siglength'], $user['siglenght'], $col$z); 

und usercp.lang.php
PHP-Code:
$l['edit_sig_note2'] = "Smilies sind {1}.<br />MyCode ist {2}.<br />[img] Tags sind {3}.<br />HTML ist {4}.<br />Max. L&auml;nge {5} Zeichen. <b>(<font color=\"{7}\">{8}{6}</font>)</b>"

Klappt wie gewollt.

+wert und -wert


RE: Item-Shop - SHViperia - 09.03.2008

Irgendwas stimmt da mit der Mathematik nicht ganz...

Ich habe jetzt hinbekommen, dass der Wert der Settings und der User-Wert addiert wird, und auch in richtiger Färbung und zusammen gerechnet angezeigt wird.

Mein aktueller Wert ist 255
[Bild: http://www.myonlinegame.de/sig1.jpg]

Wenn ich jetzt aber meine Signatur ändern will (unter 255 Zeichen) und klicke auf Vorschau, dann schauts so aus:
[Bild: http://www.myonlinegame.de/sig2.jpg]

Komme ich über die 255 Zeichen, dann so:
[Bild: http://www.myonlinegame.de/sig3.jpg]

Es werden immer 5 hinzu addiert......warum??

Hier die usercp.php
PHP-Code:
{
            
$tsiglenght $mybb->user['siglenght']+=$mybb->settings['siglength'];
            

        if (
$tsiglenght $mybb->settings['siglength'])
        {
        
$col5 "red";
        }
        else
        {
        
$col5 "green";
        }

    
$sig htmlspecialchars_uni($sig);
    
$lang->edit_sig_note2 sprintf($lang->edit_sig_note2$sigsmilies$sigmycode$sigimgcode$sightml$tsiglenght$col5);
    eval(
"\$editsig = \"".$templates->get("usercp_editsig")."\";");
    
$plugins->run_hooks("usercp_editsig_end");
    
output_page($editsig);
 } 

und auch in usercp.php
PHP-Code:
    {
        if(
$mybb->settings['sigcountmycode'] == "yes")
        {
            
$parsed_sig $parser->strip_mycode($mybb->input['signature']);
        }
        else
        {
            
$parsed_sig $mybb->input['signature'];
        }
        
$tsiglength $mybb->settings['siglength']+=$mybb->user['siglenght'];
        
$parsed_sig preg_replace("#\s#"""$parsed_sig);
        
$sig_length my_strlen($parsed_sig);
        if(
$sig_length $tsiglength)
        
        {
        
$tsiglength $mybb->settings['siglength']+=$mybb->user['siglenght'];
                    if (
$tsiglength $mybb->settings['siglength'])
                    {
                    
$col4 "red";
                    }
                    else
                    {
                    
$col4 "green";
                    }
            
$lang->sig_too_long sprintf($lang->sig_too_long$tsiglength$sig_length-$tsiglength$col4);
            
$error inline_error($lang->sig_too_long);
        }
    } 

und hier ist noch usercp.lang.php
PHP-Code:
$l['sig_too_long'] = "Die Signatur kann nicht gespeichert werden, weil sie zu lang ist. Es sind maximal <b><font color=\"{3}\">{1}</font></b> Zeichen in der Signatur erlaubt. Bitte entferne {2} Zeichen und versuche es erneut.";
$l['edit_sig_note2'] = "Smilies sind {1}.<br />MyCode ist {2}.<br />[img] Tags sind {3}.<br />HTML ist {4}.<br />Max. L&auml;nge <b><font color=\"{6}\">{5}</font></b> Zeichen. "



RE: Item-Shop - StefanT - 09.03.2008

Du hast im 2. Code das doppelt:
PHP-Code:
$tsiglength $mybb->settings['siglength']+=$mybb->user['siglenght']; 



RE: Item-Shop - SHViperia - 09.03.2008

Genial. Es klappt.

Wie konnte ich das nur übersehen?!

Danke dir wiedermal!!! *LOB*


RE: Item-Shop - SHViperia - 09.03.2008

Und wieder ein Problem Rolleyes

guggst du hier:
[Bild: http://www.myonlinegame.de/images1.jpg]

Du 5 sollte grün eingefärbt sein.

Und diesmal habe ich die IF - Abfrage auch da, wo du Funktion ist (vorrausgesetzt die läuft nicht noch irgendwo anders ab)

post.php
PHP-Code:
            // And count the number of image tags in the message.
                
                    
            
$image_count substr_count($image_check"<img");
            
$tmaxpostimages $mybb->user['maxpostimages']+=$mybb->settings['maxpostimages'];    
            
$mmaxpostimages $image_count-$tmaxpostimages;
            if(
$image_count $mybb->settings['maxpostimages']+=$mybb->user['maxpostimages'])
            
$tmaxpostimages $mybb->user['maxpostimages']+=$mybb->settings['maxpostimages'];
            
$mmaxpostimages $image_count-$tmaxpostimages;            


// Throw back a message if over the count with the number of images as well as the maximum number of images per post.
                
$this->set_error("too_many_images", array(=> $image_count));
                    
                    if (
$mmaxpostimages 2)
                    {
                    
$z "";
                    }
                    else
                    {
                    
$z "en";
                    }
                
                if (
$tmaxpostimages $mybb->settings['maxpostimages'])
                    {
                    
$col "red";
                    }
                    else
                    {
                    
$col "green";
                    }
                
                
$this->set_error("too_many_images2", array(=> $col=> $tmaxpostimages=> $mmaxpostimages=>$z));
                return 
false;
                
            }
    } 

datahandler_post.lang.php
PHP-Code:
$l['postdata_too_many_images'] = 'Die von dir eingegebene Nachricht enth&auml;lt {1} Grafiken.<br />';
$l['postdata_too_many_images2'] ='Es sind aber nur <b><font color=\"{1}\">{2}</font></b> Grafiken pro Nachricht erlaubt.<br />Bitte entferne {3} Grafik{4} aus deiner Nachricht, um das Limit nicht zu &uuml;berschreiten.'

Mir ist noch aufgefallen, dass die Berechnung zwar richtig angezeigt wird...aber nicht richtig durchgeführt wird:
[Bild: http://www.myonlinegame.de/Images2.jpg]
(Bei 1 IMG-Tag....obwohl eigentlich 5 erlaubt sind....


RE: Item-Shop - StefanT - 09.03.2008

Was soll dieser Code:
PHP-Code:
$tmaxpostimages $mybb->user['maxpostimages']+=$mybb->settings['maxpostimages'];    
            
$mmaxpostimages $image_count-$tmaxpostimages;
            if(
$image_count $mybb->settings['maxpostimages']+=$mybb->user['maxpostimages'])
            
$tmaxpostimages $mybb->user['maxpostimages']+=$mybb->settings['maxpostimages'];
            
$mmaxpostimages $image_count-$tmaxpostimages
Wäre es so nicht besser:
PHP-Code:
$tmaxpostimages $mybb->user['maxpostimages']+=$mybb->settings['maxpostimages'];    
            
$mmaxpostimages $image_count-$tmaxpostimages;
            if(
$image_count $tmaxpostimages



RE: Item-Shop - SHViperia - 09.03.2008

Also ich habs jetzt mit deinem Code gemacht.

PHP-Code:
        // Check if this post contains more images than the forum allows
        
if($post['savedraft'] != && $mybb->settings['maxpostimages']+=$mybb->user['maxpostimages'] != && $permissions['cancp'] != "yes")
        {
            require_once 
MYBB_ROOT."inc/class_parser.php";
            
$parser = new postParser;

            
// Parse the message.
            
$parser_options = array(
                
"allow_html" => $forum['allowhtml'],
                
"allow_mycode" => $forum['allowmycode'],
                
"allow_imgcode" => $forum['allowimgcode']
            );

            if(
$post['options']['disablesmilies'] != "yes")
            {
                
$parser_options['allow_smilies'] = $forum['allowsmilies'];
            }
            else
            {
                
$parser_options['allow_smilies'] = "no";
            }

            
$image_check $parser->parse_message($post['message'], $parser_options);

            
// And count the number of image tags in the message.
                
                                    
$tmaxpostimages $mybb->user['maxpostimages']+=$mybb->settings['maxpostimages'];    
            
$mmaxpostimages $image_count-$tmaxpostimages;
            if(
$image_count $tmaxpostimages)           


// Throw back a message if over the count with the number of images as well as the maximum number of images per post.
                
$this->set_error("too_many_images", array(=> $image_count));
                    
                    if (
$mmaxpostimages 2)
                    {
                    
$z "";
                    }
                    else
                    {
                    
$z "en";
                    }
                
                if (
$tmaxpostimages $mybb->settings['maxpostimages'])
                    {
                    
$col "red";
                    }
                    else
                    {
                    
$col "green";
                    }
                
                
$this->set_error("too_many_images2", array(=> $col=> $tmaxpostimages=> $mmaxpostimages=>$z));
                return 
false;
                
            }
    } 

kommt dann aber:

[Bild: http://www.myonlinegame.de/Images2.jpg]

Und das kommt sogar auch, selbst wenn ich garkeine Grafik drin habe...


RE: Item-Shop - StefanT - 09.03.2008

Das fehlt nun:
PHP-Code:
$image_count substr_count($image_check"<img");