Seite 2 von 3

Re: Icon im Kurzprofil wenn User in Gruppe?

Verfasst: 23.08.2012 11:58
von LisaserstesForum
Hi Nuramon,

danke für die Hilfe und die Beschreibung. :)
Es funktioniert und das Forum mit prüfen zu lassen, dass es nur in einem Forum angezeigt wird, war gar nicht so schwer:

Code: Alles auswählen

<!-- IF FORUM_ID == 7 -->
					    <!-- IF U_MCP --><!-- IF postrow.T_GROUP_8 -->test<!-- ENDIF --><!-- ENDIF -->
					<!-- ENDIF -->
In der Themenübersicht würde ich auch gerne noch so etwas einbauen, wenn ich aber weiß welchen Code ich benutzen muss,
damit die Prüfung sich nur auf den Themenersteller bezieht (und nicht auf z.B. die zuletzte geantwortete Person), schaffe ich
den Rest alleine, denke ich :)

Re: Icon im Kurzprofil wenn User in Gruppe?

Verfasst: 23.08.2012 12:06
von Nuramon
Freut mich zu hören. Kannst ja mal fleißig rumzuprobieren (:

Wenn es keine Template-Variable für den Topic-Starter gibt, dann musst du eben eine in der viewforum.php an der richtigen Stelle anlegen^^

Ich glaube aber übrigens sauberer gelöst als

Code: Alles auswählen

<!-- IF FORUM_ID == 7 -->
wäre

Code: Alles auswählen

<!-- IF FORUM_ID eq 7 -->
Hatte da was im Kopf, dass man die Vergleiche besser mit equals ausführt. Falls ich falsch liege, bitte einer von den erfahreneren Moddern korrigieren.

Re: Icon im Kurzprofil wenn User in Gruppe?

Verfasst: 23.08.2012 12:18
von LisaserstesForum
Oh ok dann ändere ich das, habe das nur so hier in einem anderen Beitrag gefunden.
Ich werde versuchen mir aus dem Snippet sowas zu basteln für die Themenübersicht: viewtopic.php?f=85&t=219480

Re: Icon im Kurzprofil wenn User in Gruppe?

Verfasst: 23.08.2012 13:16
von LisaserstesForum
Schade, das funktioniert leider nicht so, wie ich es gerne hätte.
Ich habe in der viewforum.php dies eingefügt:

Code: Alles auswählen

    'S_TOPIC_POSTER_ID2'   =>  $topic_data['topic_poster'],
In der viewforum_body.html habe ich dann das eingefügt:

Code: Alles auswählen

<!-- IF postrow.S_TOPIC_POSTER and postrow.S_TOPIC_POSTER_ID2 neq 1 -->test<!-- ENDIF -->
Leider funktioniert die Funktion anscheinend nicht, denn wenn ich an dieser Stelle nur "test" einfüge, steht es hinter
den Beiträgen.
Ich wollte diese Funktion, damit der Gruppenstatus nur bei dem Themenstarter geprüft wird, es sollte also so ungefähr aussehen:

Code: Alles auswählen

<!-- IF FORUM_ID == 7 -->
<!-- IF U_MCP -->
<!-- IF postrow.S_TOPIC_POSTER and postrow.S_TOPIC_POSTER_ID2 neq 1 -->
<!-- IF postrow.T_GROUP_8 -->test<!-- ENDIF -->
<!-- ENDIF -->
<!-- ENDIF -->
<!-- ENDIF -->

Re: Icon im Kurzprofil wenn User in Gruppe?

Verfasst: 23.08.2012 13:31
von Nuramon
So einfach geht das aber nicht.
Ich glaube du hast die Logik der Template-Variablen noch nicht so ganz durchschaut. Nur die, die auch definiert werden, sind an der entsprechenden Stelle verfügbar. Im der viewtopic.php waren es die, die wir oben hatten.
In der viewforum.php sind es andere, und sie sind auch in der Blockvariable 'topicrow' versteckt, nicht mehr postrow.

Am Besten schaust du dir das mal an, wenn du in der viewforum.php nach

Code: Alles auswählen

$template->assign_block_vars('topicrow', array( 
suchst. Denn genau da stehen alle drinnen.

Was möchtest du jetzt genau tun?
Wenn der Topic-Starter in einer bestimmten Gruppe ist, soll ein Symbol neben dem Thread angezeigt werden, wenn man Moderator ist, richtig?
Dafür braucht man wieder eine kleine Abfrage, wo du aus der id des Erstellers wieder die Gruppenzugehörigkeiten ausliest und in die Template-Variablen packst.

Re: Icon im Kurzprofil wenn User in Gruppe?

Verfasst: 23.08.2012 13:44
von LisaserstesForum
Oh man ist das kompliziert :o

Code: Alles auswählen

Was möchtest du jetzt genau tun?
Wenn der Topic-Starter in einer bestimmten Gruppe ist, soll ein Symbol neben dem Thread angezeigt werden, wenn man Moderator ist, richtig?
Ja, genau das ist mein Ziel :)

Das ich die Funktion zur Überprüfung ob der User in der Gruppe ist dann in die Datei noch reinschreiben muss ist mir klar,
ich wollte das nur Schritt für Schritt machen und deswegen zuerst die Funktion hinbekommen, dass die Überprüfung nur
bei dem Themenstarter statt findet.

Re: Icon im Kurzprofil wenn User in Gruppe?

Verfasst: 23.08.2012 13:59
von Nuramon
Geh mal in die viewforum.php
Suche:

Code: Alles auswählen

            'TOPIC_AUTHOR'                => get_username_string('username', $row['topic_poster'], $row['topic_first_poster_name'], $row['topic_first_poster_colour']), 
Füge DANACH ein:

Code: Alles auswählen

            'TOPIC_AUTHOR_ID'            => $row['topic_poster'], 
Dann hast du deine ID vom Themenersteller.
Erreichbar ist sie im Template mit

Code: Alles auswählen

{topicrow.TOPIC_AUTHOR_ID}
So kommst du an die ID.

Ich machs dann mal eben schnell fertig, sollten nur ein paar kleine Anpassungen sein.
Finde:

Code: Alles auswählen

        // Send vars to template
        $template->assign_block_vars('topicrow', array( 
Füge DAVOR ein:

Code: Alles auswählen

        // SNIPPET Groups for User
            // Check what group a user is in
            if ( !function_exists('group_memberships') )
            {
                include($phpbb_root_path . 'includes/functions_user.'.$phpEx);
            }

            $groups = group_memberships(false,$row['topic_poster']);
            $author_groups = array();
            foreach ($groups as $grouprec)
            {
                $author_groups['S_AUTHOR_GROUP_' . $grouprec['group_id']] = true;
            } 
            $template->assign_block_vars('topicrow', $author_groups);
        // END Groups for User  
Benutzen tust du das dann in dem Template mit

Code: Alles auswählen

{topicrow.S_AUTHOR_GROUP_5}
Ich hoffe das passt soweit, getestet hab ich das jetzt nicht mehr.
Kann sein, dass das doppelte assignen nicht geht, dann müsste man die Arrays einzeln definieren, mergen und dann erst assignen.

Re: Icon im Kurzprofil wenn User in Gruppe?

Verfasst: 23.08.2012 14:22
von LisaserstesForum
Da blick ich nicht mehr durch. :P
Trotzdem danke für deine Hilfe und Zeit :)

Re: Icon im Kurzprofil wenn User in Gruppe?

Verfasst: 24.08.2012 09:35
von LisaserstesForum
Ich hab es doch noch nicht aufgegeben und probiere es weiter.
Nuramon hat geschrieben: Kann sein, dass das doppelte assignen nicht geht, dann müsste man die Arrays einzeln definieren, mergen und dann erst assignen.
Anscheinend ist das so, denn wenn ich das Snippet einbaue zerreist es mir die Themenansicht. Wie mache ich das?

Re: Icon im Kurzprofil wenn User in Gruppe?

Verfasst: 24.08.2012 10:22
von Nuramon
Propiers mal so:
viewforum.php

Lösch erstmal die alten Änderungen, wenn das so nicht geht, ist vor dem Array generell doof.

Finde:

Code: Alles auswählen

        $template->assign_block_vars('topicrow', array( 
ERSETZE durch:

Code: Alles auswählen

        $template_vars = array( 
Finde:

Code: Alles auswählen

            'S_TOPIC_TYPE_SWITCH'    => ($s_type_switch == $s_type_switch_test) ? -1 : $s_type_switch_test)
        ); 
ERSETZE durch:

Code: Alles auswählen

            'S_TOPIC_TYPE_SWITCH'    => ($s_type_switch == $s_type_switch_test) ? -1 : $s_type_switch_test); 
Füge NACH diesser Zeile ein:

Code: Alles auswählen

        // SNIPPET Groups for User
            // Check what group a user is in
            if ( !function_exists('group_memberships') )
            {
                include($phpbb_root_path . 'includes/functions_user.'.$phpEx);
            }

            $groups = group_memberships(false,$row['topic_poster']);
            foreach ($groups as $grouprec)
            {
                $template_vars['S_AUTHOR_GROUP_' . $grouprec['group_id']] = true;
            } 
            $template->assign_block_vars('topicrow', $template_vars);
        // END Groups for User