Friend List Mod erweitern

In diesem Forum kann man Fragen zur Programmierung stellen, die bei der Entwicklung von Mods für phpBB 3.0.x oder dem Modifizieren des eigenen Forums auftauchen.
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.
Antworten
Benutzeravatar
Maugrim
Mitglied
Beiträge: 461
Registriert: 16.11.2009 20:22

Friend List Mod erweitern

Beitrag von Maugrim »

Hallo!

Ich habe mir einen Mod installiert, um in der memberlist_view.html (also dem Profil der User) die Freunde sowie deren Avatare anzeigen zu lassen

Nun würde ich gerne, sofern das geht, noch einige Inhalte aus custom.profile Fields dazu angeben

Wo die custom.profile Fields abgelegt sind habe ich schon gefunden.

in der Datenbank unter phpbb_profile_fields_data

Ich würde gerne 2 Profile Feld Angaben der entsprechenden User zusätlich auslesen und unter dem Avatar anzeigen.
Wie muss ich den unteren Code erweitern, damit alles gemeinsam ausgelesen und angezeigt wird??
Kann mir da vielleicht jemand bitte helfen? :)

Die Felder heißen pf_char_1 und pf_char_2

Code: Alles auswählen

   $user_id = request_var('u', 0);
   $start   = request_var('start', 0);
   $limit = request_var('limit', intval($config['number_friends']));
   $sql = $db->sql_build_query('SELECT', array(
   'SELECT'   => 'u.user_avatar, u.username, u.user_colour, u.user_avatar_type, u.user_avatar_width, u.user_avatar_height, z.user_id, u.user_regdate, u.user_lastvisit, user_posts, z.zebra_id, z.friend',
   'FROM'      => array(
      USERS_TABLE      => 'u',
   ),
   'LEFT_JOIN'   => array(
      array(
         'FROM'   => array(ZEBRA_TABLE => 'z'),
         'ON'   => 'u.user_id=z.zebra_id'      
      )
   ),
      'WHERE'      => " u.user_id=z.zebra_id AND z.friend = 1 AND z.user_id = $user_id",
      'ORDER_BY'   => 'z.zebra_id'
   ));
   $result = $db->sql_query_limit($sql, $limit, $start);
         
   while($row_av = $db->sql_fetchrow( $result ))
   {
      $avatar_friend = get_user_avatar($row_av['user_avatar'], $row_av['user_avatar_type'], $row_av['user_avatar_width'],       $row_av['user_avatar_height']);
      $friend_id = $row_av['zebra_id'];
      $avatar_size_size = $config['friend_avatar_size'];

      $template->assign_block_vars('fri',array(

            'FRI_ID'            => $row_av['zebra_id'],
            'FRI_AV'            => $avatar_friend,
            'USERNAME'         => $row_av['username'],
            'WIDTH'            => $config['friend_avatar_size'],
            'USER_COLOR'       => $row_av['user_colour'],
            'AV_LINK'         => append_sid("{$phpbb_root_path}memberlist.$phpEx", "mode=viewprofile&u=$friend_id"), 
            'FRI_AV_THUMB'      =>   ($row_av['user_avatar']) ? get_user_avatar($row_av['user_avatar'], $row_av['user_avatar_type'], ($row_av['user_avatar_width'] > $row_av['user_avatar_height']) ? $avatar_size_size : ($avatar_size_size / $row_av['user_avatar_height']) * $row_av['user_avatar_width'], ($row_av['user_avatar_height'] > $row_av['user_avatar_width']) ? $avatar_size_size : ($avatar_size_size / $row_av['user_avatar_width']) * $row_av['user_avatar_height']) : '',
            'ONLINE_USER'      => is_user_online($row_av['zebra_id'])
));
}    
Benutzeravatar
Maugrim
Mitglied
Beiträge: 461
Registriert: 16.11.2009 20:22

Re: Friend List Mod erweitern

Beitrag von Maugrim »

SorrY für den Doppelpost:

Ich wollte noch eine SQL Abfrage reingeben, um abzufragen OB der AUFGERUFENE User Freunde hat
Wenn er Freunde hat, will ich folgendes

Code: Alles auswählen

<!-- IF HAS_FRIENDS -->
<h6>FREUNDE</h6>
<!-- ENDIF -->
im Template anzeigen


Ich habe mich an ähnlichen SQL Abfragen orientiert...und oh Freude :) Es klappt sogar!

Code: Alles auswählen

    $sql = 'SELECT user_id
			FROM ' . ZEBRA_TABLE . "
			WHERE user_id = $user_id";
      
		$result = $db->sql_query($sql);
		$row = $db->sql_fetchrow($result);
    $has_friends = ($row['user_id']) ? true : false;
		$db->sql_freeresult($result);
		$template->assign_vars(array(
			'HAS_FRIENDS'	=> $has_friends,
    ));
Ich frage nur noch sicherheitshalber: IST diese Abfrage in Ordnung? Oder wäre sie anders geschrieben besser?
Benutzeravatar
Nuramon
Mitglied
Beiträge: 250
Registriert: 05.02.2012 21:45
Wohnort: Solingen
Kontaktdaten:

Re: Friend List Mod erweitern

Beitrag von Nuramon »

Maugrim hat geschrieben:

Code: Alles auswählen

    $sql = 'SELECT user_id
			FROM ' . ZEBRA_TABLE . "
			WHERE user_id = $user_id";
      
		$result = $db->sql_query($sql);
		$row = $db->sql_fetchrow($result);
    $has_friends = ($row['user_id']) ? true : false;
		$db->sql_freeresult($result);
		$template->assign_vars(array(
			'HAS_FRIENDS'	=> $has_friends,
    ));
Ich frage nur noch sicherheitshalber: IST diese Abfrage in Ordnung? Oder wäre sie anders geschrieben besser?
Neee, das geht schon so, wobei ich schon bei dem Result abgefragt hätte, ob überhaupt ein positives Ergebnis zurückkommt.
Ich bin mich ziemlich sicher, dass $result nämlich false ist, wenn keine Datensätze zurückkommen.
Denke das macht aber keinen wirklichen Unterschied.
Passt also so (:
Das Pinke Forum
Das Pinke Forum - werde Teil einer freundlichen Community, die dir bei Fragen rund um Liebe, Sex, Ernährung, Schule oder bei Problemen aller Art zur Seite steht! Verfasse Beiträge, erstelle Threads und lern nette Leute kennen; kostenlos und toll betreut.
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: Friend List Mod erweitern

Beitrag von Miriam »

Anm.:
$result als Objekt der Klasse mysqli_result entält immer Daten, wenn es eine gültige Abfrage / Verbindung zur DB gibt.
Du kannst aber direkt schauen, ob $result['num_rows'] > 0 ist; von daher hättest Du eine Zeile eingespart.

Auf dem ersten Blick sieht es so aus, als sei HAS_FRIENDS ein Ja / Nein - Schalter. Sollte dem so sein und Du auch in der phpBB3 Terminologie arbeiten wollen, wäre der Variablenname S_HAS_FRIENDS "passender".
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Benutzeravatar
Maugrim
Mitglied
Beiträge: 461
Registriert: 16.11.2009 20:22

Re: Friend List Mod erweitern

Beitrag von Maugrim »

also statt

Code: Alles auswählen

      $result = $db->sql_query($sql);
      $row = $db->sql_fetchrow($result);
das hier

Code: Alles auswählen

$result['num_rows'] > 0;
?
Sollte dem so sein und Du auch in der phpBB3 Terminologie arbeiten wollen, wäre der Variablenname S_HAS_FRIENDS "passender".
Danke für den Hinweis :)
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: Friend List Mod erweitern

Beitrag von Miriam »

Wie mein Vorredner schon ausführte: Du kannst den Code so lassen.
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Benutzeravatar
Maugrim
Mitglied
Beiträge: 461
Registriert: 16.11.2009 20:22

Re: Friend List Mod erweitern

Beitrag von Maugrim »

Auch gut :)
Freut mich, dass ich es alleine geschafft habe 8)

Nur die "Frage" im ersten Beitrag, schaffe ich nicht alleine... :(
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: Friend List Mod erweitern

Beitrag von Miriam »

Hast Du mal das Forum nach Zusätzliche Profil-Felder in Mitgliederprofilen anzeigen durchsucht?
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Benutzeravatar
Maugrim
Mitglied
Beiträge: 461
Registriert: 16.11.2009 20:22

Re: Friend List Mod erweitern

Beitrag von Maugrim »

Ich möchte ja die Zusätzlichen Profilfelder der FREUNDE im Profilfeld anzeigen (also 2 davon)

die EIGENEN Profilfelder der User habe ich schon im Profil der entsprechenden User
Aber wenn diese User noch Freunde in ihre Freundesliste adden, dann möchte ich nicht nur den Namen und den Avatar des Freundes anzeigen, sondern auch diese zwei Profilfelder :oops:



Um das zu bewerkstelligen müsste ich ja den Code im ersten Beitrag ändern, denn dieser liest ja die Freunde aus und übergibt diese dann an das Template
also muss der Code zusätzlich noch die beiden Werte aus den entsprechenden custom.profile FIELDS auslesen


oder nicht? ;)
Benutzeravatar
Maugrim
Mitglied
Beiträge: 461
Registriert: 16.11.2009 20:22

Re: Friend List Mod erweitern

Beitrag von Maugrim »

Ich steh hier noch auf dem Schlauch.

im ersten Beitrag habe ich eine SQL Abfrage, die ich erweitern möchte, dass nicht nur Avatar und Name eines Freundes ausgelesen und angezeigt wird, sondern auch 2 Custom Profile Fields

kann mir da vielleicht jemand helfen?? :-?
Antworten

Zurück zu „[3.0.x] Mod Bastelstube“