"Das Team" für Gäste einsehbar machen

In diesem Forum kann man Fragen zur Programmierung stellen, die bei der Entwicklung von Mods für phpBB 3.0.x oder dem Modifizieren des eigenen Forums auftauchen.
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
Benutzeravatar
dom_beta
Mitglied
Beiträge: 255
Registriert: 29.11.2014 06:39

"Das Team" für Gäste einsehbar machen

Beitrag von dom_beta »

Hallo,

wie kann man "Das Team" für Gäste einsehbar machen?

Danke
MfG
dom_beta
Benutzeravatar
HabNurNeFrage
Ehemaliges Teammitglied
Beiträge: 1627
Registriert: 17.01.2010 20:22
Wohnort: An der Ostsee
Kontaktdaten:

Re: "Das Team" für Gäste einsehbar machen

Beitrag von HabNurNeFrage »

Hi,

ohne weitere Veränderungen über die Berechtigungen geht es nur, wenn Du Gästen den Zugriff auf alle User-Profile erlaubst.
Eine einzelne Berechtigung nur für ./memberlist.php?mode=leaders gibt es nicht.

Du kannst Dir eine einfache Mod in Form einer zusätzlichen Seite dafür selbst erstellen:

Speichere Folgendes als teampage.php

Code: Alles auswählen

<?php

define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
include($phpbb_root_path . 'includes/functions_user.' . $phpEx);

$user->session_begin();
$auth->acl($user->data);
$user->setup(array('memberlist', 'groups'));


$user_ary = $auth->acl_get_list(false, array('a_', 'm_'), false);

$admin_id_ary = $global_mod_id_ary = $mod_id_ary = $forum_id_ary = array();
foreach ($user_ary as $forum_id => $forum_ary)
{
    foreach ($forum_ary as $auth_option => $id_ary)
    {
        if (!$forum_id)
        {
            if ($auth_option == 'a_')
            {
                $admin_id_ary = array_merge($admin_id_ary, $id_ary);
            }
            else
            {
                $global_mod_id_ary = array_merge($global_mod_id_ary, $id_ary);
            }
            continue;
        }
        else
        {
            $mod_id_ary = array_merge($mod_id_ary, $id_ary);
        }

        if ($forum_id)
        {
            foreach ($id_ary as $id)
            {
                $forum_id_ary[$id][] = $forum_id;
            }
        }
    }
}

$admin_id_ary = array_unique($admin_id_ary);
$global_mod_id_ary = array_unique($global_mod_id_ary);

$mod_id_ary = array_merge($mod_id_ary, $global_mod_id_ary);
$mod_id_ary = array_unique($mod_id_ary);

// Admin group id...
$sql = 'SELECT group_id
    FROM ' . GROUPS_TABLE . "
    WHERE group_name = 'ADMINISTRATORS'";
$result = $db->sql_query($sql);
$admin_group_id = (int) $db->sql_fetchfield('group_id');
$db->sql_freeresult($result);

// Get group memberships for the admin id ary...
$admin_memberships = group_memberships($admin_group_id, $admin_id_ary);

$admin_user_ids = array();

if (!empty($admin_memberships))
{
    // ok, we only need the user ids...
    foreach ($admin_memberships as $row)
    {
        $admin_user_ids[$row['user_id']] = true;
    }
}
unset($admin_memberships);

$sql = 'SELECT forum_id, forum_name
    FROM ' . FORUMS_TABLE;
$result = $db->sql_query($sql);

$forums = array();
while ($row = $db->sql_fetchrow($result))
{
    $forums[$row['forum_id']] = $row['forum_name'];
}
$db->sql_freeresult($result);

$sql = $db->sql_build_query('SELECT', array(
    'SELECT'    => 'u.user_id, u.group_id as default_group, u.username, u.username_clean, u.user_colour, u.user_rank, u.user_posts, u.user_allow_pm, g.group_id, g.group_name, g.group_colour, g.group_type, ug.user_id as ug_user_id',

    'FROM'        => array(
        USERS_TABLE        => 'u',
        GROUPS_TABLE    => 'g'
    ),

    'LEFT_JOIN'    => array(
        array(
            'FROM'    => array(USER_GROUP_TABLE => 'ug'),
            'ON'    => 'ug.group_id = g.group_id AND ug.user_pending = 0 AND ug.user_id = ' . $user->data['user_id']
        )
    ),

    'WHERE'        => $db->sql_in_set('u.user_id', array_unique(array_merge($admin_id_ary, $mod_id_ary)), false, true) . '
        AND u.group_id = g.group_id',

    'ORDER_BY'    => 'g.group_name ASC, u.username_clean ASC'
));
$result = $db->sql_query($sql);

while ($row = $db->sql_fetchrow($result))
{
    $which_row = (in_array($row['user_id'], $admin_id_ary)) ? 'admin' : 'mod';

    // We sort out admins not within the 'Administrators' group.
    // Else, we will list those as admin only having the permission to view logs for example.
    if ($which_row == 'admin' && empty($admin_user_ids[$row['user_id']]))
    {
        // Remove from admin_id_ary, because the user may be a mod instead
        unset($admin_id_ary[array_search($row['user_id'], $admin_id_ary)]);

        if (!in_array($row['user_id'], $mod_id_ary) && !in_array($row['user_id'], $global_mod_id_ary))
        {
            continue;
        }
        else
        {
            $which_row = 'mod';
        }
    }

    $s_forum_select = '';
    $undisclosed_forum = false;

    if (isset($forum_id_ary[$row['user_id']]) && !in_array($row['user_id'], $global_mod_id_ary))
    {
        if ($which_row == 'mod' && sizeof(array_diff(array_keys($forums), $forum_id_ary[$row['user_id']])))
        {
            foreach ($forum_id_ary[$row['user_id']] as $forum_id)
            {
                if (isset($forums[$forum_id]))
                {
                    if ($auth->acl_get('f_list', $forum_id))
                    {
                        $s_forum_select .= '<option value="">' . $forums[$forum_id] . '</option>';
                    }
                    else
                    {
                        $undisclosed_forum = true;
                    }
                }
            }
        }
    }

    // If the mod is only moderating non-viewable forums we skip the user. There is no gain in displaying the person then...
    if (!$s_forum_select && $undisclosed_forum)
    {
//                $s_forum_select = '<option value="">' . $user->lang['FORUM_UNDISCLOSED'] . '</option>';
        continue;
    }

    // The person is moderating several "public" forums, therefore the person should be listed, but not giving the real group name if hidden.
    if ($row['group_type'] == GROUP_HIDDEN && !$auth->acl_gets('a_group', 'a_groupadd', 'a_groupdel') && $row['ug_user_id'] != $user->data['user_id'])
    {
        $group_name = $user->lang['GROUP_UNDISCLOSED'];
        $u_group = '';
    }
    else
    {
        $group_name = ($row['group_type'] == GROUP_SPECIAL) ? $user->lang['G_' . $row['group_name']] : $row['group_name'];
        $u_group = append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=group&g=' . $row['group_id']);
    }

    $rank_title = $rank_img = '';
    get_user_rank($row['user_rank'], (($row['user_id'] == ANONYMOUS) ? false : $row['user_posts']), $rank_title, $rank_img, $rank_img_src);

    $template->assign_block_vars($which_row, array(
        'USER_ID'        => $row['user_id'],
        'FORUMS'        => $s_forum_select,
        'RANK_TITLE'    => $rank_title,
        'GROUP_NAME'    => $group_name,
        'GROUP_COLOR'    => $row['group_colour'],

        'RANK_IMG'        => $rank_img,
        'RANK_IMG_SRC'    => $rank_img_src,

        'U_GROUP'            => $u_group,
        'U_PM'                => ($config['allow_privmsg'] && $auth->acl_get('u_sendpm') && ($row['user_allow_pm'] || $auth->acl_gets('a_', 'm_') || $auth->acl_getf_global('m_'))) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=pm&mode=compose&u=' . $row['user_id']) : '',

        'USERNAME_FULL'        => get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']),
        'USERNAME'            => get_username_string('username', $row['user_id'], $row['username'], $row['user_colour']),
        'USER_COLOR'        => get_username_string('colour', $row['user_id'], $row['username'], $row['user_colour']),
        'U_VIEW_PROFILE'    => get_username_string('profile', $row['user_id'], $row['username'], $row['user_colour']),
    ));
}
$db->sql_freeresult($result);

$template->assign_vars(array(
    'PM_IMG'        => $user->img('icon_contact_pm', $user->lang['SEND_PRIVATE_MESSAGE']))
);

$template->assign_block_vars('navlinks', array(
    'FORUM_NAME' => 'Unser Team', 
    'U_VIEW_FORUM' => append_sid("{$phpbb_root_path}teampage.$phpEx")));

page_header('Unser Team');

$template->set_filenames(array(
    'body' => 'teampage_body.html'
    ));

make_jumpbox(append_sid("{$phpbb_root_path}viewforum.$phpEx"));

page_footer();

?>
Die Datei ins Forumroot hochladen.

Kopiere die Datei ./styles/<dein_stylename>/template/memberlist_leaders.html und speichere im selben Ordner als teampage_body.html

Nun kannst Du an beliebigen Stellen im Template (z.B. in overall_header.html oder overall_footer.html) Links zu dieser neuen Seite setzen:
<a href="./teampage.php">{L_THE_TEAM}</a>

Oder/und Du änderst den originalen Link zum Team in overall_footer.html:
Dort finden: <a href="{U_TEAM}">{L_THE_TEAM}</a> und mit dem zuvor genannten Link ersetzen.

Demo: http://bild4.bplaced.net/phpbb/ => da unten auf "Das Team" klicken.

LG
| 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; };
Verschoben von [3.0.x] Administration und Benutzung nach [3.0.x] Mod Bastelstube am 14.01.2015 13:56 durch HabNurNeFrage

Benutzeravatar
Elsensee
Ehemaliges Teammitglied
Beiträge: 832
Registriert: 19.05.2010 15:14
Wohnort: Hamburg
Kontaktdaten:

Re: "Das Team" für Gäste einsehbar machen

Beitrag von Elsensee »

Oder: :D :P

Du öffnest: memberlist.php
Suchst: (ziemlich am Anfang..)

Code: Alles auswählen

case 'email':
break; 
Und fügst davor ein:

Code: Alles auswählen

case 'leaders': 
:)
Posts mostly powered by GitHub and phpBB.de Cross-Reference

2015-03-20 - Never forget 8)
Benutzeravatar
HabNurNeFrage
Ehemaliges Teammitglied
Beiträge: 1627
Registriert: 17.01.2010 20:22
Wohnort: An der Ostsee
Kontaktdaten:

Re: "Das Team" für Gäste einsehbar machen

Beitrag von HabNurNeFrage »

Hi,

funktioniert bestens:
http://bild4.bplaced.net/phpbb/memberli ... de=leaders

Aber warum einfach, wenns auch umständlich geht? :wink: :lol:

LG
| 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; };
Benutzeravatar
dom_beta
Mitglied
Beiträge: 255
Registriert: 29.11.2014 06:39

Re: "Das Team" für Gäste einsehbar machen

Beitrag von dom_beta »

Elsensee hat geschrieben:Oder: :D :P

Du öffnest: memberlist.php
Suchst: (ziemlich am Anfang..)

Code: Alles auswählen

case 'email':
break;
Und fügst davor ein:

Code: Alles auswählen

case 'leaders':
:)
ähm, irgendwie funktioniert das nicht

switch ($mode)
{
case 'leaders':
case 'email':
case 'contactadmin':
break;
MfG
dom_beta
Benutzeravatar
waldkatze
Ehemaliges Teammitglied
Beiträge: 792
Registriert: 08.03.2013 21:50

Re: "Das Team" für Gäste einsehbar machen

Beitrag von waldkatze »

Du hast warscheinlich die falsche Stelle im Code geändert.

Suche in der memberlist.php:

Code: Alles auswählen

// Check our mode...
if (!in_array($mode, array('', 'group', 'viewprofile', 'email', 'contact', 'searchuser', 'leaders')))
{
    trigger_error('NO_MODE');
} 
Danach müßte dann das stehen:

Code: Alles auswählen

switch ($mode)
{
    case 'leaders':
    case 'email':
    break;

    default:
        // Can this user view profiles/memberlist?
        if (!$auth->acl_gets('u_viewprofile', 'a_user', 'a_useradd', 'a_userdel'))
        {
            if ($user->data['user_id'] != ANONYMOUS)
            {
                trigger_error('NO_VIEW_USERS');
            }

            login_box('', ((isset($user->lang['LOGIN_EXPLAIN_' . strtoupper($mode)])) ? $user->lang['LOGIN_EXPLAIN_' . strtoupper($mode)] : $user->lang['LOGIN_EXPLAIN_MEMBERLIST']));
        }
    break;
}
Das Bremsen eines Motorrades ist die Verschwendung hochwertiger Geschwindigkeit in sinnlose Wärmeenergie.
Benutzeravatar
dom_beta
Mitglied
Beiträge: 255
Registriert: 29.11.2014 06:39

Re: "Das Team" für Gäste einsehbar machen

Beitrag von dom_beta »

funktioniert immer noch nicht?!

Code: Alles auswählen

// Check our mode...
if (!in_array($mode, array('', 'group', 'viewprofile', 'email', 'contact', 'contactadmin', 'searchuser', 'team', 'livesearch')))
{
	trigger_error('NO_MODE');
}

switch ($mode)
{
	case 'email':
	case 'contactadmin':
	break;

	case 'livesearch':
		if (!$config['allow_live_searches'])
		{
			trigger_error('LIVE_SEARCHES_NOT_ALLOWED');
		}
		// No break

	default:
        // Can this user view profiles/memberlist?
        if (!$auth->acl_gets('u_viewprofile', 'a_user', 'a_useradd', 'a_userdel'))
        {
            if ($user->data['user_id'] != ANONYMOUS)
            {
                trigger_error('NO_VIEW_USERS');
            }

            login_box('', ((isset($user->lang['LOGIN_EXPLAIN_' . strtoupper($mode)])) ? $user->lang['LOGIN_EXPLAIN_' . strtoupper($mode)] : $user->lang['LOGIN_EXPLAIN_MEMBERLIST']));
        }
	break;
}
MfG
dom_beta
Benutzeravatar
redbull254
Ehemaliges Teammitglied
Beiträge: 10379
Registriert: 05.01.2006 13:01
Kontaktdaten:

Re: "Das Team" für Gäste einsehbar machen

Beitrag von redbull254 »

Hallo erstmal,


aktualisierst Du auch die Cache ? Hier mal eine Anleitung dazu:
Dein Style muss noch in der Datenbank aktualisiert werden!

Voraussetzung ist hierbei, das die Dateien zur Änderung herunter geladen und nach der Änderung wieder ins
phpBB-Verzeichnis geladen wurden. Anderfalls würden die im ACP gemachten Änderungen in der Datenbank
wieder mit den alten Werten überschrieben.

Gehe dazu folgende Schritt durch:

ACP --> Styles --> Style-Komponenten --> Themes
ACP --> Styles --> Style-Komponenten --> Templates
ACP --> Styles --> Style-Komponenten --> Grafiksammlungen

Dort angekommen, klicke jeweils auf den Link „Aktualisieren“

Nach den Aktualisierungen gehe zurück auf den ACP Index ( ACP --> Allgemein ) und klicke
bei „Den Cache leeren" auf den Button „Jetzt ausführen“.

Bei manchen Browsern ist es zusätzlich nötig, den Browser Cache zu löschen. ( Meistens mit STRG + F5 )

Alternative Möglichkeit (Nur für den kurzzeitigen Gebrauch gedacht):

ACP --> Allgemein --> Serverlast --> Rekompilieren veralteter Style-Komponenten: JA einstellen.

Das sollte aber hinterher wieder zurück gestellt werden. (Sonst unter anderem große Serverlast)

Der Cache muss aber trotzdem geleert werden.

Hinweis:
Beim Style „subsilver“ brauchen die Style-Komponenten --> Themes nicht aktualisiert werden.
Macht man dies trotzdem, kommt folgende Fehlermeldung:
„Dieses Theme ist im Dateisystem gespeichert. Daher gibt es keinen Grund, es zu aktualisieren.“
Beste Grüße
Walter
Benutzeravatar
waldkatze
Ehemaliges Teammitglied
Beiträge: 792
Registriert: 08.03.2013 21:50

Re: "Das Team" für Gäste einsehbar machen

Beitrag von waldkatze »

funktioniert immer noch nicht?!
Das kann so auch nicht funktionieren.
Ich sehe in deinem Code die Zeile case 'leaders': nicht.
Ändere doch mal den Code so wie ich dir oben schon gezeigt habe.

Code: Alles auswählen

switch ($mode)
{
    case 'leaders': // Das musst du noch einfügen !!!
    case 'email':
    break;

    default:
        // Can this user view profiles/memberlist?
        if (!$auth->acl_gets('u_viewprofile', 'a_user', 'a_useradd', 'a_userdel'))
        {
            if ($user->data['user_id'] != ANONYMOUS)
            {
                trigger_error('NO_VIEW_USERS');
            }

            login_box('', ((isset($user->lang['LOGIN_EXPLAIN_' . strtoupper($mode)])) ? $user->lang['LOGIN_EXPLAIN_' . strtoupper($mode)] : $user->lang['LOGIN_EXPLAIN_MEMBERLIST']));
        }
    break;
} 
Das Bremsen eines Motorrades ist die Verschwendung hochwertiger Geschwindigkeit in sinnlose Wärmeenergie.
Benutzeravatar
Elsensee
Ehemaliges Teammitglied
Beiträge: 832
Registriert: 19.05.2010 15:14
Wohnort: Hamburg
Kontaktdaten:

Re: "Das Team" für Gäste einsehbar machen

Beitrag von Elsensee »

Für den Fall, dass es sich bei dir um ein phpBB 3.1.x handelt, muss dort nicht leaders, sondern team stehen. :)
Posts mostly powered by GitHub and phpBB.de Cross-Reference

2015-03-20 - Never forget 8)
Antworten

Zurück zu „[3.0.x] Mod Bastelstube“