Seite 1 von 1

Hinweis nur für bestimmte Benutzergruppen

Verfasst: 09.04.2014 11:11
von Andreas1823
Hallo,

ich habe mal eine Frage:
Ich nutze ein Unterforum als Marktplatz, in dem man erst etwas anbieten kann wenn man min. 10 Beiträge geschrieben hat.
Damit neue Benutzer bis auch mitbekommen, habe ich dies in die Forenregeln (siehe Bild auch hineingeschrieben)

[ externes Bild ]

Ab 10 Beiträge rutscht das Mitglied von der Gruppe "Kürzlich registrierte Benutzer" in "Registrierte Benutzer".

Ist es irgendwie möglich nur der Gruppe "Kürzlich registrierte Benutzer" und Gästen diese Forenregel anzuzeigen ??

Grüße
Andreas

Re: Hinweis nur für bestimmte Benutzergruppen

Verfasst: 09.04.2014 12:40
von HabNurNeFrage
Hi,

um die Regeln in diesem Forum sowohl in der Forumübersicht und auch in der Anzeigenansicht nur für diejenigen anzuzeigen, die dort keine Schreibrechte haben:

Vorbereitung:
Forum-ID dieses (Unter-)Forums herausfinden - in der URL die Zahl hinter f=XX (XX ist die Forum-ID, hier jetzt z.B ist es 87).

Öffnen:
styles/prosilver/template/viewforum_body.html
und
styles/prosilver/template/viewtopic_body.html

In beiden folgende Stelle suchen:

Code: Alles auswählen

<!-- IF S_FORUM_RULES -->
    <div class="rules">
        <div class="inner"><span class="corners-top"><span></span></span>

        <!-- IF U_FORUM_RULES -->
            <a href="{U_FORUM_RULES}">{L_FORUM_RULES}</a>
        <!-- ELSE -->
            <strong>{L_FORUM_RULES}</strong><br />
            {FORUM_RULES}
        <!-- ENDIF -->

        <span class="corners-bottom"><span></span></span></div>
    </div>
<!-- ENDIF --> 
In beiden ersetzen duch:

Code: Alles auswählen

<!-- IF not S_USER_CAN_POST and FORUM_ID == XX -->
<!-- IF S_FORUM_RULES -->
    <div class="rules">
        <div class="inner"><span class="corners-top"><span></span></span>

        <!-- IF U_FORUM_RULES -->
            <a href="{U_FORUM_RULES}">{L_FORUM_RULES}</a>
        <!-- ELSE -->
            <strong>{L_FORUM_RULES}</strong><br />
            {FORUM_RULES}
        <!-- ENDIF -->

        <span class="corners-bottom"><span></span></span></div>
    </div>
<!-- ENDIF -->
<!-- ENDIF -->

<!-- IF FORUM_ID != XX -->
<!-- IF S_FORUM_RULES -->
    <div class="rules">
        <div class="inner"><span class="corners-top"><span></span></span>

        <!-- IF U_FORUM_RULES -->
            <a href="{U_FORUM_RULES}">{L_FORUM_RULES}</a>
        <!-- ELSE -->
            <strong>{L_FORUM_RULES}</strong><br />
            {FORUM_RULES}
        <!-- ENDIF -->

        <span class="corners-bottom"><span></span></span></div>
    </div>
<!-- ENDIF -->
<!-- ENDIF --> 
In beiden Ersetzungen jeweils an zwei Stellen das XX mit der zuvor ermittelten Forum-ID ersetzen.

Danach im ACP den Board-Cache leeren.

LG

Re: Hinweis nur für bestimmte Benutzergruppen

Verfasst: 09.04.2014 22:20
von Andreas1823
Hey,

als bei der viewforum funktioniert es schon fantastisch. Danke schonmal dafür.

Allerdings funktioniert es nicht in der viewtopic :-?
Die Regel wird nachwievor angezeigt bei der Themenansicht.
Was muss ich da noch korregieren ??

Grüße

Re: Hinweis nur für bestimmte Benutzergruppen

Verfasst: 10.04.2014 15:08
von HabNurNeFrage
Hi,

dann versuche dort mal anstelle der ersten Ersetzung folgende:

Code: Alles auswählen

<!-- IF not S_USER_CAN_POST -->
<!-- IF S_FORUM_RULES -->
    <div class="rules">
        <div class="inner"><span class="corners-top"><span></span></span>

        <!-- IF U_FORUM_RULES -->
            <a href="{U_FORUM_RULES}">{L_FORUM_RULES}</a>
        <!-- ELSE -->
            <strong>{L_FORUM_RULES}</strong><br />
            {FORUM_RULES}
        <!-- ENDIF -->

        <span class="corners-bottom"><span></span></span></div>
    </div>
<!-- ENDIF -->
<!-- ENDIF --> 
Dadurch werden in allen Topics, wenn ein User nicht posten kann, Regeln angezeigt, sonst gar nicht.
Wenn Du irgendwo Regeln in Topics anzeigen willst, auch wenn User dort schreiben darf, müssen wir nochmal dran arbeiten...

LG

Re: Hinweis nur für bestimmte Benutzergruppen

Verfasst: 14.04.2014 20:41
von Andreas1823
Hey,

das ganze sollte sicher funktionieren.
Ich denke aber das ganze geht bei mir deswegen nicht weil "kürzlich registrierte Mitglieder" auf Themen antworten dürfen nur eben nicht eigene Themen eröffnen können.

Ich habe hier https://wiki.phpbb.com/Viewforum_Template_Variables grad mal nach einer entsprechenden Anwesiung gesucht aber leider nicht gefunden
sowas wie <!-- IF not S_USERGROUP == "hier die GruppenID rein (wenn es das überhaupt gibt)" and FORUM_ID == XX -->

Frage 1: Gibt es eine entsprechende Variable welche nach der Usergruppe filtern kann ?
Frage 2: Die Standardgruppe "kürzlich registrierte Mitglieder" , welche ID hat diese Gruppe ?

Vielen dank für eure Hilfe

Grüße
Andreas

Re: Hinweis nur für bestimmte Benutzergruppen

Verfasst: 14.04.2014 21:50
von HabNurNeFrage
Hi,

dazu musst Du noch einen Schnipsel in die viewtopic.php eintragen:

Finde:

Code: Alles auswählen

unset($rowset, $user_cache);
Füge in neuer, leerer Zeile DANACH ein:

Code: Alles auswählen

if (!function_exists('group_memberships'))
{
    include_once($phpbb_root_path . 'includes/functions_user.'.$phpEx);
}

$groups = group_memberships(false,$user->data['user_id']);
foreach ($groups as $grouprec)
{
    $template->assign_vars(array(
    'S_IN_GROUP_' . $grouprec['group_id'] => true
    ));
}
Nun in viewtopic_body.html die Fundstelle

Code: Alles auswählen

<!-- IF S_FORUM_RULES -->
    <div class="rules">
        <div class="inner"><span class="corners-top"><span></span></span>

        <!-- IF U_FORUM_RULES -->
            <a href="{U_FORUM_RULES}">{L_FORUM_RULES}</a>
        <!-- ELSE -->
            <strong>{L_FORUM_RULES}</strong><br />
            {FORUM_RULES}
        <!-- ENDIF -->

        <span class="corners-bottom"><span></span></span></div>
    </div>
<!-- ENDIF -->
umschließen mit:

Code: Alles auswählen

<!-- IF not S_IN_GROUP_XX  --> Fundstelle <!-- ENDIF -->
XX darin ersetzen mit der Gruppen-ID der registrierten Benutzer...

Das sollte es dann sein. In viewforum funktioniert es wie gewünscht?
Wenn nicht, kannst Du dort ähnlich vorgehen.

LG