Beiträge: 35
Themen: 1
Registriert seit: 30.10.2007
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
Beiträge: 25.762
Themen: 269
Registriert seit: 20.09.2005
Du solltest nicht die Sprachdateien bearbeiten. Bearbeite lieber die Datei, wo die Funktion enthalten ist.
Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Beiträge: 35
Themen: 1
Registriert seit: 30.10.2007
04.03.2008, 22:21
(Dieser Beitrag wurde zuletzt bearbeitet: 04.03.2008, 22:36 von SHViperia.)
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
Beiträge: 35
Themen: 1
Registriert seit: 30.10.2007
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. ";
Beiträge: 25.762
Themen: 269
Registriert seit: 20.09.2005
Du hast im 2. Code das doppelt: PHP-Code: $tsiglength = $mybb->settings['siglength']+=$mybb->user['siglenght'];
Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Beiträge: 35
Themen: 1
Registriert seit: 30.10.2007
Genial. Es klappt.
Wie konnte ich das nur übersehen?!
Danke dir wiedermal!!! *LOB*
Beiträge: 35
Themen: 1
Registriert seit: 30.10.2007
09.03.2008, 16:24
(Dieser Beitrag wurde zuletzt bearbeitet: 09.03.2008, 16:46 von SHViperia.)
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....
Beiträge: 25.762
Themen: 269
Registriert seit: 20.09.2005
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)
Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Beiträge: 35
Themen: 1
Registriert seit: 30.10.2007
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...
Beiträge: 25.762
Themen: 269
Registriert seit: 20.09.2005
Das fehlt nun: PHP-Code: $image_count = substr_count($image_check, "<img");
Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
|