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ä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ä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
Du solltest nicht die Sprachdateien bearbeiten. Bearbeite lieber die Datei, wo die Funktion enthalten ist.
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ä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änge {5} Zeichen. <b>(<font color=\"{7}\">{8}{6}</font>)</b>";
Klappt wie gewollt.
+wert und
-wert
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änge <b><font color=\"{6}\">{5}</font></b> Zeichen. ";
Du hast im 2. Code das doppelt:
PHP-Code:
$tsiglength = $mybb->settings['siglength']+=$mybb->user['siglenght'];
Genial. Es klappt.
Wie konnte ich das nur übersehen?!
Danke dir wiedermal!!! *LOB*
Und wieder ein Problem
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(1 => $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(1 => $col, 2 => $tmaxpostimages, 3 => $mmaxpostimages, 4 =>$z));
return false;
}
}
datahandler_post.lang.php
PHP-Code:
$l['postdata_too_many_images'] = 'Die von dir eingegebene Nachricht enthä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 ü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....
Also ich habs jetzt mit deinem Code gemacht.
PHP-Code:
// Check if this post contains more images than the forum allows
if($post['savedraft'] != 1 && $mybb->settings['maxpostimages']+=$mybb->user['maxpostimages'] != 0 && $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(1 => $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(1 => $col, 2 => $tmaxpostimages, 3 => $mmaxpostimages, 4 =>$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...