Funrang Problem
Verfasst: 09.06.2009 12:13
Ich habe einen Funrang Mod, auch wenn man es nicht wirklich Mod nenen kann. Ich habe es jetzt soweit geschaft das man ihn ohne Fehler oder Problem ändern/anlegen kann. Leider habe ich das Problem das sich User nichtmehr registrieren können, dann kommt immer vollgender Fehler:
Ich habe in der Tabelle phpbb_users die Spalte user-funrang angelegt, dort werden die angelegten funrangs gespeichert. Die Spalte hat den Typ "Tinytext" und der Kollation "uft8_bin".
Dan habe ich vollgenden Code angelegt, name ucp_profile_funrang.html:
Dan habe ich noch diese Codes geändert:
includes/ucp/info/ucp_profile.php
Finde:
Danach einfügen:
Um die Übersicht zu behalten in einer neuen Zeile ...
Öffne: includes/ucp/ucp_profile.php
Finde:
Davor einfügen:
view_topic.php
Finde:
Danach einfügen:
Finde:
Danach einfügen:
styles/subsilver2/template/vietopic_body.html
Finde:
Danach einfügen:
Das ist der Abschnitt des Templates, wo später der benutzerdefinierte Rang zu sehen ist ...
Chace habe ich gelert... leider funktioniert die registrierung nicht mehr, kann mir einer sagen warum?
Code: Alles auswählen
Allgemeiner Fehler
SQL ERROR [ mysql4 ]
Field 'user_funrang' doesn't have a default value [1364]
Beim Laden der Seite ist ein SQL-Fehler aufgetreten. Bitte kontaktiere die Board-Administration, falls dieses Problem fortlaufend auftritt.
Dan habe ich vollgenden Code angelegt, name ucp_profile_funrang.html:
Code: Alles auswählen
<!-- INCLUDE ucp_header.html -->
<table class="tablebg" width="100%" cellspacing="1">
<tr>
<th colspan="2" valign="middle">{L_TITLE}</th>
</tr>
<!-- IF ERROR -->
<tr>
<td class="row3" colspan="2" align="center"><span class="genmed error">{ERROR}</span></td>
</tr>
<!-- ENDIF -->
<tr>
<td class="row1" colspan="2"><span class="gensmall">{L_FUNRANG_EXPLAIN}</span></td>
</tr>
<tr>
<td class="row1" height="75px" width="35%"><b class="genmed">{L_SET_FUNRANG}: </b></td>
<td class="row2"><input class="post" type="text" name="funrang" size="35" maxlength="35" value="{FUNRANG}" /></td>
</tr>
<tr>
<td class="cat" colspan="2" align="center">{S_HIDDEN_FIELDS}<input class="btnmain" type="submit" name="submit" value="{L_SUBMIT}" /> <input class="btnlite" type="reset" value="{L_RESET}" name="reset" /></td>
</tr>
</table>
<!-- INCLUDE ucp_footer.html -->
includes/ucp/info/ucp_profile.php
Finde:
Code: Alles auswählen
'reg_details' => array('title' => 'UCP_PROFILE_REG_DETAILS', 'auth' => '', 'cat' => array('UCP_PROFILE')),
Um die Übersicht zu behalten in einer neuen Zeile ...
Code: Alles auswählen
'funrang' => array('title' => 'UCP_PROFILE_FUNRANG', 'auth' => '', 'cat' => array('UCP_PROFILE')),
Finde:
Code: Alles auswählen
}
$template->assign_vars(array(
'L_TITLE' => $user->lang['UCP_PROFILE_' . strtoupper($mode)],
'S_HIDDEN_FIELDS' => $s_hidden_fields,
'S_UCP_ACTION' => $this->u_action)
);
Code: Alles auswählen
case 'funrang':
$data = array(
'funrang' => utf8_normalize_nfc(request_var('funrang', $user->data['user_funrang'], true)),
);
add_form_key('ucp_funrang');
if ($submit)
{
$validate_array = array(
'funrang' => array('string', true, 2, 20),
);
$error = validate_data($data, $validate_array);
if (!check_form_key('ucp_funrang'))
{
$error[] = 'FORM_INVALID';
}
if (!sizeof($error))
{
$sql_ary = array(
'user_funrang' => $data['funrang'],
);
$sql = 'UPDATE ' . USERS_TABLE . '
SET ' . $db->sql_build_array('UPDATE', $sql_ary) . '
WHERE user_id = ' . $user->data['user_id'];
$db->sql_query($sql);
meta_refresh(3, $this->u_action);
$message =
$user->lang['PROFILE_UPDATED'] . '<br /><br />' . sprintf($user->lang['RETURN_UCP'], '<a href="' . $this->u_action . '">', '</a>');
trigger_error($message);
}
// Replace "error" strings with their real, localised form
$error = preg_replace('#^([A-Z_]+)$#e', "(!empty(\$user->lang['\\1'])) ? \$user->lang['\\1'] : '\\1'", $error);
}
$template->assign_vars(array(
'ERROR' => (sizeof($error)) ? implode('<br />', $error) : '',
'FUNRANG' => $data['funrang'],
));
break;
view_topic.php
Finde:
Code: Alles auswählen
$user_cache[$poster_id] = array(
Code: Alles auswählen
'funrang_title' => $row['user_funrang'],
Finde:
Code: Alles auswählen
$postrow = array(
Code: Alles auswählen
'FUNRANG_TITLE' => $user_cache[$poster_id]['funrang_title'],
Finde:
Code: Alles auswählen
<!-- IF postrow.RANK_TITLE -->
<tr>
<td class="postdetails">{postrow.RANK_TITLE}</td>
</tr>
<!-- ENDIF -->
Das ist der Abschnitt des Templates, wo später der benutzerdefinierte Rang zu sehen ist ...
Code: Alles auswählen
<!-- IF postrow.FUNRANG_TITLE -->
<tr>
<td class="postdetails">{postrow.FUNRANG_TITLE}</td>
</tr>
<!-- ENDIF -->