Auslesen der Gruppenzugehörigkeiten eines benutzers

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.
4seven
Mitglied
Beiträge: 5869
Registriert: 21.04.2007 06:18

Beitrag von 4seven »

Ich habe dieses Script jetzt bis zum blöde werden versucht zum laufen zu bringen.

http://www.phpbb.de/viewtopic.php?t=164060

Hier zb. in der functions_posting.php (hab es aber auch in allen möglichen anderen Dateien versucht)

Er schmeißt mir als echo immer: "Du bist kein Mitglied in Gruppe 7" raus, obwohl ich mit einem Mitglied der Gruppe 7 die Seite aufrufe.

Hinweis: Ich möchte kein Template-Switch, sondern ein Funktions-Switch erstellen (das müsste aber in jedem Falle analog funktionieren, da ja die Anweisung klar ist)

Hat da wer eine Lösung parat?
<?php
/**
*
* @package phpBB3
* @version $Id: functions_posting.php 8479 2008-03-29 00:22:48Z naderman $
* @copyright (c) 2005 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/

/**
* @ignore
*/
if (!defined('IN_PHPBB'))
{
exit;
}

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

$gruppen_id = 7;
$benutzer_id = $user->data['user_id'];
$is_in_group = group_memberships($gruppen_id, $benutzer_id , true);

if ($is_in_group == true)
{
echo 'Du bist Mitglied in Gruppe 7';
}
else
{
echo 'Du bist kein Mitglied in Gruppe 7';
}
.
Zuletzt geändert von 4seven am 25.05.2008 20:41, insgesamt 1-mal geändert.
Helmut
Mitglied
Beiträge: 2048
Registriert: 27.12.2002 20:35
Wohnort: Augsburg

Beitrag von Helmut »

Hallo 4seven,

ich verwende dieses Skript von Dr.Death in die functions.php eingebaut, es funktioniert auch mit 3.0.1 fehlerfrei. Ich habe die Abfrage dann in meiner *.php Datei so gemacht:

Code: Alles auswählen

// Die zu prüfenden Gruppen IDs müssen mit Komma getrennt eingetragen werden
$check_group = "5";

$is_in_group = get_group_auth($check_group);

// Wenn der User in dieser Gruppe ist, liefert die Funktion den Wert TRUE zurück.
if ($is_in_group == true)
{
    // Teile dem Template System mit, das die Variable "S_IN_GROUP" den Wert TRUE bekommt
    // In der html Datei kann mit <!-- IF S_IN_GROUP -->  und <!-- ENDIF --> ein Bereich markiert werden.
   $template->assign_var('S_IN_GROUP', true);
}
else
{
	trigger_error($user->lang['NOT_AUTORIZED_SVI'] . '<br /><br />' . sprintf($user->lang['BACK_TO_SVI'], '<a href="' . append_sid("{$phpbb_root_path}" . 'svisuite/index.' . $phpEx) . '">', '</a>',  '<a href="' . append_sid("{$phpbb_root_path}" . 'ucp.' . $phpEx . '?mode=login') . '">', '</a>'));
}
//------------------------------------------------------
Gruß Helmut :wink:
Ich bin nicht ganz dicht.... na und.
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17473
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Beitrag von Dr.Death »

Dein Script kann nicht funktionieren, da Du am Anfang des Scripts keinerlei Sessiondaten initialisiert hast.

Halte Dich an die minimalen Voraussetzungen für eigene phpBB3 Scripte und die Gruppenabfrage wird funktionieren.
4seven
Mitglied
Beiträge: 5869
Registriert: 21.04.2007 06:18

Beitrag von 4seven »

Jetzt klingelts.

Alles klar :D

..Danke an euch und Grüße :grin:
4seven
Mitglied
Beiträge: 5869
Registriert: 21.04.2007 06:18

Beitrag von 4seven »

Hallo nochmal,

habe es jetzt so in der functions_posting.php

Er schmeißt mir immer noch als echo: "Du bist kein Mitglied in Gruppe 7" raus,
obwohl ich mit einem Mitglied der Gruppe 7 die Seite aufrufe.
<?php
/**
*
* @package phpBB3
* @version $Id: functions_posting.php 8479 2008-03-29 00:22:48Z naderman $
* @copyright (c) 2005 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/

/**
* @ignore
*/
if (!defined('IN_PHPBB'))
{
exit;
}

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

$user->session_begin();
$user->setup();
$auth->acl($user->data);

$gruppen_id = 7;
$benutzer_id = $user->data['user_id'];
$is_in_group = group_memberships($gruppen_id, $benutzer_id , true);

if ($is_in_group == true)
{
echo 'Du bist Mitglied in Gruppe 7';
}
else
{
echo 'Du bist kein Mitglied in Gruppe 7';
}
Edit: Um das abzukürzen und damit ich nicht länger fragen muss:
Kann mir jemand ein "lebendes Beispiel", also eine komplette Datei verlinken, bei der es funktioniert. Nochmal: Ich möchte keinen Template-Switch, sondern einen Funktions-Switch erstellen. echo dient als Test, weil wenn echo funktioniert wird auch der Switch funktionieren.
Benutzeravatar
djchrisnet
Mitglied
Beiträge: 1275
Registriert: 29.06.2007 15:52
Wohnort: Elmshorn
Kontaktdaten:

Beitrag von djchrisnet »

ich persönlich finde folgenden code für die Include zeile passender:

Code: Alles auswählen

if (!function_exists('group_memberships'))
						{
							include($phpbb_root_path . "includes/functions_user.$phpEx");
						}
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17473
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Beitrag von Dr.Death »

Ich habe diese Gruppenabfrage in meinem Formel 1 Webtipp eingebaut.
Schau Dir mal die im Root liegende " formel.php " etwas näher an.
4seven
Mitglied
Beiträge: 5869
Registriert: 21.04.2007 06:18

Beitrag von 4seven »

Genial, Ihr seid die Besten (Wieder was gelernt)

Jetzt gehts

War ein Flüchtlings + Denkfehler :wink:
Benutzeravatar
Pionier
Mitglied
Beiträge: 232
Registriert: 29.12.2007 19:55
Wohnort: Niebüll (S-H)
Kontaktdaten:

Beitrag von Pionier »

Ich möchte aus

Code: Alles auswählen

// zu überprüfende Gruppen ID ( Beispiel Gruppen ID 5 )
$gruppen_id = 5;
ein

Code: Alles auswählen

// zu überprüfende Gruppen Name ( Beispiel Gruppen Name = Moduser )
$gruppen_name = 'moduser';
machen. Mit dem hier gezeigten Code geht es nicht :(

Was muss ich ändern???
Benutzeravatar
djchrisnet
Mitglied
Beiträge: 1275
Registriert: 29.06.2007 15:52
Wohnort: Elmshorn
Kontaktdaten:

Beitrag von djchrisnet »

geht nicht, da der gruppenname nicht in der tabelle gespeichert wird. was hast du gegen die ID?
Antworten

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