28.03.2015, 22:13
Hallo Comm,
Ich habe mich mal ein ein kleines Plugin für mybb gewagt und bin nun vor ein problem gestoßen bezüglich fehler anzeigen in mybb bzw. ich weis nicht wie ich es lösen soll
ein kleines besipiel sscript:
Template:
so nun will ich in die Variable {$errors} meine Usermeldungen ausgeben allerdings habe ich das Problem das ich den code ja unterbrechen muss und dann mein layout nicht mehr angezeigt wird.
nun Lade ich mein Template ganz am Anfang aber dann gibt er mir die obere Variable nicht mehr aus.
Wenn ich das Template unten lade dann wird es mir nach den returns nicht mehr geladen ist ja logisch.
wie Kann ich es einigermaßen einfach anstellen das ich trotzdem das script anhalte aber mein template die variable $errors ausgibt ?
Ja das script ist nicht sauber geschrieben aber ist nur zum testen momentan um mich bissel mit der Programmierung in Mybb vertraut zu machen.
Ich habe mich mal ein ein kleines Plugin für mybb gewagt und bin nun vor ein problem gestoßen bezüglich fehler anzeigen in mybb bzw. ich weis nicht wie ich es lösen soll
ein kleines besipiel sscript:
Template:
Code:
<html>
<head>
<title>{$mybb->settings['bbname']} - {$lang->change_username}</title>
{$headerinclude}
</head>
<body>
{$header}
<table width="100%" border="0" align="center">
<tr>
{$usercpnav}
<td valign="top">
{$errors}
<table class="tborder" cellspacing="0" cellpadding="5" border="0">
<tbody>
<tr>
<td class="thead" colspan="3">
<strong>Die Character von {$formattedname}</strong>
</td>
</tr>
<tr>
<td class="trow1" style="width: 30%;">
<strong>Klasse:</strong>
</td>
<td class="trow1" colspan="2"><strong>CharInfomationen</strong></td>
</tr>
<tr>
<td class="trow1" style="width: 30%;">
</td>
<td class="trow1" style="width: 30%;">
<strong>Name:</strong>
</td>
<td class="trow1" style="width: 30%;">
<strong>LVL:</strong>
</td>
</tr>
<form method="post" action="usercp.php?action=addklas">
<tr>
<td class="trow1">
<select name="Klasse">
<option value="1"><img src="https://wiki-de.guildwars2.com/images/thumb/9/90/Krieger_Icon.png/18px-Krieger_Icon.png">Krieger</option>
<option value="2"><img src="https://wiki-de.guildwars2.com/images/thumb/f/f4/W%C3%A4chter_Icon.png/18px-W%C3%A4chter_Icon.png"> Wächter</option>
<option value="3"><img src="https://wiki-de.guildwars2.com/images/thumb/0/07/Dieb_Icon.png/18px-Dieb_Icon.png">Dieb</option>
<option value="4"><img src="https://wiki-de.guildwars2.com/images/thumb/c/c9/Ingenieur_Icon.png/18px-Ingenieur_Icon.png">Ingenieur</option>
<option value="5"><img src="https://wiki-de.guildwars2.com/images/thumb/5/5e/Waldl%C3%A4ufer_Icon.png/18px-Waldl%C3%A4ufer_Icon.png">Waldläufer</option>
<option value="6"><img src="https://wiki-de.guildwars2.com/images/thumb/b/b4/Elementarmagier_Icon.png/18px-Elementarmagier_Icon.png">Elementarmagier</option>
<option value="7"><img src="https://wiki-de.guildwars2.com/images/thumb/0/05/Mesmer_Icon.png/18px-Mesmer_Icon.png">Mesmer</option>
<option value="8"><img src="https://wiki-de.guildwars2.com/images/thumb/2/23/Nekromant_Icon.png/18px-Nekromant_Icon.png">Nekromant</option>
</select>
</td>
<td class="trow1"><strong><input type="text" name="CharName" /></strong></td>
<td class="trow1"><strong><input type="text" name="LvL" /></strong></td>
</tr>
<tr>
<td class="trow1" colspan="3"><center><input type="submit" name="newchar" value="Charr Erstellen" /></center></td>
</tr>
{$CharsAusgabe}
</tbody>
</table>
</table>
</form>
{$footer}
</body>
</html>
so nun will ich in die Variable {$errors} meine Usermeldungen ausgeben allerdings habe ich das Problem das ich den code ja unterbrechen muss und dann mein layout nicht mehr angezeigt wird.
nun Lade ich mein Template ganz am Anfang aber dann gibt er mir die obere Variable nicht mehr aus.
Wenn ich das Template unten lade dann wird es mir nach den returns nicht mehr geladen ist ja logisch.
wie Kann ich es einigermaßen einfach anstellen das ich trotzdem das script anhalte aber mein template die variable $errors ausgibt ?
Ja das script ist nicht sauber geschrieben aber ist nur zum testen momentan um mich bissel mit der Programmierung in Mybb vertraut zu machen.
PHP-Code:
<?php
global $mybb, $templates, $lang, $header, $headerinclude, $footer, $usercpnav, $errors;
if($mybb->get_input('action') == 'addklas')
{
// Do something, for example I'll create a page using the hello_world_template
// Add a breadcrumb
add_breadcrumb('add_klass', "misc.php?action=addklas");
eval('$sections = "' . $templates->get('Gw2_Klassen') . '";');
// Using the misc_help template for the page wrapper
eval("\$page = \"".$templates->get("newchar")."\";");
}
//make new site
if (!isset($_POST['CharName'], $_POST['LvL'], $_POST['Klasse'], $_POST['newchar'])) {
}
$Klasse = $_POST['Klasse'];
$CharName = $_POST['CharName'];
$LvL = intval($_POST['LvL']);
if(!is_string($CharName)){
return $errors = $lang->KeinName;
}
if (preg_match("#^[a-zA-ZäöüÄÖÜ ]+$#", $CharName) === 0){
return $errors = $lang->NichtErlaubteZeichen;
}
?>