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.
Benutzeravatar
RyoBerlin
Mitglied
Beiträge: 304
Registriert: 24.05.2004 14:11
Wohnort: Berlin

Beitrag von RyoBerlin »

Berliner Schildkroete hat geschrieben:versuch mal das:
es liegt an:

lösche ihn und füge nach:

danach einfügen:

EDIT: DANN IST DER CODE WIRKUNGSLOS :cry:
Jetzt versteh ich garnicht mehr *G*
Glaube nichts auf bloßes Hörensagen hin; glaube nicht an Überlieferungen, weil sie alt sind.
(Buddha, 553-483 v.Chr.)
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17473
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Beitrag von Dr.Death »

Wenn man dem Template durch:

Code: Alles auswählen

'S_IN_GROUP'               => true,
mitteilt, das S_IN_GROUP = true ist, dann ist es immer der Fall ;-)

Du musst Dir für diesen Fall noch eine Hilfsvariable einbauen:

VOR der Templatezuwesiung machst Du noch das:

Code: Alles auswählen

// Die folgende Zahl ist die ID der Gruppe die Ihr prüfen möchtet 
$check_group = 18; 

// Ist der User, der diese PHP Datei aufgerufen hat, in der Gruppe mit der o.g. ID ?? 
$is_in_group = get_group_auth($check_group); 
 
Nun enthält die Variable $is_in_group den Staus false oder true.

Und weiter unten bei der Template Zuordnung machst Du nun das:

Code: Alles auswählen

'S_IN_GROUP'               => $is_in_group ,
Benutzeravatar
RyoBerlin
Mitglied
Beiträge: 304
Registriert: 24.05.2004 14:11
Wohnort: Berlin

Beitrag von RyoBerlin »

ich frag mich echt was falsch ist... muss das an eine bestimmte stelle in der functions.php gesetzt werden oder was?

habs kurz vorm ende ?> gesetzt und zwar das

Code: Alles auswählen

/**
* get_group_auth
*
* Get group auth status
* Returns TRUE if user_id is in $access_group
*/
function get_group_auth($access_group = 5)
{
   global $db, $user;

   
   $sql = 'SELECT g.group_id
      FROM ' . GROUPS_TABLE . ' g, ' . USER_GROUP_TABLE . ' ug
      WHERE g.group_id = ug.group_id
         AND ug.user_id = ' . $db->sql_escape($user->data['user_id']) . '
         AND ug.user_pending <> ' . TRUE . '
         AND g.group_id = ' . $db->sql_escape($access_group);
   $result = $db->sql_query($sql);

   $check_group_auth = $db->sql_affectedrows($result);
   $db->sql_freeresult($result);
   if ( $check_group_auth <> 0 )
   {
      return TRUE;
   }
   return FALSE;
}
// Die folgende Zahl ist die ID der Gruppe die Ihr prüfen möchtet
$check_group = 18;

// Ist der User, der diese PHP Datei aufgerufen hat, in der Gruppe mit der o.g. ID ??
$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)
{
// The following assigns all _common_ variables that may be used at any point in a template.
   $template->assign_vars(array(
   'S_IN_GROUP'               => $is_in_group ,
}
dabei kam dann das raus
Parse error: syntax error, unexpected '}', expecting ')' in C:\Users\Ryo\Desktop\xampp-win32-1.6.3a\xampp\htdocs\TalkBerlin\backup\021007\includes\functions.php on line 4473
Glaube nichts auf bloßes Hörensagen hin; glaube nicht an Überlieferungen, weil sie alt sind.
(Buddha, 553-483 v.Chr.)
Benutzeravatar
nickvergessen
Ehrenadmin
Beiträge: 11559
Registriert: 09.10.2006 21:56
Wohnort: Stuttgart, Germany
Kontaktdaten:

Beitrag von nickvergessen »

Code: Alles auswählen

   'S_IN_GROUP'               => $is_in_group ,
}
mit

Code: Alles auswählen

   'S_IN_GROUP'               => $is_in_group ,
));
}
ersetzen
kein Support per PN
Benutzeravatar
RyoBerlin
Mitglied
Beiträge: 304
Registriert: 24.05.2004 14:11
Wohnort: Berlin

Beitrag von RyoBerlin »

Danke aber dann kommt wieder

Code: Alles auswählen

Fatal error: Call to a member function sql_escape() on a non-object in C:\Users\Ryo\Desktop\xampp-win32-1.6.3a\xampp\htdocs\TalkBerlin\backup\021007\includes\functions.php on line 4448
Glaube nichts auf bloßes Hörensagen hin; glaube nicht an Überlieferungen, weil sie alt sind.
(Buddha, 553-483 v.Chr.)
Benutzeravatar
Berliner Schildkroete
Mitglied
Beiträge: 563
Registriert: 30.03.2007 19:02
Wohnort: Berlin

[ungetestet]

Beitrag von Berliner Schildkroete »

suche:

Code: Alles auswählen

// The following assigns all _common_ variables that may be used at any point in a template.
	$template->assign_vars(array(
davor einfügen:

Code: Alles auswählen

// Die folgende Zahl ist die ID der Gruppe die Ihr prüfen möchtet
$check_group = 18;

// Ist der User, der diese PHP Datei aufgerufen hat, in der Gruppe mit der o.g. ID ??
$is_in_group = get_group_auth($check_group);
danach einfügen:

Code: Alles auswählen

'S_IN_GROUP'               => $is_in_group ,
Lösche:

Code: Alles auswählen

// 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
   $template->assign_var('S_IN_GROUP', true);
} 
dann sollte es eigentlich gehen...

EDIT: Code verbessert: Danke nickvergessen!
Zuletzt geändert von Berliner Schildkroete am 03.10.2007 11:29, insgesamt 1-mal geändert.
Grüße
Berliner Schildkröte
kein Support via PN, etc. - Befolgung meiner Vorschläge auf eigene Gefahr!
Benutzeravatar
nickvergessen
Ehrenadmin
Beiträge: 11559
Registriert: 09.10.2006 21:56
Wohnort: Stuttgart, Germany
Kontaktdaten:

Re: [ungetestet]

Beitrag von nickvergessen »

danach einfügen:

Code: Alles auswählen

'S_IN_GROUP'               => $is_in_group ,
da war ein ' zuviel!
kein Support per PN
Benutzeravatar
RyoBerlin
Mitglied
Beiträge: 304
Registriert: 24.05.2004 14:11
Wohnort: Berlin

Beitrag von RyoBerlin »

Also wenn ich in der functions.php nach einem vorhanden code suche und es so mache wie du schriebst kommt

Code: Alles auswählen

Fatal error: Call to undefined function: get_group_auth() in functions.php on line 4125
(nebenbei bemerkt das zu löschende existiert garnicht in der unbearbeiteten functions...)

Und wenn ich es neu mache kommt.

Code: Alles auswählen

Parse error: syntax error, unexpected '}', expecting ')' in functions.php on line 4472
lösche ich das mit dem $template

dann habe ich

Code: Alles auswählen

Parse error: syntax error, unexpected T_DOUBLE_ARROW in functions.php on line 4467
ich kann gerne einem von euch beidem meine functions mal unbearbeitet zumailen falls ihrs an die richtige stelle bekommt also ich schaffs anscheinend nicht :(
Glaube nichts auf bloßes Hörensagen hin; glaube nicht an Überlieferungen, weil sie alt sind.
(Buddha, 553-483 v.Chr.)
Benutzeravatar
nickvergessen
Ehrenadmin
Beiträge: 11559
Registriert: 09.10.2006 21:56
Wohnort: Stuttgart, Germany
Kontaktdaten:

Beitrag von nickvergessen »

zeig die datei mal her KB:81
kein Support per PN
Benutzeravatar
RyoBerlin
Mitglied
Beiträge: 304
Registriert: 24.05.2004 14:11
Wohnort: Berlin

Beitrag von RyoBerlin »

Naja hoffe da sind keine sensiblen daten drinne *G*

temporär zum download
Zuletzt geändert von RyoBerlin am 03.10.2007 16:51, insgesamt 1-mal geändert.
Glaube nichts auf bloßes Hörensagen hin; glaube nicht an Überlieferungen, weil sie alt sind.
(Buddha, 553-483 v.Chr.)
Antworten

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