Seite 1 von 1

Funrang Problem

Verfasst: 09.06.2009 12:13
von Bassbox
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:

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.
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:

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}" />&nbsp;&nbsp;<input class="btnlite" type="reset" value="{L_RESET}" name="reset" /></td>
</tr>
</table>

<!-- INCLUDE ucp_footer.html -->
Dan habe ich noch diese Codes geändert:

includes/ucp/info/ucp_profile.php

Finde:

Code: Alles auswählen

'reg_details'    => array('title' => 'UCP_PROFILE_REG_DETAILS', 'auth' => '', 'cat' => array('UCP_PROFILE')),                           
Danach einfügen:
Um die Übersicht zu behalten in einer neuen Zeile ...

Code: Alles auswählen

'funrang'        => array('title' => 'UCP_PROFILE_FUNRANG', 'auth' => '', 'cat' => array('UCP_PROFILE')),                           
Öffne: includes/ucp/ucp_profile.php

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)
        );                           
Davor einfügen:

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(                        
Danach einfügen:

Code: Alles auswählen

'funrang_title'        => $row['user_funrang'],                        



Finde:

Code: Alles auswählen

    $postrow = array(                       
Danach einfügen:

Code: Alles auswählen

'FUNRANG_TITLE'        => $user_cache[$poster_id]['funrang_title'],                       
styles/subsilver2/template/vietopic_body.html


Finde:

Code: Alles auswählen

<!-- IF postrow.RANK_TITLE -->
                <tr>
                    <td class="postdetails">{postrow.RANK_TITLE}</td>
                </tr>
<!-- ENDIF -->                   
Danach einfügen:
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 -->                   
Chace habe ich gelert... leider funktioniert die registrierung nicht mehr, kann mir einer sagen warum?

Re: Funrang Problem

Verfasst: 09.05.2010 12:04
von Poke-Area
Lösch dein Funrang -Mod KOMPLETT;dann müsste es funktionieren!Soein Mod ist nicht so gut für phpbb..

Re: Funrang Problem

Verfasst: 09.05.2010 17:52
von Mahony
Hallo
Siehe auch KB:no_default


Grüße: Mahony