Seite 2 von 3

Re: Profil Mod

Verfasst: 04.01.2009 21:44
von S2B
Hm? Was ist daran nicht einfach? Du musst doch nur einen Teil der oben verlinkten Anleitung ausführen (mit einer Anpassung, wie es bei dieser Anleitung üblich ist). Die Auswertung habe ich ja oben bereits programmiert.

Re: Profil Mod

Verfasst: 04.01.2009 22:01
von MadiMac
beispiel bau mir das ein.

Code: Alles auswählen

#########################################################################################
## 
## Hack Titel:     Optionswahl (ja/nein) anstatt Eingabefeld
## Autor:          Acid
##
## Beschreibung:   Wenn man eine Optionswahl (ja/nein) anstatt eines Eingabefeldes ein-
##		   stellen möchte..
##		   Wenn man mehrere solcher Optionsfelder einstellen möchte, muss man
##		   die folgenden Schritte duplizieren und dabei jeweils "info" ändern
##		   (auf Schreibweise achten). Das Feld "info" ist nur ein Beispiel.
##
## Dateien zu ändern:     5
##			  admin/admin_users.php
##			  includes/usercp_register.php
##			  includes/usercp_viewprofile.php
##	                  templates/xxx/admin/user_edit_body.tpl
##      	          templates/xxx/profile_add_body.tpl
##
#########################################################################################
## 
## Installationsnotiz: 
## Vor jeglichen Änderungen an Dateien oder Datenbank, sollten diese vorher
## gesichert werden.
## 
## Mit diesem Hack wird ein neues Feld in die 'users' Tabelle eingefügt. 
## 
#########################################################################################
#
#-----[ SQL ]-------------------------------------------
#  
# Folgender Query muss über phpmyadmin ausgeführt werden (Prefix anpassen)..

# Wenn noch kein neues Feld hinzugefügt wurde..
ALTER TABLE phpbb_users ADD user_info VARCHAR(255) AFTER user_interests;

# Wenn das bestehende Feld geändert werden soll..
ALTER TABLE phpbb_users CHANGE user_info user_info TINYINT(1) default '0';

# Wenn man mehrere Felder hinzufügt/ändert, muss man die obigen Queries duplizieren und
# die Feldnamen "user_info" anpassen.
#
#########################################################################################
# 
#-----[ ÖFFNEN ]------------------------------------------ 
#  
# includes/usercp_viewprofile.php
# 
#-----[ FINDE ]---------------------------------------------------
# 
	'INFO' => ( $profiledata['user_info'] ) ? $profiledata['user_info'] : ' ',

# 
#-----[ MIT FOLGENDEM ERSETZEN ]---------------------------------------------------
# 
	'INFO' => ( $profiledata['user_info'] == '0' ) ? $lang['No'] : $lang['Yes'],



# 
#-----[ ÖFFNEN ]------------------------------------------
#  
# includes/usercp_register.php
# 
#-----[ FINDE ]---------------------------------------------------
# 
	$strip_var_list = array('username' => 'username', 'email' => 'email', 'icq' => 'icq', 'aim' => 'aim', 'msn' => 'msn', 'yim' => 'yim', 'website' => 'website', 'location' => 'location', 'occupation' => 'occupation', 'interests' => 'interests', 'info' => 'info');

# 
#-----[ FINDE in dieser Zeile und LÖSCHE ]---------------------------------------------------
# 
, 'info' => 'info'

# 
#-----[ FINDE (2x) und LÖSCHE jeweils ]-------------------------------------------
# 
		$info = stripslashes($info);

# 
#-----[ FINDE ]---------------------------------------------------
# 
	$viewemail = ( isset($HTTP_POST_VARS['viewemail']) ) ? ( ($HTTP_POST_VARS['viewemail']) ? TRUE : 0 ) : 0;

# 
#-----[ DARUNTER EINFÜGEN ]---------------------------------------------------
# 
	$info = ( isset($HTTP_POST_VARS['info']) ) ? ( ($HTTP_POST_VARS['info']) ? TRUE : 0 ) : 0;

# 
#-----[ FINDE (nur ein Auszug) ]---------------------------------------------------
# 
			$sql = "UPDATE " . USERS_TABLE . "
# 
#-----[ FINDE in dieser Zeile ]---------------------------------------------------
# 
, user_info = '" . str_replace("\'", "''", $info) . "'

# 
#-----[ MIT FOLGENDEM ERSETZEN ]---------------------------------------------------
# 
, user_info = '$info'

# 
#-----[ FINDE (nur ein Auszug) ]---------------------------------------------------
# 
			$sql = "INSERT INTO " . USERS_TABLE . "

# 
#-----[ FINDE in dieser Zeile ]---------------------------------------------------
# 
, '" . str_replace("\'", "''", $info) . "'

# 
#-----[ MIT FOLGENDEM ERSETZEN ]---------------------------------------------------
# 
, '$info'

# 
#-----[ FINDE ]---------------------------------------------------
# 
		'INFO' => $info,

# 
#-----[ MIT FOLGENDEM ERSETZEN ]---------------------------------------------------
# 
		'INFO_YES' => ( $info ) ? 'checked="checked"' : '',
		'INFO_NO' => ( !$info ) ? 'checked="checked"' : '',



# 
#-----[ ÖFFNEN ]------------------------------------------
#  
# admin/admin_users.php
# 
#-----[ FINDE ]---------------------------------------------------
# 
		$info = ( !empty($HTTP_POST_VARS['info']) ) ? trim(strip_tags( $HTTP_POST_VARS['info'] ) ) : ''; 

# 
#-----[ MIT FOLGENDEM ERSETZEN ]---------------------------------------------------
# 
		$info = ( isset( $HTTP_POST_VARS['info']) ) ? ( ( $HTTP_POST_VARS['info'] ) ? TRUE : 0 ) : 0;

# 
#-----[ FINDE (2x) und LÖSCHE jeweils ]-------------------------------------------
# 
			$info = htmlspecialchars(stripslashes($info));


# 
#-----[ FINDE (nur ein Auszug) ]---------------------------------------------------
# 
			$sql = "UPDATE " . USERS_TABLE . "
# 
#-----[ FINDE in dieser Zeile ]---------------------------------------------------
# 
, user_info = '" . str_replace("\'", "''", $info) . "'

# 
#-----[ MIT FOLGENDEM ERSETZEN ]---------------------------------------------------
# 
, user_info = '$info'

# 
#-----[ FINDE ]---------------------------------------------------
# 
		$info = htmlspecialchars($this_userdata['user_info']);

# 
#-----[ MIT FOLGENDEM ERSETZEN ]---------------------------------------------------
# 
		$info = $this_userdata['user_info'];

# 
#-----[ FINDE ]---------------------------------------------------
# 
			$s_hidden_fields .= '<input type="hidden" name="info" value="' . str_replace("\"", """, $info) . '" />'; 

# 
#-----[ MIT FOLGENDEM ERSETZEN ]---------------------------------------------------
# 
			$s_hidden_fields .= '<input type="hidden" name="info" value="' . $info . '" />';

# 
#-----[ FINDE ]---------------------------------------------------
# 
			'S_INFO' => $s_info, 

# 
#-----[ MIT FOLGENDEM ERSETZEN ]---------------------------------------------------
# 
			'INFO_YES' => ($info) ? 'checked="checked"' : '',
			'INFO_NO' => (!$info) ? 'checked="checked"' : '',



# 
#-----[ ÖFFNEN ]------------------------------------------
#  
# templates/xxx/admin/user_edit_body.tpl
# templates/xxx/profile_add_body.tpl
# 
#-----[ FINDE ]---------------------------------------------------
# 
          <td class="row2"> <input class="post" type="text" name="info" size="35" maxlength="50" value="{INFO}" /> /td> 
# 
#-----[ MIT FOLGENDEM ERSETZEN ]---------------------------------------------------
# 
	  <td class="row2"> 
		<input type="radio" name="info" value="1" {INFO_YES} />
		<span class="gen">{L_YES}</span>&nbsp;&nbsp; 
		<input type="radio" name="info" value="0" {INFO_NO} />
		<span class="gen">{L_NO}</span></td>

#########################################################################################
#########################################################################################
#########################################################################################
Dan bau ich dein kode bei usercp_register.php und das wars oder wie ?

Re: Profil Mod

Verfasst: 04.01.2009 22:24
von S2B
In dieser Anleitung ersetzt du user_info durch user_deny_edit und baust dann lediglich die Änderungen in der admin_users.php und in der user_edit_body.tpl ein.

Re: Profil Mod

Verfasst: 05.01.2009 11:59
von MadiMac
und was mache ich mit $info.Manche sachen muss ich ersetzen die gibts aber nicht.
hier ein beispiel

Code: Alles auswählen

# 
#-----[ ÖFFNEN ]------------------------------------------
#  
# admin/admin_users.php
# 
#-----[ FINDE ]---------------------------------------------------
# 
		$info = ( !empty($HTTP_POST_VARS['info']) ) ? trim(strip_tags( $HTTP_POST_VARS['info'] ) ) : ''; 

# 
#-----[ MIT FOLGENDEM ERSETZEN ]---------------------------------------------------
# 
		$info = ( !empty($HTTP_POST_VARS['info']) ) ? trim(str_replace('<br />', "\n", $HTTP_POST_VARS['info'] ) ) : ''; 

Re: Profil Mod

Verfasst: 05.01.2009 12:07
von regie 510
Hallo,

$info soll nur ein Beispiel darstellen. Wenn Du z.B. ein neues Feld für "Geburtstag" einrichten möchtest, benennst Du $info in $birth oder wie auch immer um.

Re: Profil Mod

Verfasst: 05.01.2009 13:14
von MadiMac
Hi
ich habe da was gebastelt mir fehlt jetz sql abfrage kanstdu mir bitte dafür eine sql befehl anfertigen.und kontrolieren ob mein snippet so koreckt ist.

MFG

Code: Alles auswählen

# 
#-----[    ÖFFNE    ]------------------------------------------ 
# 

/admin/admin_users.php

# 
#-----[ FINDE ]---------------------------------------------------
# 
			'ALLOW_PM_NO' => (!$user_allowpm) ? 'checked="checked"' : '', 

# 
#-----[ DANACH EINFÜGEN ]---------------------------------------------------
# 
			'disable_profile_yes' => ($profile_disable) ? 'checked="checked"' : '',
			'disable_profile_no' => (!$profile_disable) ? 'checked="checked"' : '',

#
#-----[    FINDE    ]------------------------------------------
#

'L_ALLOW_AVATAR' => $lang['User_allowavatar'],

#
#-----[ DANACH EINFÜGEN  ]------------------------------------------
#

"L_DISABLE_PROFILE" => $lang['Profile_disable'], 
"L_DISABLE_PROFILE_EXPLAIN" => $lang['Profile_disable_explain'], 

#
#-----[    FINDE    ]------------------------------------------
#

"S_HIDDEN_FIELDS" => $s_hidden_fields)

#
#-----[ After Add  ]------------------------------------------
#

'S_DISABLE_PROFILE_YES' => $disable_profile_yes,
'S_DISABLE_PROFILE_NO' => $disable_profile_no,

Re: Profil Mod

Verfasst: 05.01.2009 15:07
von S2B
Das steht doch bereits alles im oben von dir geposteten MOD? Auf den ersten Blick würde ich sagen, dass bei deinem Snippet ein guter Teil der Anweisungen (s. o.) fehlen...

Re: Profil Mod

Verfasst: 05.01.2009 17:28
von MadiMac
s.o was ist das ? in etwa so

Code: Alles auswählen

ALTER TABLE phpbb_users ADD disable_profile VARCHAR(255) AFTER profile_disable;
bekomme fehler

Re: Profil Mod

Verfasst: 05.01.2009 18:38
von S2B

Code: Alles auswählen

ALTER TABLE phpbb_users ADD user_deny_edit TINYINT(1) AFTER user_interests;

Re: Profil Mod

Verfasst: 07.01.2009 02:48
von MadiMac
Zu 2 nochmal, wen ich für moderatoren auch ein mail senden möchte wie muss ich vorgehen.

Code: Alles auswählen

WHERE user_id = 2,27';
einfach den ID eintragen.

MFG