Alle Gruppen unterdem Usernamen

Du suchst einen bestimmten Mod, weißt aber nicht genau wo bzw. ob er überhaupt existiert? Wenn dir dieser Artikel nicht weiterhilft, kannst du hier den von dir gewünschten/gesuchten Mod beschreiben ...
Falls ein Mod-Autor eine der Anfragen hier aufnimmt, um einen neuen Mod zu entwickeln, geht's in [3.0.x] Mods in Entwicklung weiter.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
JackLuhn
Mitglied
Beiträge: 3
Registriert: 21.03.2013 03:53

Alle Gruppen unterdem Usernamen

Beitrag von JackLuhn »

Hallo Liebe PHPBB Community,

Ich versuche seit Geraumer Zeit alle Gruppe in der ein User drin ist Unterseinen Namen anzeigen zu Lasssen.

Das ganze Soll so Aussehen.
[ externes Bild ]

Habe auch schon die Such Funktion Genutzt aber nur das Thread von DjDevilblack gefunden.
viewtopic.php?f=87&t=218438

Hoffe ihr Könnt mir Weiter helfen.

Ich weiss das ich die viewtopic.php, viewtopic_body.html und irgent etwas in den includes dateien Ändern muss.
Aber ich weiss nicht was.
JackLuhn
Mitglied
Beiträge: 3
Registriert: 21.03.2013 03:53

Re: Alle Gruppen unterdem Usernamen

Beitrag von JackLuhn »

Keiner der Mir Helfen kann?

Soweit ich weiss gab es das doch auch in PHPBB2 oder Irre ich mich da?
Benutzeravatar
HabNurNeFrage
Ehemaliges Teammitglied
Beiträge: 1627
Registriert: 17.01.2010 20:22
Wohnort: An der Ostsee
Kontaktdaten:

Re: Alle Gruppen unterdem Usernamen

Beitrag von HabNurNeFrage »

Hi,

diese Mod listet alle Gruppen in viewtopic:
https://www.phpbb.com/community/viewtop ... 0&t=742015
Für den Download braucht man einen Account bei 4shared.

Ansetzen könntest Du auch bei der Funktion, die in memberlist.php ein Array mit allen Gruppen erstellt:

Code: Alles auswählen

if ($memberships)
    {
        foreach ($memberships as $row)
        {
            $group_membership_ids[] = $row['group_id'];
        }
    }
    unset($memberships);

     $sql = 'SELECT g.group_id, g.group_name, g.group_type
         FROM ' . GROUPS_TABLE . ' g, ' . USER_GROUP_TABLE . " ug
         WHERE ug.user_id = $user_id
            AND g.group_id = ug.group_id" . ((!$auth->acl_gets('a_group', 'a_groupadd', 'a_groupdel')) ? ' AND (g.group_type <> ' . GROUP_HIDDEN . ((sizeof($group_membership_ids)) ? ' OR ' . $db->sql_in_set('ug.group_id', $group_membership_ids) : '') . ')' : '') . '
             AND ug.user_pending = 0
         ORDER BY g.group_type, g.group_name';
     $result = $db->sql_query($sql); 
Dieser Code müsste an geeigneter Stelle in viewtopic.php eingebunden werden.
Auslesen könntest Du das Array mit array_key_exists ().
Das ist vielleicht nicht mal nötig. Weiß ich nicht genau, da ich nicht besonders bewandert in php bin.

Dann bastelst Du Dir noch ein bissl Code, um die Gruppen im Template anhand folgender Anleitung abfragen zu können: viewtopic.php?f=93&t=183626

Wenn das alles soweit steht, kannt du die Gruppen mit If-Statements im Template abfragen.
Für jede bei Dir existierende Gruppe fragst Du dann in viewtopic_body.html in etwa so ab:
<!-- IF postrow.POSTER_ID eq 1 -->Gruppe Böse Jungs<!-- ENDIF -->
<!-- IF postrow.POSTER_ID eq 2 -->Gruppe Nette Mädel<!-- ENDIF -->
etc etc... (Welche Gruppe welche ID bei Dir hat, kannst Du im ACP einsehen.

Am übersichtlichsten wäre dann wohl eine neue html (z.B. grouplist.html) - in der diese Liste enthalten ist, sodass Du in viewtopic_body.html nur noch diese neue html an entsprechender Stelle folgendermaßen aufrufst: <!-- INCLUDE grouplist.html -->

Too much? Die Mod macht es auch :wink:

LG

PS: Ja, eine ähnliche Mod gab es für das 2er auch schon...
| HomeStory.org - the friendly Community | Forum für alle Lebenslagen | <"}))}~ | Nicht nachmachen: Meine phpBB Spielereien |
var shoppen = geld.replace (/geld/g, 'bloedsinn'); if (geld < 1) { return home; };
JackLuhn
Mitglied
Beiträge: 3
Registriert: 21.03.2013 03:53

Re: Alle Gruppen unterdem Usernamen

Beitrag von JackLuhn »

Da der MOD nicht Funktioniert hat habe ich mir eine Eigene Lösung Programmiert.

Bei Fehler Bitte Bescheidt sagen.

So geht's:

Öffnet: includes/functions_user.php
Sucht "?>" Ohne Anführungs zeichen.
Davor Fügt ihr Folgendes ein:

Code: Alles auswählen

function getUserGroups($user_id)
{
    global $db, $config;

    $sql_array = array(
        'SELECT'    => 'ugt.user_id, ugt.group_id, ugt.group_leader, ugt.user_pending, gt.group_id, gt.group_rank, rt.rank_id, rt.rank_title, rt.rank_image',
        'FROM'        => array(
            USER_GROUP_TABLE => 'ugt',
        ),
        'LEFT_JOIN'    => array(
            array(
                'FROM' => array(GROUPS_TABLE => 'gt'),
                'ON'   => 'gt.group_id = ugt.group_id'
            ),
            array(
                'FROM' => array(RANKS_TABLE => 'rt'),
                'ON'   => 'rt.rank_id = gt.group_rank'
            )
        ),
        'WHERE'     => 'ugt.user_id = ' . $user_id .' AND ugt.user_pending = \'0\'',  //we don't want groups pending
        'ORDER_BY'  => 'ugt.group_leader DESC'                                        //we first want groups with $user_id as leader
    );
    $sql = $db->sql_build_query('SELECT',$sql_array);
    $result = $db->sql_query($sql);
    $ranks_array = array();
    $count = 0;
    while ($row = $db->sql_fetchrow($result))
    {
        if (!empty($row['rank_image']))
        {
            $count++;
            $ranks_array[$count] = array(
                'GROUPID'    => $row['group_id'],
                'TITLE'        => $row['rank_title'],
                'IMAGE'        => "<img src=\"" . $config['ranks_path'] . "/" . $row['rank_image'] . "\" alt=\"" . $row['rank_title'] . "\" title=\"" . $row['rank_title'] . "\" />",
                'IMAGE_SRC'    => "images/ranks/" . $row['rank_image']
            );
        }
    }
    $ranks_array['count'] = $count;
    return $ranks_array;
}
Öffnet nun die viewtopic.php
Such nach:

Code: Alles auswählen

include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
Danach Fügt ihr ein:

Code: Alles auswählen

include_once($phpbb_root_path . 'includes/functions_user.' . $phpEx);
Sucht nach:

Code: Alles auswählen

get_user_rank($row['user_rank'], $row['user_posts'], $user_cache[$poster_id]['rank_title'], $user_cache[$poster_id]['rank_image'], $user_cache[$poster_id]['rank_image_src']);
Danch Fügt ihr ein:

Code: Alles auswählen

$user_cache[$poster_id]['groupsinfo'] = getUserGroups($poster_id);
Sucht nach:

Code: Alles auswählen

'S_HAS_ATTACHMENTS'    => (!empty($attachments[$row['post_id']])) ? true : false,
Darünter Fügt ihr ein:

Code: Alles auswählen

'S_HAS_GROUPS'        => (!empty($user_cache[$poster_id]['groupsinfo'])) ? true : false,
Sucht nach:

Code: Alles auswählen

if (!empty($cp_row['blockrow']))
    {
        foreach ($cp_row['blockrow'] as $field_data)
        {
            $template->assign_block_vars('postrow.custom_fields', $field_data);
        }
    }
Danach einfügen:

Code: Alles auswählen

    if (!empty($user_cache[$poster_id]['groupsinfo']))
    {
        foreach($user_cache[$poster_id]['groupsinfo'] as $group)
        {
            $template->assign_block_vars('postrow.listofgroups', array('IMAGE' => $group['IMAGE'], 'TITLE' => $group['TITLE']));
        }
    }
Öffnet nun die viewtopic_body.html im: (prosilver)
Sucht nach:

Code: Alles auswählen

<!-- IF postrow.RANK_TITLE or postrow.RANK_IMG --><dd>{postrow.RANK_TITLE}<!-- IF postrow.RANK_TITLE and postrow.RANK_IMG --><br /><!-- ENDIF -->{postrow.RANK_IMG}</dd><!-- ENDIF -->
Ersetzten Durch: (Müss nicht gemacht werden Sieht aber Schöner aus) (Zeigt nur das Rank Bild)

Code: Alles auswählen

<!-- IF postrow.RANK_IMG --><dd>{postrow.RANK_IMG}</dd><!-- ELSEIF postrow.RANK_TITLE --><dd>postrow.RANK_TITLE}</dd><!-- ENDIF -->
Dadrunter Fügt ihr ein: (Zeigt nur das Rank Bild)

Code: Alles auswählen

			<!-- IF postrow.S_HAS_GROUPS -->
			<!-- BEGIN listofgroups -->
			<dd>{postrow.listofgroups.IMAGE}</dd>
			<!-- END listofgroups -->
			<!-- ENDIF -->
Oder Falls ihr den Code

Code: Alles auswählen

<!-- IF postrow.RANK_TITLE or postrow.RANK_IMG --><dd>{postrow.RANK_TITLE}<!-- IF postrow.RANK_TITLE and postrow.RANK_IMG --><br /><!-- ENDIF -->{postrow.RANK_IMG}</dd><!-- ENDIF -->
Nicht Ersetzt habt Fügt Folgendes ein

Code: Alles auswählen

			<!-- IF postrow.S_HAS_GROUPS -->
			<!-- BEGIN listofgroups -->
			<dd><!-- IF postrow.listofgroups.TITLE or postrow.listofgroups.IMAGE --><dd>{postrow.listofgroups.TITLE}<!-- IF postrow.listofgroups.TITLE and postrow.RANK_IMG --><br /><!-- ENDIF -->{postrow.listofgroups.IMAGE}</dd><!-- ENDIF --></dd>
			<!-- END listofgroups -->
			<!-- ENDIF -->
Antworten

Zurück zu „[3.0.x] Mod Suche/Anfragen“