News:

Want to get involved in developing SMF, then why not lend a hand on our github!

Main Menu

Avatar für eine Gruppe ausblenden

Started by Tom64, May 14, 2012, 03:13:27 AM

Previous topic - Next topic

Tom64

Hallo zusammen
Ich habe in meinem Forum 5 Reguläre Gruppen.
Nun möchte ich das eine Reguläre Gruppe keine Avatare der anderen Mitglieder sehen kann.
Vielleicht hilft ja die Einstellung im Profil weiter. Dort kann ja jeder die Avatare ausblenden.

Vielen Dank für eure Hilfe.

Tom64

Nachtrag : Es geht um das SMF 1.1.16
Meine Frage wäre auch was für dein Forum ?
Schreib es drunter. Wenn viele die Antwort wollen, haben wir vielleicht mehr Glück  :)

Danke an alle die die hier helfen  :)

NetFlag

Wen die Avatare der anderen stören kann das im Profil deaktivieren. Das wäre aber freigestellt. Ich verstehe deine Formulierung so, das diese eine bestimmte Gruppe auf keinen Fall die Avatare der anderen sehen soll. Das widerum geht nicht mit Boardmitteln. Da wirst du Hand an den Code der Display.template.php legen müssen.

Tom64

#2
Richtig, eine Gruppe soll keine Avatare sehen  :)
Wenn du mir nun noch sagen könntest wie und wo ich was eintragen muss, wäre ich seeeehr dankbar.

Natürlich darf mir das auch jeder andere erklären  ;)
Meine Frage wäre auch was für dein Forum ?
Schreib es drunter. Wenn viele die Antwort wollen, haben wir vielleicht mehr Glück  :)

Danke an alle die die hier helfen  :)

NetFlag

Hallo Tom64,
scheint so das sich niemand hilfreich vordrängeln mag.  ;) Ich selbst nutze die 1er Version nicht. Trotzdem habe ich mir den Code kurz angesehen. Ich denke folgendes sollte funktionieren. Finde in Display.template.php:
// Show avatars, images, etc.?
if (!empty($settings['show_user_images']) && empty($options['show_no_avatars']) && !empty($message['member']['avatar']['image']))
echo '
<div style="overflow: auto; width: 100%;">', $message['member']['avatar']['image'], '</div><br />';

ersetzen mit:
// Show avatars, images, etc.?
if (!empty($settings['show_user_images']) && empty($options['show_no_avatars']) && !empty($message['member']['avatar']['image']))
            if ($context['user']['group'] != X) {
echo '
<div style="overflow: auto; width: 100%;">', $message['member']['avatar']['image'], '</div><br />';
}


Das X bitte mit der gewünschten GroupID ersetzen. Nicht getestet. Viel Erfolg!

Tom64

#4
Danke für deine Arbeit :)

Habe den alten Code mit deinem ersetzt ... und sehe weiterhin Bilder.

Hat das vielleicht noch jemand getestet ?



Nachtrag:
Es tritt folgender Fehler auf:

8: Undefined index: group
Datei: /var/customers/webs/ichundihr/Forum/Themes/default/Display.template.php (main sub template - eval?)
Zeile: 353
Meine Frage wäre auch was für dein Forum ?
Schreib es drunter. Wenn viele die Antwort wollen, haben wir vielleicht mehr Glück  :)

Danke an alle die die hier helfen  :)

NetFlag

Dann ist die Abfrage group nicht bekannt (es gibt nur id_group). Nützt aber alles nichts. Die Gruppenzugehörigkeit wird nach nochmaliger Betrachtung ohnehin nicht abgefragt. UserID ja, GroupID nein. Da muss dann noch eine Datenbankabfrage eingebaut werden. Vieleicht denk ich auch grad zu kompliziert und es gibt eine ganz einfache Lösung.  ???

Tom64

#6
Du darfst denken wie du möchtest   ;D ;D
Schön wäre wenn es am Ende funktionieren würde, da es für mein Forum wichtig ist.

Alle anderen dürfen hier gern mitmachen ... Vorschläge sind sehr willkommen.  8)

Vielen Dank an alle  :)



Ich selber habe leider wenig (sehr,sehr wenig) Ahnung vom Programmieren.
Ich dachte da an die  ManagePermissions.php. Lag ich da sooo falsch ?
Meine Frage wäre auch was für dein Forum ?
Schreib es drunter. Wenn viele die Antwort wollen, haben wir vielleicht mehr Glück  :)

Danke an alle die die hier helfen  :)

Tom64


Hey NetHunter ... ich brauche deine Ideen   8)

Scheinst der Einzige zu sein der welche hat   ;D

Brauche das wirklich dringend ...   :(
Meine Frage wäre auch was für dein Forum ?
Schreib es drunter. Wenn viele die Antwort wollen, haben wir vielleicht mehr Glück  :)

Danke an alle die die hier helfen  :)

NetFlag

Hallo Tom64,
ich denke noch mal intensiver. Da uns die id_group im Display Template standardmäßig verwehrt bleibt müssen wir uns des Userprofils bedienen. Also globalisieren. Versuch einfach mal folgenden Code:
global $user_profile;
$user_id = $context['user']['id'];

// Show avatars, images, etc.?
if (!empty($settings['show_user_images']) && empty($options['show_no_avatars']) && !empty($message['member']['avatar']['image']))
            if ($user_profile[$user_id]['id_group'] != X) {
echo '
<div style="overflow: auto; width: 100%;">', $message['member']['avatar']['image'], '</div><br />';
}


Hoffentlich klappt das so.

Tom64


Leider nicht   :(

So schwer habe ich mir das nicht vorgestellt.
Ich dachte man gibt den Gruppennamen an und sagt "du nicht!"   ;D ;D
Meine Frage wäre auch was für dein Forum ?
Schreib es drunter. Wenn viele die Antwort wollen, haben wir vielleicht mehr Glück  :)

Danke an alle die die hier helfen  :)

feline

Versuch mal das ..

// Show avatars, images, etc.?
global $user_info;
$hideGrp = ##;
if (!in_array($hideGrp, $user_info['groups']) && !empty($settings['show_user_images']) && empty($options['show_no_avatars']) && !empty($message['member']['avatar']['image']))
echo '
<div style="overflow: auto; width: 100%;">', $message['member']['avatar']['image'], '</div><br />';

bei $hideGrp = ## ersetzt du die ## durch die nummer der Gruppe

Tom64

Teilerfolg

Im Forum sehe ich keine Avatare mehr.
Im Profil sind die Avatare zu sehen. Auch in der Mitgliederliste (Avatar on Member List).

Trotzdem Danke feline
Meine Frage wäre auch was für dein Forum ?
Schreib es drunter. Wenn viele die Antwort wollen, haben wir vielleicht mehr Glück  :)

Danke an alle die die hier helfen  :)

feline

Quote from: Tom64 on May 23, 2012, 10:07:01 AM
Teilerfolg

Im Forum sehe ich keine Avatare mehr.
Im Profil sind die Avatare zu sehen. Auch in der Mitgliederliste (Avatar on Member List).
Dann musst du wohl selbiges in der Profile.template.php und der Memberlist.template.php machen.
Ich habe kein smf 1.1.6 .. da must du selber mal schauen .. dürfte nun aber nicht zu schwer sein, oder  ;)

Tom64

Huhuu feline,

für jemanden der sich mit diesen Codes gut auskennt, ist das sicher kein Problem.
Für mich, der deinen Code nur kopiert und einfügt, sieht das anders auch  8)
Da ist nichts was ich mal eben ersetzen könnte.

In der Memberlist finde ich ein mal das Wort avatar ... in der Profile sehr häufig.
Aber eben nicht das was ich wie vorher beschrieben ersetzen könnte.

Mein Wissen ist dafür leider nicht ausreichend  :-[

Meine Frage wäre auch was für dein Forum ?
Schreib es drunter. Wenn viele die Antwort wollen, haben wir vielleicht mehr Glück  :)

Danke an alle die die hier helfen  :)

feline

Na .. dann muss ich mal schauen ob ich eine 1.1.6 mal installiere .. geht aber nicht von heut auf morgen

Tom64


WOW !!!

So viel Einsatz hätte ich nicht erwartet. Vielen Dank !!!!!!

Ich hätte auch lieber die 2er Version. Aber das wird erst mal nichts.

Auf jeden Fall finde ich deinen Einsatz SEHR lobenswert !
Meine Frage wäre auch was für dein Forum ?
Schreib es drunter. Wenn viele die Antwort wollen, haben wir vielleicht mehr Glück  :)

Danke an alle die die hier helfen  :)

NetFlag

Avatare in der Memberliste sind aber kein Standard. Da ich ebenso wie Feline keine 1.1.16 installiert habe, kann ich diese MOD auch nicht nachvollziehen. Die Codeänderung in Profil.template.php sollte folgendermaßen zum Erfolg führen:
Finde:
// Now print the second column where the members avatar/text is shown.
echo '
<td class="windowbg" valign="middle" align="center" width="150">
', $context['member']['avatar']['image'], '<br /><br />
', $context['member']['blurb'], '
</td>
</tr>';

ersetzen mit:
// Now print the second column where the members avatar/text is shown.
        global $user_info;
$hideGrp = ##;
if (!in_array($hideGrp, $user_info['groups'])
echo '
<td class="windowbg" valign="middle" align="center" width="150">
', $context['member']['avatar']['image'], '<br /><br />
', $context['member']['blurb'], '
</td>
</tr>';

Tom64


Das ergibt leider eine weiße Seite "Template Parse Error!"

Aber ein Bild sehe ich so natürlich auch nicht  ;D  ;D  8)
Meine Frage wäre auch was für dein Forum ?
Schreib es drunter. Wenn viele die Antwort wollen, haben wir vielleicht mehr Glück  :)

Danke an alle die die hier helfen  :)

feline

setzen mit:

// Now print the second column where the members avatar/text is shown.
        global $user_info;
$hideGrp = ##;
echo '
<td class="windowbg" valign="middle" align="center" width="150">
', (!in_array($hideGrp, $user_info['groups']) ? $context['member']['avatar']['image'] : ''), '<br /><br />
', $context['member']['blurb'], '
</td>
</tr>';

;)

Tom64


Was soll ich sagen ... funktioniert  ;D ;D ;D ;D

Suuuuuuuuper und dankeeeee :)


Nun fehlt mir nur noch die Lösung für die Mitgliederliste (MOD - Avatar on Member List)

Wenn das auch noch klappen würde, wäre ich so was von glücklich   ;)
Meine Frage wäre auch was für dein Forum ?
Schreib es drunter. Wenn viele die Antwort wollen, haben wir vielleicht mehr Glück  :)

Danke an alle die die hier helfen  :)

Advertisement: