Profil abhängig von Benutzergruppe
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Profil abhängig von Benutzergruppe
Halöle Leutz!
Ich suche ein Mod bzw. mal ne kleine Unterstützung, wie ich ein Profil von der Benutzergruppe abhängig gestalten kann, d.h. nur wenn man Mitglied einer bestimmten Gruppe ist, sollen diese Leute im Profil die Möglichkeit haben zusätzliche Felder editieren zu können.
Brauche auch kein grosses Dingen, dass heisst mir reicht vollkommen die Eingabe im Profil beim Editieren. Die eigentliche Registrierung soll nicht verändert werden. Die Ansicht des Profils für andere Mitglieder (Viewprofiles) kann ebenfalls so bleiben wie sie ist, da die im Profil eingebenen Daten lediglich für ein anderes Skript ausgelesen werden (quasi Vorstellung bestimmter Mitglieder) sollen.
Kann mir jemand sagen, wie ich vermutlich die usercp_register.php (meine Vermutung) anpassen muss, damit mir dieses gelingen kann?
Für freundliche Hilfe sage ich jetzt schon mal danke
Ich suche ein Mod bzw. mal ne kleine Unterstützung, wie ich ein Profil von der Benutzergruppe abhängig gestalten kann, d.h. nur wenn man Mitglied einer bestimmten Gruppe ist, sollen diese Leute im Profil die Möglichkeit haben zusätzliche Felder editieren zu können.
Brauche auch kein grosses Dingen, dass heisst mir reicht vollkommen die Eingabe im Profil beim Editieren. Die eigentliche Registrierung soll nicht verändert werden. Die Ansicht des Profils für andere Mitglieder (Viewprofiles) kann ebenfalls so bleiben wie sie ist, da die im Profil eingebenen Daten lediglich für ein anderes Skript ausgelesen werden (quasi Vorstellung bestimmter Mitglieder) sollen.
Kann mir jemand sagen, wie ich vermutlich die usercp_register.php (meine Vermutung) anpassen muss, damit mir dieses gelingen kann?
Für freundliche Hilfe sage ich jetzt schon mal danke
zuerst musst du die zusätzlichen felder einfügen....
dann musst du am ende deiner includes/functions.php fpr ?> folgende funktion einfügen:
dann musst du in der includes/usercp_register.php nachfolgendes einfügen
wobei du 123 durch die gruppen_id ersetzen musst....
dann muss man nur noch die query dementsprechend an passen aber dazu musst du erst deine query posten...
( das ist der block der mitanfängt )
ah
dann musst du am ende deiner includes/functions.php fpr ?> folgende funktion einfügen:
Code: Alles auswählen
function member_of($group, $userdata)
{
global $db;
if ( !$userdata['session_logged_in'] )
{
return false;
}
$sql = "SELECT count(*) FROM " . USER_GROUP_TABLE . " WHERE user_id = '" . $userdata['user_id'] . "' AND group_id = '" . $group_id . "'";
if( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not get group auth', '', __LINE__, __FILE__, $sql);
}
list($num) = $db->sql_fetchrow($result);
if ( $num > 0 )
{
return true;
}
return false;
}
Code: Alles auswählen
// it works well :)
//
if ( $mode != 'register' )
{
Code: Alles auswählen
if ( member_of(123, $userdata) )
{
$template->assign_block_vars('switch_group_block', array() );
}
dann muss man nur noch die query dementsprechend an passen aber dazu musst du erst deine query posten...
( das ist der block der mit
Code: Alles auswählen
$sql = "UPDATE " . USERS_TABLE . "
ah
Erstmal Danke für dein Hilfe, meine Query sieht wie folgt aus:
Allerdings habe ich glaube ich oben einen kleinen Fehler bei der Beschreibung gemacht, dass heisst, wenn jemand der Gruppe nicht angehört, sollen die Felder im Profil garnicht erst angezeigt werden und wenn man zu der Gruppe gehört, dann sollen sie als zusätzliche Felder im Profil bearbeitet werden können.
Trotzdem schon einmal danke für deine Mühen. Auch so wäre es schonmal für mich ein erheblicher Fortschrit...
Habe erstmal alles so angepasst, wie du oben beschrieben hast (bis auf die query)$sql = "UPDATE " . USERS_TABLE . "
SET " . $username_sql . $passwd_sql . "user_email = '" . str_replace("\'", "''", $email) ."', user_icq = '" . str_replace("\'", "''", $icq) . "', user_website = '" . str_replace("\'", "''", $website) . "', user_occ = '" . str_replace("\'", "''", $occupation) . "', user_from = '" . str_replace("\'", "''", $location) . "', user_interests = '" . str_replace("\'", "''", $interests) . "',user_firstname = '" . str_replace("\'", "''", $firstname) . "',user_lastname = '" . str_replace("\'", "''", $lastname) . "',user_why_is_fh = '" . str_replace("\'", "''", $why_is_fh) . "', user_sig = '" . str_replace("\'", "''", $signature) . "', user_sig_bbcode_uid = '$signature_bbcode_uid', user_viewemail = $viewemail, user_aim = '" . str_replace("\'", "''", str_replace(' ', '+', $aim)) . "', user_yim = '" . str_replace("\'", "''", $yim) . "', user_msnm = '" . str_replace("\'", "''", $msn) . "', user_attachsig = $attachsig, user_allowsmile = $allowsmilies, user_allowhtml = $allowhtml, user_allowbbcode = $allowbbcode, user_allow_viewonline = $allowviewonline, user_notify = $notifyreply, user_notify_pm = $notifypm, user_popup_pm = $popuppm, user_timezone = $user_timezone, user_dateformat = '" . str_replace("\'", "''", $user_dateformat) . "', user_lang = '" . str_replace("\'", "''", $user_lang) . "', user_style = $user_style, user_active = $user_active, user_actkey = '" . str_replace("\'", "''", $user_actkey) . "'" . $avatar_sql . ", user_birthday='$birthday', user_next_birthday_greeting='$next_birthday_greeting', user_gender='$gender', user_check_is_fh='$is_fh'
WHERE user_id = $user_id";
Allerdings habe ich glaube ich oben einen kleinen Fehler bei der Beschreibung gemacht, dass heisst, wenn jemand der Gruppe nicht angehört, sollen die Felder im Profil garnicht erst angezeigt werden und wenn man zu der Gruppe gehört, dann sollen sie als zusätzliche Felder im Profil bearbeitet werden können.
Trotzdem schon einmal danke für deine Mühen. Auch so wäre es schonmal für mich ein erheblicher Fortschrit...
ersetze die query durch folgendes:
und damit die felder nicht angeigt werden brauch ich noch deine templates/xxx/profile_add_body.tpl ...
oder mach in der datei <!-- BEGIN switch_group_block --> vor dem anfang der felder und <!-- END switch_group_block --> nach den feldern ( jeweils zwischen </tr> und <tr>... )
ah
Code: Alles auswählen
$avatar_sql .= member_of(123, $userdata) ? ( ", user_firstname = '" . str_replace("\'", "''", $firstname) . "', user_lastname = '" . str_replace("\'", "''", $lastname) . "',user_why_is_fh = '" . str_replace("\'", "''", $why_is_fh) . "', user_check_is_fh='$is_fh'") : "";
$sql = "UPDATE " . USERS_TABLE . "
SET " . $username_sql . $passwd_sql . "user_email = '" . str_replace("\'", "''", $email) ."', user_icq = '" . str_replace("\'", "''", $icq) . "', user_website = '" . str_replace("\'", "''", $website) . "', user_occ = '" . str_replace("\'", "''", $occupation) . "', user_from = '" . str_replace("\'", "''", $location) . "', user_interests = '" . str_replace("\'", "''", $interests) . "', user_sig = '" . str_replace("\'", "''", $signature) . "', user_sig_bbcode_uid = '$signature_bbcode_uid', user_viewemail = $viewemail, user_aim = '" . str_replace("\'", "''", str_replace(' ', '+', $aim)) . "', user_yim = '" . str_replace("\'", "''", $yim) . "', user_msnm = '" . str_replace("\'", "''", $msn) . "', user_attachsig = $attachsig, user_allowsmile = $allowsmilies, user_allowhtml = $allowhtml, user_allowbbcode = $allowbbcode, user_allow_viewonline = $allowviewonline, user_notify = $notifyreply, user_notify_pm = $notifypm, user_popup_pm = $popuppm, user_timezone = $user_timezone, user_dateformat = '" . str_replace("\'", "''", $user_dateformat) . "', user_lang = '" . str_replace("\'", "''", $user_lang) . "', user_style = $user_style, user_active = $user_active, user_actkey = '" . str_replace("\'", "''", $user_actkey) . "'" . $avatar_sql . ", user_birthday='$birthday', user_next_birthday_greeting='$next_birthday_greeting', user_gender='$gender'
WHERE user_id = $user_id";
oder mach in der datei <!-- BEGIN switch_group_block --> vor dem anfang der felder und <!-- END switch_group_block --> nach den feldern ( jeweils zwischen </tr> und <tr>... )
ah
mmmmh schade, war leider nicht erfolgreich. Es kommt zwar keine Fehlermeldung, aber die geänderten Daten werden nun garnicht übernommen/gespeichert, auch nicht wenn man Mitglied der entsprechenden eingegebenen GroupID ist...
...ich denke die Ursache jetzt zu suchen ist bestimmt sehr aufwendig oder? Dank dir trotzdem...
...ich denke die Ursache jetzt zu suchen ist bestimmt sehr aufwendig oder? Dank dir trotzdem...
also die tpl-Dateien können wir erstmal weglassen, dass betrifft ja nur die Anzeige oder nicht-Anzeige der Felder. Aber das Problem tritt ja schon beim der .php-Datei auf, dass wenn ich die Daten in den neuen Felder eingebe diese nicht in der Datenbank gespeichert werden, sprich die, die du mit folgender Anweisung:
Also dürfte der Fehler entweder beim Abspeichern der Neuen Felder liegen oder bei der Abfrage nach der Gruppenzugehörigkeit....
Nützt es dir was, wenn ich dir meine Dateien:
functions.php und usercp_register.php mal zukommen lasse? (ich denke zum Quoten sind die zu gross oder?)
ausgelagert hast. Auch wenn der entsprechende User Berechtigung zur Gruppe 123 (in meinem Falle die 16) hat. Die anderen Daten der Felder in:$avatar_sql .= member_of(123, $userdata) ? ( ", user_firstname = '" . str_replace("\'", "''", $firstname) . "', user_lastname = '" . str_replace("\'", "''", $lastname) . "',user_why_is_fh = '" . str_replace("\'", "''", $why_is_fh) . "', user_check_is_fh='$is_fh'") : "";
werden nach wie vorn übertragen.$sql = "UPDATE " . USERS_TABLE . "
SET " . $username_sql . $passwd_sql . "user_email = '" . str_replace("\'", "''", $email) ."', user_icq = '" . str_replace("\'", "''", $icq) . "', user_website = '" . str_replace("\'", "''", $website) . "', user_occ = '" . str_replace("\'", "''", $occupation) . "', user_from = '" . str_replace("\'", "''", $location) . "', user_interests = '" . str_replace("\'", "''", $interests) . "', user_sig = '" . str_replace("\'", "''", $signature) . "', user_sig_bbcode_uid = '$signature_bbcode_uid', user_viewemail = $viewemail, user_aim = '" . str_replace("\'", "''", str_replace(' ', '+', $aim)) . "', user_yim = '" . str_replace("\'", "''", $yim) . "', user_msnm = '" . str_replace("\'", "''", $msn) . "', user_attachsig = $attachsig, user_allowsmile = $allowsmilies, user_allowhtml = $allowhtml, user_allowbbcode = $allowbbcode, user_allow_viewonline = $allowviewonline, user_notify = $notifyreply, user_notify_pm = $notifypm, user_popup_pm = $popuppm, user_timezone = $user_timezone, user_dateformat = '" . str_replace("\'", "''", $user_dateformat) . "', user_lang = '" . str_replace("\'", "''", $user_lang) . "', user_style = $user_style, user_active = $user_active, user_actkey = '" . str_replace("\'", "''", $user_actkey) . "'" . $avatar_sql . ", user_birthday='$birthday', user_next_birthday_greeting='$next_birthday_greeting', user_gender='$gender'
WHERE user_id = $user_id";
Also dürfte der Fehler entweder beim Abspeichern der Neuen Felder liegen oder bei der Abfrage nach der Gruppenzugehörigkeit....
Nützt es dir was, wenn ich dir meine Dateien:
functions.php und usercp_register.php mal zukommen lasse? (ich denke zum Quoten sind die zu gross oder?)
ersetz mal das durch
Code: Alles auswählen
$avatar_sql .= member_of(123, $userdata) ? ( ", user_firstname = '" . str_replace("\'", "''", $firstname) . "', user_lastname = '" . str_replace("\'", "''", $lastname) . "',user_why_is_fh = '" . str_replace("\'", "''", $why_is_fh) . "', user_check_is_fh='$is_fh'") : "";
Code: Alles auswählen
$avatar_sql .= ( member_of(123, $userdata) ? ( ", user_firstname = '" . str_replace("\'", "''", $firstname) . "', user_lastname = '" . str_replace("\'", "''", $lastname) . "',user_why_is_fh = '" . str_replace("\'", "''", $why_is_fh) . "', user_check_is_fh='$is_fh'") : "" );