[Gelöst] custom profile fields im PHP-Code auswerten

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
Nuramon
Mitglied
Beiträge: 250
Registriert: 05.02.2012 21:45
Wohnort: Solingen
Kontaktdaten:

[Gelöst] custom profile fields im PHP-Code auswerten

Beitrag von Nuramon »

Huhu (:

Ich knobel jetzt ein paar Stunden schon, hab fleißig gegooglet und hier im Forum gesucht, aber nichts wirkliches gefunden...

Ich möchte gerne die Benutzerdefinierten Profilfelder, die man im phpbb3 ja selbst anlegen kann, im PHP-Code auslesen und auswerten können.
Das hat vor allem zwei Gründe:
1. Ich möchte globalen Zugriff auf ein paar der Profilfelder haben, zum Beispiel Templates abhängig davon generieren oder bestimmte Funktionen verbieten, wenn der Nutzer ein bestimmtes Feld ausgewählt hat.
2. Zum anderen ist es mir nicht möglich, ein Boolean oder Auswahlfeld direkt im Template angezeigt zu bekommen.
Versucht habe ich das so:

Code: Alles auswählen

	<!-- BEGIN custom_fields -->
		<!-- IF custom_fields.PROFILE_FIELD_NAME eq "Das Auswahlfeld" -->
			<!-- DEFINE $MEIN_WERT = '{custom_fields.PROFILE_FIELD_VALUE}' -->
		<!-- ENDIF -->
		{custom_fields.PROFILE_FIELD_NAME}: {custom_fields.PROFILE_FIELD_VALUE}<br />
	<!-- END custom_fields -->
Das obere sollte der Test sein, wie ich gerne oben im Template die Variable global definiert haben wollte, weil ich nicht wusste, wie es im PHP-Code geht. Geht aber nicht, er kommt nicht in das IF.
Die Zeile dadrunter gibt alle Profilfelder aus. Das Gesuchte fehlt dort allerdings, ebenso wie neu angelegte Boolsche- oder Auswahlfelder.

Probiert habe ich auch nach folgender Anleitung:
https://wiki.phpbb.com/Tutorial.Custom_profile_fields

Und vor allem den PHP-Code in die functions.php eingebaut. Das funktionierte aber bei mir gar nicht, aus mir unerfindlichen Gründen.


Deshalb meine Frage am besten mal klar formuliert:
Wie kann ich in der page_header-function oder ähnlichem die Profilfelder auslesen und dann selbst so benutzen, wie ich sie mag, beispielweise als Template-Variablen abspeichern?
Zuletzt geändert von Nuramon am 13.08.2013 23:13, insgesamt 1-mal geändert.
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
Nuramon
Mitglied
Beiträge: 250
Registriert: 05.02.2012 21:45
Wohnort: Solingen
Kontaktdaten:

Re: custom profile fields im PHP-Code auswerten

Beitrag von Nuramon »

Okay, damit auch andere was von haben:

Hab mal in die Datenbank geguckt und mir die Tabelle näher angeschaut. Hab folgendes in die page-header() geschrieben.

Code: Alles auswählen

    // Start Profile fields for global
    $sql = 'SELECT *
        FROM ' . PROFILE_FIELDS_DATA_TABLE . '
        WHERE user_id = ' . $user->data['user_id'];
    $result = $db->sql_query($sql);
    $custprofile = $db->sql_fetchrow($result);
    $db->sql_freeresult($result);
    
    $template->assign_vars(array(
        'VOLLERNAME'            => (isset($custprofile['pf_vollername'])) ? $custprofile['pf_vollername'] : false,
        'GEBURTSDATUM'            => (isset($custprofile['pf_geburtsdatum'])) ? $custprofile['pf_geburtsdatum'] : false,
    ));
    // END Profile fields for global 
Bei mir stehen natürlich noch mehr Felder^^
Denke die Lösung ist sehr rudimentär. Hab versucht durch das isset alle Fehler abzufangen. Sollte das reichen, was ich geschrieben hab?
Und naja, für Mehrfachauswahlen gibts halt nur die ID des Feldes, aber das reicht mir schon.

Denkt ihr das geht so, oder gibt es einen besseren Weg?
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.
Antworten

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