Problem mit Profil und Avatar-Auswahl

Allgemeiner Support zum phpBB 2 Board und phpBB 2 Modifikationen
Forumsregeln
Auch wenn hier der Support für phpBB 2 weiterhin aufrecht erhalten bleibt, weisen wir darauf hin, dass das phpBB 2 nicht mehr offiziell unterstützt und weiterentwickelt wird!
schmidtedv
Beiträge: 607
Registriert: So 13.Feb, 2005 10:46
Wohnort: St. Blasien (seit 01.06)
Kontaktdaten:

Problem mit Profil und Avatar-Auswahl

Beitrag von schmidtedv »

Deine phpBB Version: Vanilla phpBB 2.0.17
MODs: Ja
Dein Wissensstand: Fortgeschritten
Link zu Deinem Forum: http://support.schmidtedv.de

PHP Version:
MySQL Version:


Was hast Du gemacht, bevor das Problem aufgetreten ist?
...nichts gemerkt


Was hast Du bereits versucht um das Problem zu lösen?
...geheult



Fehlerbeschreibung und Nachricht

Öhm...ich hätte da ein doch recht ärgerliches Problem bei mir entdeckt. Wenn ich im Profil auf "Galerie anzeigen" klicke um einen Avatar auszuwählen, zeigt er zwar die neue Seite mit dem Auswahlfeld an, aber keine bilder...wenn ich dann eine Kategorie auswähle und mit "ok" bestätige, wirft er mich in die profil.php zurück und meldet dort "Fehler: Sie müssen alle benötigten Felder ausfüllen.", welcher daraus resultiert, das in dieser Ansicht das ein oder andere wahllos durcheinander geworfen wurde....uargh...also zu diesem Punkt bloß nicht auf "übernehmen" klicken, hrrhrr....sofern ich das ganze über die admin_users.php mache, funktioniert alles ganz normal....

Kann mir da einer helfen? Ich nehme mal an ich hab n Zuordnungs-Dreher oder so drin....soll ich was anhängen, also z.B. admin_users.php und usercp_register.php?
Rettet den Wald, esst mehr Specht!

Forum [ sofern im Beitrag darauf verwiesen :-) ]
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Wenn Du uns noch verrätst, welche Mods Du eingebaut hast, gerade in der usercp_register.php und usercp_avatar.php, dann könnte man da gezielter suchen...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
schmidtedv
Beiträge: 607
Registriert: So 13.Feb, 2005 10:46
Wohnort: St. Blasien (seit 01.06)
Kontaktdaten:

Beitrag von schmidtedv »

Also die usercp_avatar.php scheint so gut wie Original, da wird's net drin sein...

Nu mal der Reihe nach...in der usercp_register.php sind meines Wissens irgendwie mit drin:

Admin Notification MOD
Advanced IP Tools Pack MOD 0.3.1
Birthday MOD 1.5.7a
Blog Button MOD 0.1.0
CBACK CrackerTracker Professional MOD 3.1.1
CBACK Profil-AddOn 1.0.1
Country MOD 1.1
Disable Registration MOD 1.1.0
Force Email Update MOD 1.0.2
Gender MOD 1.2.6
Gender Required AddOn 0.9.1
Group Registration MOD 0.4.1
Switch View Birthday MOD 0.1.0
Avatars Secret Gallery MOD 1.0.1 <- gerade verbaut, Problem war mir entfallen bis dahin, ist mir aber nun wieder bewusst, das es schon länger bestand!

Naja, ich nehme dennoch an, das ich da einen Dreher drin habe oder was vergessen wurde...zumindest da die admin_users.php ja auch mit einigen zu tun hat...seufz

Anbei mal die Dateien, vielleicht find' ich's ja auch noch selber, aber für Hilfe wäre ich sehr dankbar an dieser Stelle
Rettet den Wald, esst mehr Specht!

Forum [ sofern im Beitrag darauf verwiesen :-) ]
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Da ist eine Menge eingebaut.
Geh besser selber erst nochmal durch, was geändert wurde und vergleiche das mit den Fehlern, die Du hast.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
schmidtedv
Beiträge: 607
Registriert: So 13.Feb, 2005 10:46
Wohnort: St. Blasien (seit 01.06)
Kontaktdaten:

Beitrag von schmidtedv »

Hm, die codeänderungen sind ja nicht so arg, soweit ich's mal mit dem Original vergleiche....aber vielleicht liegst ja an den SQL-Zeilen...kannst Du da mal guggen, ob ich vielleicht was im Sinne von zeile 1: a,b,c zeile 2: a,c,b vertauscht habe...ich kann nichts entdecken....die Sache mit dem aufruf der Avatargalerie....gibt's da Punkte die bewirken können, das die dann NICHT die Bilder anzeigt? Ist ja nicht direkt ne Fehlermeldung, erst erscheinen einfach die Bilder nicht in der auswahl und dann erst mit "OK" wirft er mich mit Fehlermeldung zurück...seufz....das erscheint mir very tricky...
Rettet den Wald, esst mehr Specht!

Forum [ sofern im Beitrag darauf verwiesen :-) ]
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Du hast doch die ganzen Anleitungen da. Vergleiche doch damit...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Also die Fehlermeldung das ein Feld nicht ausgefüllt wurde, klingt schwer nach einem fehlendem Parameter in

Code: Alles auswählen

$trim_var_list = array('cur_password' => 'cur_password', 'new_password' => 'new_password', 'password_confirm' => 'password_confirm', 'signature' => 'signature');
der usercp_register.php oder

Code: Alles auswählen

$params = array('coppa', 'user_id', 'username', 'email', 'current_email', 'cur_password', 'new_password', 'password_confirm', 'icq', 'aim', 'msn', 'yim', 'website', 'location', 'occupation', 'interests', 'signature', 'viewemail', 'notifypm', 'popup_pm', 'notifyreply', 'attachsig', 'allowhtml', 'allowbbcode', 'allowsmilies', 'hideonline', 'style', 'language', 'timezone', 'dateformat');
der usercp_avatar.php oder nach einem fehlendem hidden_field.
Da genaueres zu sagen ist schwer bis unmöglich denn die usercp_register.php ist doch recht kompliziert und vorallem umfangreich!

Was die fehlenden Bilder in der Avatargalerie anbetrift, kann ich mir das nicht wirklich erklären. Was wird denn gezeigt? Garnichts? Oder die berühmten roten kreuze? Bei letzterem stimmt evtl. eine pfadangabe nicht.

Ein Fehler in den SQL anweisungen kannst du aber bei beiden Problemen ausschließen. Denn dann hättest du eine andere Meldung bzw. unter umständen sogar garkeine Meldung (dafür aber falsche Daten in der DB).
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
schmidtedv
Beiträge: 607
Registriert: So 13.Feb, 2005 10:46
Wohnort: St. Blasien (seit 01.06)
Kontaktdaten:

Beitrag von schmidtedv »

sodele...ich bin ja schon sehr penibel manchmal...es sieht so aus als hätte da der country MOD reingepfuscht...in der usercp_avatar.php hat er in der reihe "function display_avatar_gallery" ein ", &$contry" vergessen...jedenfalls steht's in der usercp_register.php unter "$user_country" drin und das wird als 'country' übergeben....und, naja, was soll ich sagen, es scheint zu gehen, uffuff....nichts desto weniger mal ne andere Frage diesbezüglich:

1. Ist es korrekt, das man mit Aufruf in der Galerie-Ansicht zuerst eine Galerie im Auswahlfeld bestätigen muss, also nicht von vorneherein die alphabetisch Erste dierekt geöffnet/angezeigt wird?

2. Ich hab da folgende Stelle in der usercp_register.php:

Code: Alles auswählen

if ( !empty($HTTP_POST_VARS['language']) )
	{
		if ( preg_match('/^[a-z_]+$/i', $HTTP_POST_VARS['language']) )
		{
			$user_lang = htmlspecialchars($HTTP_POST_VARS['language']);
		}
		else
		{
			$error = true;
			$error_msg = $lang['Fields_empty'];
		}
	}
	else
	{
		$user_lang = $board_config['default_lang'];
	}
	
	if ( !empty($HTTP_POST_VARS['country']) )
	{
		if ( preg_match('/^[a-z_]+$/i', $HTTP_POST_VARS['country']) )
		{
			$user_country = htmlspecialchars($HTTP_POST_VARS['country']);
		}
		else
		{
			$error = true;
			$error_msg = $country['Fields_empty'];
		}
	}
	else
	{
		$user_country = 'DE';
	}

	$user_timezone = ( isset($HTTP_POST_VARS['timezone']) ) ? doubleval($HTTP_POST_VARS['timezone']) : $board_config['board_timezone'];
Wie man sieht werden hier, so nehme ich an, Variablen gestellt z.B. für den Fall, das ich die Avatar-Galerie aufrufe und wieder zurückkehre...schön und gut. Bei dem auswahlfeld Sprache klappt das auch, die Zeitzone rutscht gerne mal auf GMT (wobei boardstandard eigentlich GMT+1 ist (hmhmhm) was mich schon etwas wundert (Fehler?) und, naja, hätte ich nicht noch "$user_country = 'DE';" eingesetzt, wäre ich nach Avatar-Ansicht ohne DE im Profil....das ist etwas ärgerlich, wenn ein Benutzer seinen Avatar ändert und dann noch kontrolieren muß, ob sich diese auswahlfelder nicht geändert haben....gibt's da ne andere Variante, das zu umgehen?
Zuletzt geändert von schmidtedv am Do 01.Sep, 2005 18:50, insgesamt 1-mal geändert.
Rettet den Wald, esst mehr Specht!

Forum [ sofern im Beitrag darauf verwiesen :-) ]
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Wenn Du die Gallerie aufrufst oder eben die Avatar-Steuerung allgemein, dann werden alle Profildaten mit display_avatar_gallerie() übergeben und von dort aus dem Array $params[] zurückgegeben. Diese beiden Zeilen in der usercp_avatar.php müssen 100%ig übereinstimmen, was Variablenname und Reihenfolge anbelangt.
Dazu muss ebenso der Funktionsaufruf in der usercp_register.php synchron passen, sonst hast Du die von Dir genannten Fehler.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
schmidtedv
Beiträge: 607
Registriert: So 13.Feb, 2005 10:46
Wohnort: St. Blasien (seit 01.06)
Kontaktdaten:

Beitrag von schmidtedv »

hm, da hab ich noch ein paar unterschiede, jetzt wo du es erwähnst....das probier ich nochmal

also hab ich dem $params = array noch ein paar fehlende hinzugefügt (auch session_id und das 2.te email, sofern das hier wirklich mit dem display_avatar_gallery übereinstimmen soll) und zugleich die sortierung geändert, damit es gleich ist....wäre das so korrekt?

eins ist mir nur noch net klar...

display_avatar_gallery($mode, &$category

muss ich da auch in den params ein 'mode' und ein 'category' noch vorne dran hängen oder reicht es wenn ich da mit 'user_id' anfange...? Bis hier scheint es jedenfalls nun zu funktionieren...alles bleibt bestehen, thx an dich un AmigaLink!!
Zuletzt geändert von schmidtedv am Fr 02.Sep, 2005 08:13, insgesamt 2-mal geändert.
Rettet den Wald, esst mehr Specht!

Forum [ sofern im Beitrag darauf verwiesen :-) ]
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Die Reihenfolge hier ist egal, muss aber in der usercp_register.php analog mit der Funktion der usercp_avatar.php übereinstimmen.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
schmidtedv
Beiträge: 607
Registriert: So 13.Feb, 2005 10:46
Wohnort: St. Blasien (seit 01.06)
Kontaktdaten:

Beitrag von schmidtedv »

Naja, es scheint zu gehen, ich lass' es erstmal so bis mir in 3 Monaten da wieder ein Bug auffällt, hehe....

Mal ne kleine Bitte...ich weiß nun, das der folgende MOD meine Profilansicht zerhackt (hab den hier mal weggelassen in der tpl und es war wieder ok, vorher war im <table> (der ja immer je 2 <td>'s enthält) rechts eine kleine Lücke (sah aus wie ein dicker Rand) in MorpheusX...witzigerweise nicht in subSilver! Nun hab ich mir das mal genau angeschaut aber weiß beim besten Willen nicht, wo da auch nur irgendwas Layoutbeeinflussendes drinsteckt ausser der tpl-Zeile. die ist aber wiederum identisch mit den anderen <td>'s...

Weiß einer von euch, was da verantwortlich sein kann?
Rettet den Wald, esst mehr Specht!

Forum [ sofern im Beitrag darauf verwiesen :-) ]
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Eine falsche Definition in der entsprechenden TPL. Pack die doch mal hier an...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
schmidtedv
Beiträge: 607
Registriert: So 13.Feb, 2005 10:46
Wohnort: St. Blasien (seit 01.06)
Kontaktdaten:

Beitrag von schmidtedv »

Also die pack ich gern hier rein und zudem, wenn erlaubt, noch was vom download MOD, aber die alte Version (ich hab' einfach noch net die Zeit, die neue einzubauen, sorry). tom10 hat mein Paket erneut installiert und bekommt (bei FunPic) folgendes:

Fatal error: Call to undefined function: bcdiv() in /usr/export/www/vhosts/abc/xyz/xxx/admin/admin_dl_auto_traffic.php on line 101

Anbei die Dateien....die tpl hab' ich vorhin sogar mal völlig umgearbeitet, weil ich dachte so geht's besser, aber in dem Block mit der Geburtstagsoption steckt immernoch der blöde Rand drin...

...und noch ne Kleinigkeit. Hab' ja diesen oben genannten MOD drin, der dem Benutzer erlaubt, seinen Geburtstag nicht anzeigen zu lassen und den Topic Calendar. In dem hab ich ja die Geburtstagserweiterung, aber leider unabhängig von dem anderen MOD. Nun hab ich schon mal folgendes geschafft. In die functions_calendar.php hab ich in:

Code: Alles auswählen

function get_birthday(&$events, &$number, $start_date, $end_date, $limit=false, $start=0, $max_limit=-1) 
{ 
   global $template, $lang, $images, $userdata, $board_config, $db, $phpbb_root_path, $phpEx; 

      $sql = "$user_birthday SELECT u.* 
      FROM " . USERS_TABLE . " AS u 
      WHERE u.user_id <> " . ANONYMOUS . " 
         AND u.user_birthday <> 999999 
      ORDER BY username";
noch AND u.user_viewbirthday = 1 eingesetzt. soweit, so gut....mehr aus der Anleitung zu klauen hat nicht funktioniert, wie aber ersichtlich gibt's da drin ne Kombination, die eigentlich dem Admin die Anzeige IMMER ermöglicht....kann mir jemand da helfen, wie ich das oben einbauen sollte? Meine Versuche haben nicht geklappt, nur FÜR ALLE ohne Ausnahme ausblenden geht bisher...

EDIT: Nochwas...die Anleitung sagt ja in der usercp_avatar.php nichts davon &$viewbirthday auch noch unter $params als 'viewbirthday' einzusetzen...Fehler vom MOD? Du meintest ja alles muß da mit rein (ich hab in $params also auch noch 'session_id' und ein 2.tes 'email' eingesetzt...häng' ich auch mal dran, falls ich da nun doch Bockmist gebaut habe...

EDIT 2: Also ich hab' mit der tpl nun folgendes gemacht...man könnte sagen notdürftig aber funktionabel geflickt:

Code: Alles auswählen

<tr>
	<td class="row1"><span class="gen">{L_PUBLIC_VIEW_BIRTHDAY}:</span></td>
	<td class="row2">
	<table border="0" cellspacing="0" cellpadding="0">
	<tr>
	<td class="row2"><input type="radio" name="viewbirthday" value="1" {VIEW_BIRTHDAY_YES} /> <span class="gen">{L_YES}</span>&nbsp;&nbsp;<input type="radio" name="viewbirthday" value="0" {VIEW_BIRTHDAY_NO} /> <span class="gen">{L_NO}</span></td>
	</tr>
	</table>
	</td>
</tr>
Sofern euch da nicht noch was anderes einfällt, lass ich's so, Ansicht funktioniert ja damit (der MOD war mal für fisubsilver, vielleicht liegt's ja daran...
Zuletzt geändert von schmidtedv am Sa 03.Sep, 2005 00:39, insgesamt 3-mal geändert.
Rettet den Wald, esst mehr Specht!

Forum [ sofern im Beitrag darauf verwiesen :-) ]
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Also die pack ich gern hier rein und zudem, wenn erlaubt, noch was vom download MOD
Ein klares: NEIN
Eröffne bitte hierzu ein neues Thema oder verwende ein entsprechend bestehendes. Hier rate ich Dir aber: Mach ein Update, die alte Version ist unter Umständen sogar unsicher!

Dann zum Geburtstag: Die Anzeige immer für Admins zu verwenden, ist schwer aufzubauen, wenn man den Mod selber nicht kennt.
In der Regel wäre die Bedingung

Code: Alles auswählen

if($userdata['user_level'] == ADMIN)
{
// Codeblock für Admins
}
ausreichend, wenn nicht bereits schon andere Bedingungen vorhanden sind.

Daß $viewbirthday fehlt, liegt wohl weniger an MOD, eher an der Tatsache, daß es vermutlich nicht so gewollt ist. Wie gesagt: Den MOD selber kenne ich jetzt nicht...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
schmidtedv
Beiträge: 607
Registriert: So 13.Feb, 2005 10:46
Wohnort: St. Blasien (seit 01.06)
Kontaktdaten:

Beitrag von schmidtedv »

...zum Download MOD: Seufz, ich nehme mal an, es liegt an FunPics bzw. einer fehlenden bcmath extension in deren PHP.....stimmt ihr mir da zu? Also kann das bei tom10 gar net laufen...


...zum Geburtstag: Den MOD hab' ich doch mit im Anhang und da steht

Code: Alles auswählen

#-----[ FIND ]------------------------------------------ 
# 
$sql = ($board_config['birthday_check_day']) ? "SELECT user_id, username, user_birthday,user_level FROM " . USERS_TABLE. " WHERE user_birthday!=999999 ORDER BY username" :""; 
# 
#-----[ REPLACE, WITH ]------------------------------------------ 
# 
$sql = ($board_config['birthday_check_day']) ? "SELECT user_id, username, user_birthday,user_level FROM " . USERS_TABLE. " WHERE user_birthday!=999999" . ( ($userdata['user_level']!=ADMIN) ? " " :" AND user_viewbirthday=1 " ) . "ORDER BY username" :""; 
Ich dachte, ich könnte einfach

Code: Alles auswählen

" . ( ($userdata['user_level']!=ADMIN) ? " " :" AND user_viewbirthday=1 " ) . "
bei mir reinkopieren, aber das geht nicht. Ich nehme an, dafür muß ich das $userdata['user_level'] irgendwie abändern...hmpf, manchmal hab' ich das Gefühl, Du willst mich erstmal nicht verstehen, damit ich die Probleme selber löse, LOL :-)

PS: Du kennst den MOD, aber ist ne Ewigkeit her...Posts von Dir zum MOD stehen auf phpbb2.de im Archiv, hehe...
Zuletzt geändert von schmidtedv am Sa 03.Sep, 2005 07:54, insgesamt 3-mal geändert.
Rettet den Wald, esst mehr Specht!

Forum [ sofern im Beitrag darauf verwiesen :-) ]
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Also: Die BCMath Funktionen müssen nicht in PHP vorhanden sein und FunPic stellt diese auch nicht bereit. Die sind halt Banane, daher einfach nicht zu empfehlen!
Die neue DL MOD Version behebt aber diesen Fehler :D

Und die Geburtstagsanzeige wäre so korrekter, wenn ich Dich jetzt richtig verstanden habe:

Code: Alles auswählen

$sql = ($board_config['birthday_check_day'] && $userdata['user_level'] == ADMIN ) ? "SELECT user_id, username, user_birthday,user_level FROM " . USERS_TABLE. " WHERE user_birthday!=999999 ORDER BY username" :"";
Dann wird die Anzeige nur ausgeführt, wenn Du als User Administrator bist.
Wenn Du allerdings nur Userdaten sehen willst, die es auch erlauben, dann muss die Abfrage so lauten:

Code: Alles auswählen

$sql = ($board_config['birthday_check_day']) ? "SELECT user_id, username, user_birthday,user_level FROM " . USERS_TABLE. " WHERE user_birthday!=999999 AND user_viewbirthday = 1 ORDER BY username" :"";
Oder Deine Variante, wenn nur der Admin alle Geburtstage sehen soll. Die ist schon korrekt, aber $userdata['user_level'] != ADMIN ist falsch. Hier muss != durch ein == aufgetauscht werden.

Und ich weiß immer noch nicht, um welchen MOD es geht :confused:
Zuletzt geändert von oxpus am Sa 03.Sep, 2005 12:05, insgesamt 1-mal geändert.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
schmidtedv
Beiträge: 607
Registriert: So 13.Feb, 2005 10:46
Wohnort: St. Blasien (seit 01.06)
Kontaktdaten:

Beitrag von schmidtedv »

hmpf....wir kommen der Sache schon näher, allerdings brauch ich die ersetzung nicht in den von dir geänderten Zeilen...die sind ja von dem MOD, der die Funktion im Board bereitstellt und funktionieren wie Sie sollen, LOL, vielmehr möchte ich Folgendes:

In der functions_calendar.php ist der Birthday so verbaut:

Code: Alles auswählen

// Birthday Mod for Topic Calendar
// 
function get_birthday(&$events, &$number, $start_date, $end_date, $limit=false, $start=0, $max_limit=-1) 
{ 
   global $template, $lang, $images, $userdata, $board_config, $db, $phpbb_root_path, $phpEx; 

      $sql = "$user_birthday SELECT u.* 
      FROM " . USERS_TABLE . " AS u 
      WHERE u.user_id <> " . ANONYMOUS . " 
         AND u.user_birthday <> 999999 
      ORDER BY username"; 

   if ( !$result = $db->sql_query($sql) ) 
   { 
      message_die(GENERAL_ERROR, 'Could not read user table to get birthday today info', '', __LINE__, __FILE__, $sql); 
   } 

   // get the number of occurences 
   $number = $db->sql_numrows($result); 
   // if limit per page asked, limit the number of results 

   // add birthday events for logged people eyes
   if ($board_config['calendar_birthday'] && isset($lang['Birthday_Calendar']) && isset($userdata['user_birthday']) && ($userdata['user_id'] != ANONYMOUS))
   {
Hier habe ich nun mittels AND u.user_viewbirthday = 1 folgendes draus gemacht:

Code: Alles auswählen

      $sql = "$user_birthday SELECT u.* 
      FROM " . USERS_TABLE . " AS u 
      WHERE u.user_id <> " . ANONYMOUS . " 
         AND u.user_birthday <> 999999 
         AND u.user_viewbirthday = 1 
      ORDER BY username"; 
So wirkt sich die Profil-Option des Benutzers "Meinen Geburtstag nicht anzeigen" auch auf den Kalender aus. Nun hat aber der MOD, der diese Funktion bereitstellt noch zusätzlich drin, das Administratoren den Geburtstag trotzdem IMMER angezeigt kriegen, egal, was der Benutzer einstellt und hier kam ich darauf, das AND u.user_viewbirthday = 1 eventuell noch erweitern zu können, damit da Administratoren von ausgenommen sind!

Im MOD lauten die entsprechenden Codezeilen nun halt folgendermaßen:

Code: Alles auswählen

#-----[ OPEN ]------------------------------------------ 
# 
includes/usercp_viewproflie.php 
# 
#-----[ FIND ]------------------------------------------ 
# 
   'BIRTHDAY' => ($profiledata['user_birthday']!=999999) ? realdate($lang['DATE_FORMAT'], $profiledata['user_birthday']) : $lang['No_birthday_specify'], 
# 
#-----[ REPLACE, WITH ]------------------------------------------ 
# 
   'BIRTHDAY' => ( ($profiledata['user_birthday']!=999999) && ( !empty($profiledata['user_viewbirthday']) || $userdata['user_level'] == ADMIN ) ) ? realdate($lang['DATE_FORMAT'], $profiledata['user_birthday']) : $lang['No_birthday_specify'], 
# 
#-----[ OPEN ]------------------------------------------ 
# 
viewtopic.php 
# 
#-----[ FIND ]------------------------------------------ 
# 
      if ( $postrow[$i]['user_birthday'] != 999999 ) 
# 
#-----[ REPLACE, WITH ]------------------------------------------ 
# 
      if ( $postrow[$i]['user_birthday'] != 999999 && ( !empty($postrow[$i]['user_viewbirthday']) || $userdata['user_level'] == ADMIN )) 
# 
#-----[ OPEN ]------------------------------------------ 
# 
index.php 
# 
#-----[ FIND ]------------------------------------------ 
# 
$sql = ($board_config['birthday_check_day']) ? "SELECT user_id, username, user_birthday,user_level FROM " . USERS_TABLE. " WHERE user_birthday!=999999 ORDER BY username" :""; 
# 
#-----[ REPLACE, WITH ]------------------------------------------ 
# 
$sql = ($board_config['birthday_check_day']) ? "SELECT user_id, username, user_birthday,user_level FROM " . USERS_TABLE. " WHERE user_birthday!=999999" . ( ($userdata['user_level']!=ADMIN) ? " " :" AND user_viewbirthday=1 " ) . "ORDER BY username" :""; 
#
...das was ich mir teils geklaut hatte, war die Stelle der index.php, wie man sieht...aber halt nur Teils, den Teil mit dem Admin da noch zusätzlich reinzuhängen ging nicht, da ich das falsch aufbaue, und da kam ich dann zu meiner Frage, ob mir da einer helfen kann....

so, ich hoffe, nun hast Du's? :-)

Anmerkung: für die bcdiv-Geschichte teste ich gerade, ob ich nicht einfach, solang der alte Dlmod noch drin ist und Leute da Probleme mit kriegen KÖNNTEN, das ich in die functions.php folgendes einsetze:

Code: Alles auswählen

// added for missing bcmath extension
if(!function_exists("bcdiv")){
    function bcdiv($a, $b, $scale=2) 
	{ 
	$r = $a / $b; 
	for ( $i=0; $i < $scale; $i++); 
	$r = 10 * $r; 
	$r = ((int) $r); 
	for ( $i=0; $i < $scale; $i++); 
	$r = 0.1 * $r; 
	return $r; 
	}
}
if(!function_exists("bcmul")){
    function bcmul($a, $b, $scale=2) 
	{ 
	$r = $a * $b; 
	for ( $i=0; $i < $scale; $i++); 
	$r = 10 * $r; 
	$r = ((int) $r); 
	for ( $i=0; $i < $scale; $i++); 
	$r = 0.1 * $r; 
	return $r; 
	} 
}
....AmigaLink hat mich da drauf gebracht und so hab ich mir dies aus verschiedenen Quellen erdacht...
Zuletzt geändert von schmidtedv am Sa 03.Sep, 2005 12:20, insgesamt 1-mal geändert.
Rettet den Wald, esst mehr Specht!

Forum [ sofern im Beitrag darauf verwiesen :-) ]
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Ich schrieb doch schon:

Code: Alles auswählen

$sql = ($board_config['birthday_check_day']) ? "SELECT user_id, username, user_birthday,user_level FROM " . USERS_TABLE. " WHERE user_birthday!=999999" . ( ($userdata['user_level']!=ADMIN) ? " " :" AND user_viewbirthday=1 " ) . "ORDER BY username" :"";
wird zu

Code: Alles auswählen

$sql = ($board_config['birthday_check_day']) ? "SELECT user_id, username, user_birthday,user_level FROM " . USERS_TABLE. " WHERE user_birthday!=999999" . ( ($userdata['user_level']==ADMIN) ? " " :" AND user_viewbirthday=1 " ) . "ORDER BY username" :"";
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
schmidtedv
Beiträge: 607
Registriert: So 13.Feb, 2005 10:46
Wohnort: St. Blasien (seit 01.06)
Kontaktdaten:

Beitrag von schmidtedv »

Ja, aber die Stelle, die ich meine und in die das reinsoll ist doch:

Code: Alles auswählen

$sql = "$user_birthday SELECT u.* 
      FROM " . USERS_TABLE . " AS u 
      WHERE u.user_id <> " . ANONYMOUS . " 
         AND u.user_birthday <> 999999 
-->    AND u.user_viewbirthday = 1 
      ORDER BY username"; 
Zuletzt geändert von schmidtedv am Sa 03.Sep, 2005 12:32, insgesamt 1-mal geändert.
Rettet den Wald, esst mehr Specht!

Forum [ sofern im Beitrag darauf verwiesen :-) ]
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Die stelle meint oxpus auch. ;)
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
schmidtedv
Beiträge: 607
Registriert: So 13.Feb, 2005 10:46
Wohnort: St. Blasien (seit 01.06)
Kontaktdaten:

Beitrag von schmidtedv »

ähm, aber der Topic Calendar fragt hier doch $user_birthday SELECT u.* ab, wohingegen die Stelle von Oxpus die aus dem MOD ist....das würde allein bzgl. u.* nicht genügend ergebnisse an den Calendar liefern und ne Fehlermeldung kommen....das $sql = aus dem MOD, welches Oxpus mir geändert hat ist ja eine Abfrage die nur wiedergeben soll, ob Geburtstage im Index gezeigt werden oder nicht....die sql-Abfrage von mir übergibt doch alle Variablen an den Topic Calendar...ich kann jetzt nicht glauben, das ich da einfach durcheinanderwerfen darf....
Rettet den Wald, esst mehr Specht!

Forum [ sofern im Beitrag darauf verwiesen :-) ]
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Nochmal:
Die von mir zuletzt gepostete Änderung würde dem Admin alle Geburtstage anzeigen, anderen Usern nur die, die "erlaubt" wurden.
Was ist daran jetzt falsch oder nicht zu verstehen?

Und BTW: Für den Topic Calender habe ich nicht eine Zeile MOD geschrieben!
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
schmidtedv
Beiträge: 607
Registriert: So 13.Feb, 2005 10:46
Wohnort: St. Blasien (seit 01.06)
Kontaktdaten:

Beitrag von schmidtedv »

Also, ich hab' nicht behauptet, das was von Dir sei. Und, naja, noch einmal von vorn, seufz. Ich habe hier einen MOD, der nennt sich "Switch View Birthday MOD" und ermöglicht dem Benutzer im Profil selber zu entscheiden, ob sein Geburtstag überall angezeigt wird, oder nicht. Darin enthalten ist die Funktion, das Administratoren davon ausgenommen sind, also diese den Geburtstag IMMER sehen. Dieser MOD hat zunächst einmal NICHTS mit dem Topic Calendar zu tun. Er beeinflußt NUR die Anzeige im Index, Profil und Beitrag. Hierbei benutzt er einen neuen DB-Eintrag user_viewbirthday.

Der Topic Calendar wiederum wurde von mir um die Anzeige der Geburtstage erweitert mit einem anderen MOD, die vollstädige Erweiterung mal zur Veranschaulichung des Problems:

Code: Alles auswählen

// Birthday Mod for Topic Calendar
// 
function get_birthday(&$events, &$number, $start_date, $end_date, $limit=false, $start=0, $max_limit=-1) 
{ 
   global $template, $lang, $images, $userdata, $board_config, $db, $phpbb_root_path, $phpEx; 

      $sql = "$user_birthday SELECT u.* 
      FROM " . USERS_TABLE . " AS u 
      WHERE u.user_id <> " . ANONYMOUS . " 
         AND u.user_birthday <> 999999 
         AND u.user_viewbirthday = 1 
      ORDER BY username"; 

   if ( !$result = $db->sql_query($sql) ) 
   { 
      message_die(GENERAL_ERROR, 'Could not read user table to get birthday today info', '', __LINE__, __FILE__, $sql); 
   } 

   // get the number of occurences 
   $number = $db->sql_numrows($result); 
   // if limit per page asked, limit the number of results 

   // add birthday events for logged people eyes
   if ($board_config['calendar_birthday'] && isset($lang['Birthday_Calendar']) && isset($userdata['user_birthday']) && ($userdata['user_id'] != ANONYMOUS))
   {
   
   // read users 
   while ($row = $db->sql_fetchrow($result)) 
   { 
      $user_birthday = realdate($lang['DATE_FORMAT'], $row['user_birthday']); 
      $event_day   = realdate('d',$row['user_birthday']);     // birthday_day
      $event_month   = realdate('n',$row['user_birthday']);   // birthday_month
      $start_month = date('m',$start_date); 	      // selected starting-month	
      $end_month = date('m',$end_date); 		      // selected ending-month	

	  // Select only Users having their birthday within the selected month
      if ($start_month ==$event_month) 
       {
	      $user_id      = $row['user_id']; 
	      $username      = $row['username']; 
	
	      $ignore         = $row['user_ignore']; 
	      $friend         = $row['user_friend']; 
	      $always_visible = $row['user_visible']; 
	
	      $username_link = append_sid($phpbb_root_path . "./profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$user_id"); 
	
	      $event_year2   = realdate('Y',$row['user_birthday']); 
	      $start_month   = intval(date('m', $start_date)); 
	      $event_year      = intval(date('Y', $start_date)); 
	      if ($event_month < $start_month) $event_year++; 
	      $event_time = mktime( 0,0,0, $event_month, $event_day, $event_year ); 
	       
	      // avatar 
	      $avatar_display = ( $userdata['user_viewavatar'] && $row['user_allowavatar'] ); 
	      $avatar = ''; 
	      if ( $avatar_display && $row['user_avatar_type'] ) 
	      { 
	         switch( $row['user_avatar_type'] ) 
			{ 
	         case USER_AVATAR_UPLOAD: 
	              $avatar = ( $board_config['allow_avatar_upload'] ) ? '<img src="' . $board_config['avatar_path'] . '/' . $row['user_avatar'] . '" alt="" border="0" />' : ''; 
	         break; 
	         case USER_AVATAR_REMOTE: 
	              $avatar = ( $board_config['allow_avatar_remote'] ) ? '<img src="' . $row['user_avatar'] . '" alt="" border="0" />' : ''; 
	         break; 
	         case USER_AVATAR_GALLERY: 
	              $avatar = ( $board_config['allow_avatar_local'] ) ? '<img src="' . $board_config['avatar_gallery_path'] . '/' . $row['user_avatar'] . '" alt="" border="0" />' : ''; 
	         break; 
			} 
   	      } 

	      // get the users age 
	      $age = $event_year - $event_year2; 
	      if ( intval(substr($user_birthday, 4, 4)) > intval(date('md', $event_time)) ) $age--; 
	      if ($age <= 0) $age = ''; 
	
	
	      $tmp_message = sprintf($lang['Birthday_message'], $username, $avatar, $age); 
	      $message = htmlspecialchars("<table cellspacing='0' cellpadding='2' border='0' width='100%'><tr><td class='row1' nowrap='nowrap'><span class='topictitle'><b>".$lang['Birthday_header']."</b></span><hr /><span class='genmed'>".$tmp_message."</span></td></tr></table>"); 
	      $message = preg_replace("/[\n\r]{1,2}/", '', $message); 
	
	      $new_row = array(); 
	      $new_row['event_id']					= POST_USERS_URL . $user_id; 
	
	      $new_row['event_author_id']			= $user_id; 
	      $new_row['event_author']				= $username; 
	      $new_row['event_time']				= $event_time; 
	
	      $new_row['event_last_author_id']		= ''; 
	      $new_row['event_last_author']			= ''; 
	      $new_row['event_last_time']			= ''; 
	
	      $new_row['event_replies']				= ''; 
	      $new_row['event_views']				= ''; 
	      $new_row['event_type']				= POST_BIRTHDAY; 
	      $new_row['event_vote']				= ''; 
	      $new_row['event_status']				= ''; 
	      $new_row['event_moved_id']			= ''; 
	      $new_row['event_last_id']				= ''; 
	      $new_row['event_forum_id']			= ''; 
	      $new_row['event_forum_name']			= ''; 
	
	      $new_row['event_icon']				= ''; 
	      $new_row['event_title']				= $username; 
	      $new_row['event_short_title']			= $username; 
	      $new_row['event_message']				= $message; 
	      $new_row['event_calendar_time']		= $event_time; 
	      $new_row['event_calendar_duration']	= ''; 
	      $new_row['event_link']				= $username_link; 
	      $new_row['event_txt_class']			= $txt_class; 
	      $new_row['event_type_icon']			= '<img src="' . $images['icon_tiny_profile'] . '" border="0" align="absbottom" hspace="2" />'; 
	      $events[] = $new_row; 
	   } 
	}
  }
}
In diesen Code habe ich nun AND user_viewbirthday = 1 eingesetzt...Du hast nun HIER die Admin-Abfrage eingebaut, indem Du einfach die $sql-Zeile komplett ersetzt mit der aus dem Switch View Birthday Mod für die index.php und da habe ich meine Zweifel...sofern ich das trotz allem falsch sehe, korrigier mich bitte. Ich kann doch hier im Topic Calendar nicht einfach

Code: Alles auswählen

$sql = "$user_birthday SELECT u.* 
      FROM " . USERS_TABLE . " AS u 
      WHERE u.user_id <> " . ANONYMOUS . " 
         AND u.user_birthday <> 999999 
         AND u.user_viewbirthday = 1 
      ORDER BY username";
durch

Code: Alles auswählen

$sql = ($board_config['birthday_check_day']) ? "SELECT user_id, username, user_birthday,user_level FROM " . USERS_TABLE. " WHERE user_birthday!=999999" . ( ($userdata['user_level']==ADMIN) ? " " :" AND user_viewbirthday=1 " ) . "ORDER BY username" :"";
ersetzen...sind doch 2 verschiedene paar Schuhe, oder nicht?

EDIT: Hab's nun nur in der Form versucht das ! wegzulassen, wie weiter oben erwähnt....also nu:

Code: Alles auswählen

" . ( ($userdata['user_level']==ADMIN) ? " " :" AND user_viewbirthday=1 " ) . "
eingefügt und es geht...danke für's tüfteln (auch wenn ich schon am verzweifeln war, das wir hier so missverständlich kommunizierten, seufz)
Zuletzt geändert von schmidtedv am Sa 03.Sep, 2005 19:54, insgesamt 1-mal geändert.
Rettet den Wald, esst mehr Specht!

Forum [ sofern im Beitrag darauf verwiesen :-) ]
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

:hh:
Ich hatte es aber auch mehrfach erwähnt :D
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Antworten