Seite 7 von 8
Verfasst: 25.05.2008 16:43
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';
}
.
Verfasst: 25.05.2008 18:14
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

Verfasst: 25.05.2008 18:57
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.
Verfasst: 25.05.2008 19:16
von 4seven
Jetzt klingelts.
Alles klar
..Danke an euch und Grüße

Verfasst: 25.05.2008 19:51
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.
Verfasst: 25.05.2008 21:12
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");
}
Verfasst: 25.05.2008 22:39
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.
Verfasst: 25.05.2008 23:12
von 4seven
Genial, Ihr seid die Besten
(Wieder was gelernt)
Jetzt gehts
War ein Flüchtlings + Denkfehler

Verfasst: 26.05.2008 17:16
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???
Verfasst: 26.05.2008 17:56
von djchrisnet
geht nicht, da der gruppenname nicht in der tabelle gespeichert wird. was hast du gegen die ID?