Mitglieder ändern ihren Namen selbständig!

Fragen zur Implementierung und/oder Anpassung von ConPresso 4 werden in diesem Forum diskutiert.
Antworten
Ralf
ConPresso-Checker
Beiträge: 205
Registriert: 25.08.2005 10:58
Hat sich bedankt: 65 Mal
Danksagung erhalten: 14 Mal

Mitglieder ändern ihren Namen selbständig!

Beitrag von Ralf »

Hallo zusammen,

wie auch schon in meinem anderen Artikel Mitglieder ändern ihre eMail-Adresse?!, habe ich heute nun einen kurzen Code zusammengeschrieben damit die MITGLIEDER (die keinen Zugang zum Backend haben) ihren Namen selbständig ändern können!!

Dazu ist wie folgt vorzugehen (Code ist für Version 4.0.5a):

(ACHTUNG: die Start-/ Stoptags (< ? sowie ? > ) gehören nicht zum Code und dürfen NICHT mitkopiert werden!!)

Öffne Datei member.php (in der gewünschten Rubrik - z.B. _rubric)

Suche Code:

Code: Alles auswählen

        $message[] = ___('You have changed your password.', $cpoRubricSettings['language']);
        logaction('changed password', '');
        $views = array('message');
        break; // }}}
füge DANACH ein:

Code: Alles auswählen

    case 'username': // {{{
        if (!isset($_SESSION['SID_log_login_id'])) {
            $message[] = ___('You have to be logged in to change your username.', $cpoRubricSettings['language']);
            break;
        }
        $views = array('change_username');
        break; // }}}}
    case 'username_change': // {{{
        if (!isset($_SESSION['SID_log_login_id'])) {
            $message[] = ___('You have to be logged in to change your username.', $cpoRubricSettings['language']);
            break;
        }

        $views = array('change_username');

        // update username
        $query = "UPDATE ".CPO_USER." "
            ."SET name='".addslashes($_POST['newusername'])."' "
            ."WHERE user='".addslashes($_SESSION['SID_login'])."' ";
        $db->query($query);

        $message[] = ___('You have changed your username.', $cpoRubricSettings['language']);
        logaction('changed username', '');
        $views = array('message');
        break; // }}}
Suche folgenden Code:

Code: Alles auswählen

        echo '<input type="submit" class="button" value="'.___('change password', $cpoRubricSettings['language']).'">';
        echo '</form>';
         include(CPO_BASEDIR.$directory.'/loadfooters.php');
        break; // }}}
füge DANACH ein:

Code: Alles auswählen

    case 'change_username': // {{{
        include(CPO_BASEDIR.$directory.'/loadheaders.php');
        include(CPO_BASEDIR.'_include/message.php'); // FIXME STEFFEN, wirklich diese Messages benutzen?
		echo '<form method="post" action="'.htmlspecialchars($_SERVER['PHP_SELF']).'">';
        echo '<input type="hidden" name="action" value="username_change">';
        echo '<input type="hidden" name="rubric" value="'.(int)$cpoRubric['id'].'">';
        echo ___('Please enter your new username.', $cpoRubricSettings['language']).'<br />';
        echo ___('Old username:', $cpoRubricSettings['language']).'<br />';
        echo '<input type="text" name="oldusername" value="'.$_SESSION['SID_user'][name].'"><br />';
        echo ___('New email:', $cpoRubricSettings['language']).'<br />';
        echo '<input type="text" name="newusername"><br />';
        echo '<input type="submit" class="button" value="'.___('change username', $cpoRubricSettings['language']).'">';
        echo '</form>';
        include(CPO_BASEDIR.$directory.'/loadfooters.php');
        break; // }}}

Dann noch die Meldungen hinterlegen:
Öffne die Datei _include/lang/deutsch/common.inc.php
suche folgenden Code:

Code: Alles auswählen

'You have changed your password.'
=> 'Sie haben Ihr Passwort geändert.',
füge DANACH ein:

Code: Alles auswählen

'Please enter your new username.'
=> 'Bitte geben Sie Ihren neuen Namen ein.',

'Old username:'
=> 'Alter Name des Benutzers:',

'New username:'
=> 'Neuer Name des Benutzers:',

'change username'
=> 'Name des Benutzers ändern',

'You have to be logged in to change your username.'
=> 'Sie müssen angemeldet sein, um Ihren Namen zu ändern.',

'You have changed your username.'
=> 'Sie haben Ihren Namen erfolgreich geändert.',
nun alles speichern, hoch auf den Webspace und mit dem Befehl:

Code: Alles auswählen


_rubric/member.php?action=username

können nun auch die Mitglieder ihren Namen ändern!! :wink:

Viel Spaß damit!!
cu Ralf
Antworten