You are not logged in.

1

Sunday, May 20th 2012, 5:38pm

Text auf Mitgliederseite durch Bild ersetzen

Hi zusammen.

Ich hab für Benutzer ein Benutzerprofilfeld mit dem Feldtyp "Select" eingerichtet, sprich die Auswahl ist eingeschränkt. Das Profilfeld wird auch in der Mitgliederliste angezeigt. Jetzt möchte ich anstatt des Textes aus dem Selectfeld gerne ein Bild anzeigen lassen. Ich habe schon im ACP versucht das Bild als HTML-Code in die Selectbox einzubauen, aber das schlägt total fehl. Hier wird einfach nur ein Teil des HTML Codes als Auswahl dargestellt. Kann man die Ausgabe von Benutzerprofilfeldern einfach mit str_replace bearbeiten? Und wenn ja, wo genau müsste ich für die Mitgliederseite den Code einbauen?

Schonmal vielen lieben Dank für eure Hilfe! :)

2

Monday, May 21st 2012, 1:56pm

Hey,
ich hab das Problem selbst lösen können. Der zuständige Teil befindet sich wie zu erwarten in der wcf/lib/page/MembersListPage.class.php. In Zeile 311 beginnen die "user options".

PHP Source code

1
2
3
4
5
// user options
default:
$userData[$field] = '';
$option $this->userOptions->getOptionValue($field$user);
if (!$protectedProfile && $option) {


Nach der if-Abfrage kann man ein eigenes Array erstellen, in dem man festlegt welche Teile ersetzt werden sollen.

PHP Source code

1
2
3
4
$mein_array = array (
"Bild 1"    => '<img src="http://deine-domain.de/bild1.jpg" alt="Bild 1">',
"Bild 2"    => '<img src="http://deine-domain.de/bild2.jpg" alt="Bild 2">'
);


Die darauffolgende Zeile muss man nun natürlich noch etwas erweitern, damit das Array berücksichtigt wird und die Ausgaben auch wirklich umgeschrieben werden. Dafür eignet sich meiner Meinung nach die Funktion "strtr" sehr gut.

PHP Source code

1
2
$userData[$field] = strtr($option['optionValue'],$mein_array);
}


Damit ist es also kein Problem mehr Texte durch Bilder zu ersetzen.