Default Avatar für Gender Mod

Du suchst einen bestimmten Mod, weißt aber nicht genau wo bzw. ob er überhaupt existiert? Wenn dir dieser Artikel nicht weiterhilft, kannst du hier den von dir gewünschten/gesuchten Mod beschreiben ...
Falls ein Mod-Autor eine der Anfragen hier aufnimmt, um einen neuen Mod zu entwickeln, geht's in [3.0.x] Mods in Entwicklung weiter.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Thyron
Mitglied
Beiträge: 302
Registriert: 09.05.2008 11:59

Re: [Suche] Default Avatar für Gender Mod

Beitrag von Thyron »

In den Profilen erscheinen die geschlechtsspezifischen Avatare, in der Mitgliederliste noch nicht.

In der memberlist hab ich nochmal geschaut. Unter prepare profile data is erstmal nichts von Avataren, direkt danach kommt dann im Original aber das, was für die Anzeige in der Mitgliederliste da ist:

Code: Alles auswählen

	// Dump it out to the template

	return array(

		'USER_AVATAR'		=> get_user_avatar($data['user_avatar'], $data['user_avatar_type'], $data['user_avatar_width'], $data['user_avatar_height']),

		'USER_AVATAR_THUMB'	=> ($data['user_avatar']) ? get_user_avatar($data['user_avatar'], $data['user_avatar_type'], ($data['user_avatar_width'] > $data['user_avatar_height']) ? 25 : (25 / $data['user_avatar_height']) * $data['user_avatar_width'], ($data['user_avatar_height'] > $data['user_avatar_width']) ? 25 : (25 / $data['user_avatar_width']) * $data['user_avatar_height']) : '',
Das habe ich dann so erweitert. Vielleicht is da ein Fehler drin? Sonst muss es an einer fehlenden SQL-Abfrage liegen.

Code: Alles auswählen

// Dump it out to the template
	return array(

		'USER_AVATAR'		=> get_user_avatar($data['user_avatar'], $data['user_avatar_type'], $data['user_avatar_width'], $data['user_avatar_height'], $data['user_id'], $data['pf_gender']),

		'USER_AVATAR_THUMB'	=> ($data['user_avatar']) ? get_user_avatar($data['user_avatar'], $data['user_avatar_type'], ($data['user_avatar_width'] > $data['user_avatar_height']) ? 25 : (25 / $data['user_avatar_height']) * $data['user_avatar_width'], ($data['user_avatar_height'] > $data['user_avatar_width']) ? 25 : (25 / $data['user_avatar_width']) * $data['user_avatar_height'], $data['user_id'], $data['pf_gender']) : '',
Deine obige Änderung hab ich gemacht, leider erscheinen die Avatare in den Nachrichten noch nicht. Sicher, dass die Abfrage korrekt ist?
Helmut
Mitglied
Beiträge: 2048
Registriert: 27.12.2002 20:35
Wohnort: Augsburg

Re: [Suche] Default Avatar für Gender Mod

Beitrag von Helmut »

Hallo Thyron,

für die Anzeige der Userliste probiere mal folgendes:

Öffne die memberlist.php und finde darin:

Code: Alles auswählen

    // Dump it out to the template      
und füge folgendes davor ein

Code: Alles auswählen

    if (empty($data['user_avatar']))
    {
        $sql = 'SELECT *
            FROM ' . PROFILE_FIELDS_DATA_TABLE . '
            WHERE user_id = ' . (int) $user_id;
        $result = $db->sql_query($sql);
        $data = $db->sql_fetchrow($result);
        $db->sql_freeresult($result);
    }
 
Damit sollte auch $data['pf_gender'] den passenden Wert enthalten.

Die Änderung in der ucp_pm_viewmessage.php sollte eigentlich gehen, bei mir läuft sie. Ich hatte das vergessen in meiner Anleitung mit einzufügen und habe es jetzt nachgetragen. Bei mir gibt es nur bei einer ausgewählten PM ein Userinfo Feld auf der rechten Seite, bei den Antworten darauf aber nicht. Hast du auch den Cache geleert?

Die functions_profileviews.php muss ich mir erst noch genauer anschauen, aber auf den ersten Blick müssen da auch die SQL Abfragen rein. Sonst sind die Änderungen ähnlich wie bei der memberlist.php zu machen.

Gruß Helmut
Ich bin nicht ganz dicht.... na und.
Thyron
Mitglied
Beiträge: 302
Registriert: 09.05.2008 11:59

Re: [Suche] Default Avatar für Gender Mod

Beitrag von Thyron »

Jetzt kommt da:

Code: Alles auswählen

Fatal error: Call to a member function sql_query() on a non-object in /kunden/221194_22041/webseiten/forum/memberlist.php on line 2104
Das wäre dann diese (neu eingefügte) Zeile:

Code: Alles auswählen

$result = $db->sql_query($sql);
PS: Cache habe ich gelöscht, statt des geschlechtsspezifischen Avatars erscheint in den PM's trotzdem nur ein Textlink "Benutzeravatar".
Helmut
Mitglied
Beiträge: 2048
Registriert: 27.12.2002 20:35
Wohnort: Augsburg

Re: [Suche] Default Avatar für Gender Mod

Beitrag von Helmut »

Hallo Thyron,,

huh ... sollte eigentlich gehen. Gut dann ersetze mal

Code: Alles auswählen

    if (empty($data['user_avatar']))
    {
        $sql = 'SELECT *
            FROM ' . PROFILE_FIELDS_DATA_TABLE . '
            WHERE user_id = ' . (int) $user_id;
        $result = $db->sql_query($sql);
        $data = $db->sql_fetchrow($result);
        $db->sql_freeresult($result);
    }
 
durch

Code: Alles auswählen

   if (empty($data['user_avatar']))
    {
        $sql = 'SELECT *
            FROM ' . PROFILE_FIELDS_DATA_TABLE . "
            WHERE user_id = $user_id";
        $result = $db->sql_query($sql);
        $data = $db->sql_fetchrow($result);
        $db->sql_freeresult($result);
    }
 
Bei den PM's kann ich mir das nicht anschauen, im Testaccount ist keine PM dabei wo ich das sehen kann.

Gruß Helmut
Ich bin nicht ganz dicht.... na und.
Thyron
Mitglied
Beiträge: 302
Registriert: 09.05.2008 11:59

Re: [Suche] Default Avatar für Gender Mod

Beitrag von Thyron »

Dann kommt die gleiche Fehlermeldung. Hab ne PM an den Testaccount geschickt, mit der du es siehst.
Helmut
Mitglied
Beiträge: 2048
Registriert: 27.12.2002 20:35
Wohnort: Augsburg

Re: [Suche] Default Avatar für Gender Mod

Beitrag von Helmut »

Hallo Thyron,

hab den Fehler gefunden, für die SQL Abfrage muss noch folgendes geändert werden:

Öffne die memberlist.php und finde darin:

Code: Alles auswählen

function show_profile($data)
{
    global $config, $auth, $template, $user, $phpEx, $phpbb_root_path;
 
und ersetze durch folgendes:

Code: Alles auswählen

function show_profile($data)
{
    global $db, $config, $auth, $template, $user, $phpEx, $phpbb_root_path;
 
Ich hatte vergessen dass bei der Abfrage ja bei global noch $db mit gebraucht wird, dann sollte es aber gehen.

Bei dem PM'S probiere mal folgendes: Gib in der ucp_pm_viewmessage.php nach der geänderten SQL Abfrage echo $user_row['pf_gender']; ein und schaue was da angezeigt wird.

Gruß Helmut
Ich bin nicht ganz dicht.... na und.
Thyron
Mitglied
Beiträge: 302
Registriert: 09.05.2008 11:59

Re: [Suche] Default Avatar für Gender Mod

Beitrag von Thyron »

Brache beides kein Erfolg. In den Nachrichten keine Veränderung. Bei der memberlist is die Fehlermeldung weg, dafür werden bei avatarlosen Usern nun nicht nur keine Gender-Avatare sondern auch keine Beitragszahlen und Wohnorte usw. mehr angezeigt...
Helmut
Mitglied
Beiträge: 2048
Registriert: 27.12.2002 20:35
Wohnort: Augsburg

Re: [Suche] Default Avatar für Gender Mod

Beitrag von Helmut »

Hallo Thyron,

ok, dann änder mal folgendes ab:

Code: Alles auswählen

    if (empty($data['user_avatar']))
    {
        $sql = 'SELECT *
            FROM ' . PROFILE_FIELDS_DATA_TABLE . '
            WHERE user_id = ' . (int) $user_id;
        $result = $db->sql_query($sql);
        $data = $db->sql_fetchrow($result);
        $db->sql_freeresult($result);
    }
 
nach

Code: Alles auswählen

    if (empty($data['user_avatar']))
    {
        $sql = 'SELECT *
            FROM ' . PROFILE_FIELDS_DATA_TABLE . '
            WHERE user_id = ' . (int) $user_id;
        $result = $db->sql_query($sql);
        $data_pf = $db->sql_fetchrow($result);                
        $data['pf_gender'] = $data_pf['pf_gender'];                
    }
 
Aber jetzt sollte es mit der Userliste gehen ..... :oops:

Gruß Helmut
Ich bin nicht ganz dicht.... na und.
Thyron
Mitglied
Beiträge: 302
Registriert: 09.05.2008 11:59

Re: [Suche] Default Avatar für Gender Mod

Beitrag von Thyron »

Dann erscheinen die Avatare immer noch nocht :-?

Hab ich die Teile mit user_id und pf_gender beim Avatar Thumb überhaupt richtig eingesetzt? Hab das ja oben gepostet. Vielleicht is da ein Fehler.

Hier is übrigens der Mod dazu. Is eigentlich nur die eine Ergänzung in der Memberlist und eine css-Datei.

Wir können das auch erstmal auf Seite legen. Vielleicht fällt in der Zwischenzeit Mirijam oder jemand andrem ja noch ein Fehler auf. Wenn die Dinger in der Mitgliederliste nicht angezeigt werden, is nicht so dramatisch. In den Nachrichten und der Profilbesucherstatistik wäre wichtiger.
Helmut
Mitglied
Beiträge: 2048
Registriert: 27.12.2002 20:35
Wohnort: Augsburg

Re: [Suche] Default Avatar für Gender Mod

Beitrag von Helmut »

Hallo Thyron,

also das mit den Nachrichten scheint ein Problem mit der SQL Abfrage zu sein. Probiere mal folgendes aus:

Öffne die includes/ucp/ucp_pm_viewmessage.php und finde darin die geänderte Abfrage:

Code: Alles auswählen

   if (empty($user_row))
    {
        $sql = 'SELECT *
            FROM ' . USERS_TABLE . ' u
            LEFT JOIN ' . PROFILE_FIELDS_DATA_TABLE . ' pf
                ON pf.user_id = u.user_id            
            WHERE u.user_id = ' . (int) $user_id;
        $result = $db->sql_query($sql);
        $user_row = $db->sql_fetchrow($result);
        $db->sql_freeresult($result);
    }
  
und ersetze sie durch folgendes:

Code: Alles auswählen

    if (empty($user_row))
    {
        $sql = 'SELECT *
            FROM ' . USERS_TABLE . '
            WHERE user_id = ' . (int) $user_id;
        $result = $db->sql_query($sql);
        $user_row = $db->sql_fetchrow($result);
        $db->sql_freeresult($result);
    }

        $sql = 'SELECT *
            FROM ' . PROFILE_FIELDS_DATA_TABLE . '
             WHERE user_id = ' . (int) $user_id;
        $result = $db->sql_query($sql);
        $user_pf = $db->sql_fetchrow($result);
        $db->sql_freeresult($result);
 
finde etwas später:

Code: Alles auswählen

$user_row['avatar'] = ($user->optionget('viewavatars')) ? get_user_avatar($user_row['user_avatar'], $user_row['user_avatar_type'], $user_row['user_avatar_width'], $user_row['user_avatar_height'], $user_row['user_id'], $user_row['pf_gender']) : ''; 
und ersetze sie durch folgendes:

Code: Alles auswählen

$user_row['avatar'] = ($user->optionget('viewavatars')) ? get_user_avatar($user_row['user_avatar'], $user_row['user_avatar_type'], $user_row['user_avatar_width'], $user_row['user_avatar_height'], $user_row['user_id'], $user_pf['pf_gender']) : ''; 
Jetzt müsste es aber bei den Nachrichten klappen mit der Anzeige. Ich habe die Abfragen nun getrennt, damit immer diese Tabelle ausgelesen wird.

Die Profilbesucherstatistik ist deutlich schwieriger und mit erheblich mehr Zeitaufwand zu machen, da hier die Abfragen für die Avatare anders aufgebaut sind. Dafür habe ich aber im Augenblick nicht die nötige Zeit.

Warum das bei der Userliste immer noch nicht geht, da bin ich langsam echt überfragt. Bei meinen Versuchen hatte er immer dazu die Felder mit ausgelesen.

Gruß Helmut
Ich bin nicht ganz dicht.... na und.
Antworten

Zurück zu „[3.0.x] Mod Suche/Anfragen“