Simple Machines Community Forum

SMF Support => Language Specific Support => Hilfe zu SMF (German) => Topic started by: Tom64 on May 14, 2012, 03:13:27 AM

Title: Avatar für eine Gruppe ausblenden
Post by: Tom64 on May 14, 2012, 03:13:27 AM
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
Title: Re: Avatar für eine Gruppe ausblenden
Post by: NetFlag on May 14, 2012, 01:44:50 PM
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.
Title: Re: Avatar für eine Gruppe ausblenden
Post by: Tom64 on May 14, 2012, 05:04:24 PM
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  ;)
Title: Re: Avatar für eine Gruppe ausblenden
Post by: NetFlag on May 15, 2012, 03:00:47 PM
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!
Title: Re: Avatar für eine Gruppe ausblenden
Post by: Tom64 on May 15, 2012, 05:28:10 PM
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
Title: Re: Avatar für eine Gruppe ausblenden
Post by: NetFlag on May 16, 2012, 03:32:35 PM
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.  ???
Title: Re: Avatar für eine Gruppe ausblenden
Post by: Tom64 on May 16, 2012, 05:09:06 PM
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 ?
Title: Re: Avatar für eine Gruppe ausblenden
Post by: Tom64 on May 21, 2012, 02:04:59 PM

Hey NetHunter ... ich brauche deine Ideen   8)

Scheinst der Einzige zu sein der welche hat   ;D

Brauche das wirklich dringend ...   :(
Title: Re: Avatar für eine Gruppe ausblenden
Post by: NetFlag on May 22, 2012, 03:47:27 PM
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.
Title: Re: Avatar für eine Gruppe ausblenden
Post by: Tom64 on May 22, 2012, 10:13:26 PM

Leider nicht   :(

So schwer habe ich mir das nicht vorgestellt.
Ich dachte man gibt den Gruppennamen an und sagt "du nicht!"   ;D ;D
Title: Re: Avatar für eine Gruppe ausblenden
Post by: feline on May 22, 2012, 11:29:56 PM
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
Title: Re: Avatar für eine Gruppe ausblenden
Post by: 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).

Trotzdem Danke feline
Title: Re: Avatar für eine Gruppe ausblenden
Post by: feline on May 23, 2012, 12:00:03 PM
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  ;)
Title: Re: Avatar für eine Gruppe ausblenden
Post by: Tom64 on May 23, 2012, 12:17:38 PM
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  :-[

Title: Re: Avatar für eine Gruppe ausblenden
Post by: feline on May 23, 2012, 12:46:52 PM
Na .. dann muss ich mal schauen ob ich eine 1.1.6 mal installiere .. geht aber nicht von heut auf morgen
Title: Re: Avatar für eine Gruppe ausblenden
Post by: Tom64 on May 23, 2012, 12:55:33 PM

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 !
Title: Re: Avatar für eine Gruppe ausblenden
Post by: NetFlag on May 23, 2012, 02:58:04 PM
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>';
Title: Re: Avatar für eine Gruppe ausblenden
Post by: Tom64 on May 24, 2012, 09:13:31 AM

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

Aber ein Bild sehe ich so natürlich auch nicht  ;D  ;D  8)
Title: Re: Avatar für eine Gruppe ausblenden
Post by: feline on May 24, 2012, 10:29:19 AM
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>';

;)
Title: Re: Avatar für eine Gruppe ausblenden
Post by: Tom64 on May 24, 2012, 12:45:14 PM

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   ;)
Title: Re: Avatar für eine Gruppe ausblenden
Post by: NetFlag on May 24, 2012, 02:51:45 PM
Quote from: Tom64 on May 24, 2012, 09:13:31 AM

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

Aber ein Bild sehe ich so natürlich auch nicht  ;D  ;D  8)

Tja, so ist das mit Schüssen aus der Hüfte. Ich sollte es lassen. Sorry für die unnötigen Maßnahmen.
Title: Re: Avatar für eine Gruppe ausblenden
Post by: Tom64 on May 24, 2012, 03:11:29 PM

NetHunter ... ich bin dir sehr dankbar für deine Hilfen.

Du solltest auf keinen Fall damit aufhören uns Unwissende zu unterstützen.

Leute wie dich brauchen wir.

Leute die mir schreiben "lernen zu Programmieren" waren weit weniger hilfreich.

Und ... es kommen sicher mehr Fragen von mir. Bleib an meiner Seite   ;D  ;)
Title: Re: Avatar für eine Gruppe ausblenden
Post by: feline on May 24, 2012, 03:15:50 PM
Quote from: Tom64 on May 24, 2012, 12:45:14 PM
Nun fehlt mir nur noch die Lösung für die Mitgliederliste (MOD - Avatar on Member List)
Da müsstest du mal einen link zu dem mod posten ...
Title: Re: Avatar für eine Gruppe ausblenden
Post by: Tom64 on May 24, 2012, 03:26:49 PM
Habe ich vergessen ... sorry

http://custom.simplemachines.org/mods/index.php?mod=775

Title: Re: Avatar für eine Gruppe ausblenden
Post by: feline on May 24, 2012, 03:50:17 PM
In der Memberlist.template.php finde:

// Assuming there are members loop through each one displaying their data.
if (!empty($context['members']))
{
foreach ($context['members'] as $member)


und ersetze durch;

// Assuming there are members loop through each one displaying their data.
if (!empty($context['members']))
{
global $user_info;
$hideGrp = ##;
if(in_array($hideGrp, $user_info['groups']))
$member['avatar']['image'] = '';

foreach ($context['members'] as $member)
Title: Re: Avatar für eine Gruppe ausblenden
Post by: Tom64 on May 24, 2012, 04:06:19 PM
Hmmmm ... so steht das bei mir nicht.
Bevor ich etwas falsch mache, hier mal mein Code ...

   // Assuming there are members loop through each one displaying their data.
   if (!empty($context['members']))
   {
      foreach ($context['members'] as $member) if($member['id'] != 2)
         echo '
      <tr style="text-align: center;"', empty($member['sort_letter']) ? '' : ' id="letter' . $member['sort_letter'] . '"', '>
         <td class="windowbg2">
            ', $context['can_send_pm'] ? '<a href="' . $member['online']['href'] . '" title="' . $member['online']['text'] . '">' : '', $settings['use_image_buttons'] ? '<img src="' . $member['online']['image_href'] . '" alt="' . $member['online']['text'] . '" align="middle" />' : $member['online']['label'], $context['can_send_pm'] ? '</a>' : '', '
         </td>
         <td class="windowbg" align="center">', $member['gender']['image'], '</td>
         <td class="windowbg" align="left">', $member['link'], '</td>
               
         <td class="windowbg2">', $member['avatar']['image'], '</td>
         <td class="windowbg2">', $member['hide_email'] ? '' : '<a href="mailto:' . $member['email'] . '"><img src="' . $settings['images_url'] . '/email_sm.gif" alt="' . $txt[69] . '" title="' . $txt[69] . ' ' . $member['name'] . '" /></a>', '</td>
         <td class="windowbg">', $member['website']['url'] != '' ? '<a href="' . $member['website']['url'] . '" target="_blank"><img src="' . $settings['images_url'] . '/www.gif" alt="' . $member['website']['title'] . '" title="' . $member['website']['title'] . '" /></a>' : '', '</td>
         <td class="windowbg2">', $member['icq']['link'], '</td>
         <td class="windowbg2">', $member['aim']['link'], '</td>
         <td class="windowbg2">', $member['yim']['link'], '</td>
         <td class="windowbg2">', $member['msn']['link'], '</td>
         <td class="windowbg" align="left">', empty($member['group']) ? $member['post_group'] : $member['group'], '</td>
         <td class="windowbg" align="left">', $member['registered_date'], '</td>
         <td class="windowbg2" width="15">', $member['posts'], '</td>
         <td class="windowbg" width="100" align="left">
            ', $member['posts'] > 0 ? '<img src="' . $settings['images_url'] . '/bar.gif" width="' . $member['post_percent'] . '" height="15" alt="" />' : '', '
         </td>
      </tr>';
   }
Title: Re: Avatar für eine Gruppe ausblenden
Post by: feline on May 24, 2012, 07:28:01 PM
Quote from: Tom64 on May 24, 2012, 04:06:19 PM
Hmmmm ... so steht das bei mir nicht.
Bevor ich etwas falsch mache, hier mal mein Code ...

   // Assuming there are members loop through each one displaying their data.
   if (!empty($context['members']))
   {
      foreach ($context['members'] as $member) if($member['id'] != 2)
         echo '
      <tr style="text-align: center;"', empty($member['sort_letter']) ? '' : ' id="letter' .
Da schein etwas eingebaut zu sein, was nicht im original code vorhanden ist ...
das hier ...  if($member['id'] != 2)
Hast du weitere mods installiert?
Auf jeden fall muss der code  den ich dir geschrieben habe zwischen
   if (!empty($context['members']))
   {

und
      foreach ($context['members'] as $member)

das andere kannst du erst mal ignorieren.
Ausserdem .. man macht vorher immer ein backup der datei  ;)
Title: Re: Avatar für eine Gruppe ausblenden
Post by: DieNeue on May 25, 2012, 12:39:15 AM
Als Gast habe ich das Thema mit Interesse verfolgt und alles ausprobiert... :D

Für mich stellt es aktuell noch ein "Problem" dar, dass die unberechtigte Gruppe noch nicht einmal die vorgegebenen Forum-Avatare sehen kann und somit keine Veränderung beim Hochladen eines eigenen Bildes erkennen kann.

Lässt sich das umgehen?

Title: Re: Avatar für eine Gruppe ausblenden
Post by: feline on May 25, 2012, 03:14:35 AM
Du meinst, das user in der "hide" Gruppe ihren eigenen Avatar nicht sehen können ?
Tja .. Grundsätzlich ist das möglich ..
Dazu müsste man wissen, ob und wie die Gruppen-ID in dem jeweiligen Daten array ($context['member'] / $message['member']) vorhanden ist (was ich in ermangelung eine SMF 1.1.6 nicht weiß).

WENN das so ist (Annahme im array gibt es ein $xx['member]['group']  mit der ID)  kann man den Test wie folgt machen:
if(!in_array($hideGrp, $user_info['groups']) || $hideGrp == $xx['member]['group'])
  Anzeigen

oder auch
if(in_array($hideGrp, $user_info['groups']) && $hideGrp != $xx['member]['group'])
Verbergen

Wenn vorhanden und $xx['member]['group'] ein array enthält (weil user in mehreren Gruppen sein können) müsste es etwa so aussehen:

if(!in_array($hideGrp, $user_info['groups']) || in_array($hideGrp, $xx['member]['group']))
  Anzeigen

oder auch
if(in_array($hideGrp, $user_info['groups']) && !in_array($hideGrp, $xx['member]['group']))
Verbergen

Vielleicht hilfts !?  ;)
Title: Re: Avatar für eine Gruppe ausblenden
Post by: Tom64 on May 25, 2012, 09:10:52 AM
Soooo ... getestet.

Wenn ich nichts falsch gemacht habe, sieht man die Avatare weiterhin.
Auch dann wenn man den zusätzlichen Code entfernt.
Der ist übrigens da um ein Profil in der Mitgliederliste völlig zu verstecken (Testprofil).

Ich habe natürlich ein Backup   ;)
Title: Re: Avatar für eine Gruppe ausblenden
Post by: DieNeue on May 25, 2012, 10:36:35 AM
Quote from: feline on May 25, 2012, 03:14:35 AM
Du meinst, das user in der "hide" Gruppe ihren eigenen Avatar nicht sehen können ?
Tja .. Grundsätzlich ist das möglich ..
Dazu müsste man wissen, ob und wie die Gruppen-ID in dem jeweiligen Daten array ($context['member'] / $message['member']) vorhanden ist (was ich in ermangelung eine SMF 1.1.6 nicht weiß).

WENN das so ist (Annahme im array gibt es ein $xx['member]['group']  mit der ID)  kann man den Test wie folgt machen:
if(!in_array($hideGrp, $user_info['groups']) || $hideGrp == $xx['member]['group'])
  Anzeigen

oder auch
if(in_array($hideGrp, $user_info['groups']) && $hideGrp != $xx['member]['group'])
Verbergen

Wenn vorhanden und $xx['member]['group'] ein array enthält (weil user in mehreren Gruppen sein können) müsste es etwa so aussehen:

if(!in_array($hideGrp, $user_info['groups']) || in_array($hideGrp, $xx['member]['group']))
  Anzeigen

oder auch
if(in_array($hideGrp, $user_info['groups']) && !in_array($hideGrp, $xx['member]['group']))
Verbergen

Vielleicht hilfts !?  ;)




Ich habe beides probiert und... Das Forum war weg!  :-\
Alles rückgängig und es ist wieder gut! :)

Der Code, der bei mir vorhanden ist, ist folgender:
       ', (!in_array($hideGrp, $user_info['groups']) ? $context['member']['avatar']['image'] : ''), '<br /><br />


Und nun?

Title: Re: Avatar für eine Gruppe ausblenden
Post by: feline on May 25, 2012, 01:33:52 PM
Da müsste ich etwas mehr vom code sehen .. was davor und dannach kommt  ;)
Title: Re: Avatar für eine Gruppe ausblenden
Post by: Tom64 on May 26, 2012, 05:40:20 AM
Moin Moin  :)

Leider funktioniert das mit dem Ausblenden der Bilder in der Mitgliederliste nicht.

Noch ein Tipp zur Hand ?   ;D   :-[   :-[
Title: Re: Avatar für eine Gruppe ausblenden
Post by: feline on May 26, 2012, 06:19:56 AM
Ja .. die Modifikation deinstallieren .. wer braucht so was? macht nur unnötige Server last....
Title: Re: Avatar für eine Gruppe ausblenden
Post by: Tom64 on May 26, 2012, 06:22:21 AM
Hihi ... ich brauche das. Wirklich !

Ich würde Ärger bekommen wenn das plötzlich weg wäre   ;D ;D ;D
Title: Re: Avatar für eine Gruppe ausblenden
Post by: feline on May 26, 2012, 06:35:05 AM
Dann frag doch mal den Mod Author, wie du das machen kannst ...
Title: Re: Avatar für eine Gruppe ausblenden
Post by: Tom64 on May 26, 2012, 06:52:55 AM
Hmmm ... auch eine Idee   :)

Dann möchte ich mich an dieser Stelle recht herzlich bei dir bedanken.

Du hast mir unheimlich geholfen.

Vielen, vielen Dank feline ... du bekommst 100 Punkte   ;)
Title: Re: Avatar für eine Gruppe ausblenden
Post by: feline on May 26, 2012, 12:45:36 PM
es ist immer schwierig wenn smf modifiziert wird und für diese mods änderungen gemacht werden sollen.
doppelt schwierig für mich, weil ich kein smf 1.1.6 habe  :D
Title: Re: Avatar für eine Gruppe ausblenden
Post by: DieNeue on May 27, 2012, 05:04:50 AM
Sooo... Besser spät als nie... ;)
Hier also mehr vom Code:


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




Hilft das weiter?
Title: Re: Avatar für eine Gruppe ausblenden
Post by: feline on May 27, 2012, 08:10:49 AM
Das sollte problemlos funktionieren ..
ich hoffe du hast hier: ? $context['member']['avatar']['image'] : ''
am ende nicht EIN Anführungszeichen (") sondern zwei Apostroph (') verwendet ...
Title: Re: Avatar für eine Gruppe ausblenden
Post by: DieNeue on May 31, 2012, 03:38:02 AM
Hallo feline,

ich habe jetzt alle Codes ausprobiert und natürlich auch auf Apostroph bzw. Anführungszeichen geachtet...
Und jedes Mal ist das Forum weg... :(

Aktuell ist es so, dass Mitglieder der entsprechenden Gruppe keine Avatare sehen.
Ihr eigenes aber eben leider auch nicht, so dass sie beim Hochladen eines Bildes keine Veränderung wahrnehmen können.

Hast du noch eine Idee?



Title: Re: Avatar für eine Gruppe ausblenden
Post by: feline on May 31, 2012, 05:15:40 AM
In der datei /Themes/default/Profile.template.php ...
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 = 10;
echo '
<td class="windowbg" valign="middle" align="center" width="150">
', (in_array($hideGrp, $user_info['groups']) && empty($context['member']['is_owner']) ? '' : $context['member']['avatar']['image']), '<br /><br />
', $context['member']['blurb'], '
</td>
</tr>';


Sollte Fehlerfrei funktionieren
Title: Re: Avatar für eine Gruppe ausblenden
Post by: DieNeue on May 31, 2012, 04:05:03 PM
Hallo feline,

vielen lieben Dank für deine Mühen! :)

Alles ist bestens!  :laugh:

VG