ich wollte im Tooltip vom Advance Online Panel eine Benutzergruppe anzeigen zu lassen bzw einen Text "Dieses Mitglied ist in Gruppe xyz" und wenn das Mitglied nicht in der Gruppe ist dann " Das Mitglied ist noch nicht in Gruppe xyz".
Ich habe es schon mit den Code aus der Maincore.php und Profil.php versucht und etwas anzupassen, aber entweder wurde nichts angezeigt oder Error 500.
Hat vielleicht jemand einen Denkanstoß wie wann es im Tooltip anzeigen könnte?
Der Autor vom Panel hat da einfach nur mit einer Variablen gearbeitet (Wenn der User im Profil sein Geschlecht angegeben hat, fülle die Variable mit dem Bild "Frau" oder "Mann" (je nach Geschlecht) und zeige es an. Ist kein Geschlecht angegeben, schreibe "Keine Angaben" in die Variable.).
Also erst die Bedingung festgelegt und dann die Variable mit dem entsprechenden Wert bestückt.
Das brauchst Du aber bei Deinem Anliegen nicht.
Kannst Du mal bitte die Ausgabe-Datei anhängen?
/*-------------------------------------------------------+
| PHP-Fusion Content Management System |
| Copyright ? 2002 - 2017 Nick Jones |
| https://www.php-fusion.co.uk/ |
+--------------------------------------------------------+
| Filename: _functions.inc.php |
| Copyright ? 2009-2017 ptown67 |
| http://www.ptown67.de/ |
+--------------------------------------------------------+
| Co-Author: PHP-Fusion Austria |
| https://www.phpfusion-development.at/ |
+--------------------------------------------------------+
| This program is released as free software under the |
| Affero GPL license. You can redistribute it and/or |
| modify it under the terms of this license which you |
| can read by viewing the included agpl.txt or online |
| at www.gnu.org/licenses/agpl.html. Removal of this |
| copyright header is strictly prohibited without |
| written permission from the original author(s). |
+--------------------------------------------------------*/
// Check Access
if (!defined("IN_FUSION")) { die("Access Denied"); }
// If there is a Message, check if it should be hideable
if ($returnString && $hideable) {
$returnString = "<div id='close-message'>\n".$returnString."</div>\n";
}
// Display Content for the Panel
if (!@function_exists("aou_displayPanelContent")) {
function aou_displayPanelContent() {
global $aouSettings, $locale, $settings;
// Display Last Seen Members
if ($aouSettings['aou_showmembersnum']) {
// Get all Members
$users = dbquery("SELECT * FROM ".DB_USERS." ORDER BY user_lastvisit DESC LIMIT 0,".$aouSettings['aou_showmembersnum']."");
if (dbrows($users)) {
while ($user = dbarray($users)) {
// Display all Members
if ($aouSettings['aou_showallmembers']) {
$allMembersCounter = dbcount("(user_id)", DB_USERS, "user_status='0'");
$returnString .= "<li class='small'>· ".$locale['aou-panel-103'].": <span class='small2 aou-flright'>".number_format($allMembersCounter)."</span></li>\n";
}
// Display Members to Activate
if (iADMIN && checkrights("M") && $settings['admin_activation'] == "1") {
$membersActivateCounter = dbcount("(user_id)", DB_USERS, "user_status='2'");
$returnString .= "<li class='small'>· ".$locale['aou-panel-104'].": <span class='small2 aou-flright'>".number_format($membersActivateCounter)."</span></li>\n";
}
// Display all Members
if ($aouSettings['aou_shownewmember']) {
$newMember = dbarray(dbquery("SELECT user_id, user_name FROM ".DB_USERS." WHERE user_status='0' ORDER BY user_joined DESC LIMIT 0,1"));
$returnString .= "<li class='small'>· ".$locale['aou-panel-105'].": <span class='small2 aou-flright'><a href='".$settings['siteurl']."profile.php?lookup=".$newMember['user_id']."' title='".$newMember['user_name']."'>".trimlink($newMember['user_name'], 15)."</a></span></li>\n";
}
Ich würde sagen, am besten wäre die Anzeige wohl unter der Geschlchterangabe untergebracht:
Code
if (CHECKGROUP(xx)) {
$userTooltip .= "<span class='small'>"Gruppe:"</span><span class='small aou-flright'>".Benutzer ist in Gruppe XY </span><br /><br/>";
}else{
$userTooltip .= "<span class='small'>"Gruppe:"</span><span class='small aou-flright'>".Benutzer ist in nicht Gruppe XY </span><br /><br/>";
}
(xx) ist hier wieder die ID der Benutzergruppe, die Du da abfragen willst. Benutzergruppen-ID findest Du immer im Adminbereich -> Benutzer -> Benutzergruppen, hier ist die Zahl in den Klammern vor der Gruppe oben in der Dropdownliste die ID der Gruppe.
Willst Du das Ganze dann noch nur ADMINS anzeigen lassen, baust Du eine entsprechende Abfrage um obigen Coder herum:
Code
if (iADMIN) {
hier der vollständige obige Code
}
Oder entsprechend nur für SUPERADMINS:
Code
if (iSUPERADMIN) {
hier der vollständige obige Code
}
wenn ich das so vor den tooltip eintrage und auch mittten drine eintrage, dann verursacht es nur eine Error 500 meldung.
Code
if (CHECKGROUP(01)) {
$userTooltip .= "<span class='small'>"Gruppe:"</span><span class='small aou-flright'>".Benutzer ist in Gruppe XY </span><br /><br/>";
}else{
$userTooltip .= "<span class='small'>"Gruppe:"</span><span class='small aou-flright'>".Benutzer ist in nicht Gruppe XY </span><br /><br/>";
$userTooltip .= "<span class='small'>"Gruppe:"</span><span class='small aou-flright'>".Benutzer ist in Gruppe XY </span><br /><br/>";
}else{
$userTooltip .= "<span class='small'>"Gruppe:"</span><span class='small aou-flright'>".Benutzer ist in nicht Gruppe XY </span><br /><br/>";
verursacht beides fehler, es müsste doch wie bei den anderen angaben [$user_group] irgendwie rausgefunden werden, oder?
ist if checkgroup nicht um einen inhalt für eine bestimmte gruppe anzuzeigen?
Bearbeitet von TBR am 27.05.2018 um 19:03
Die Funktion checkgroup() prüft nicht, ob ein beliebiger (anderer) User Mitglied einer Gruppe ist, sondern ob man selbst (bzw. derjenige, der das Script gerade aufruft) in dieser Gruppe ist (z,B. um zu prüfen ob man den gerade aufgerufenen Content überhaupt sehen darf).
Mit einem zusätzl. Query über der Zeile $userTooltip = str_replace("'", "\'", $userTooltip);
Code
$gruppen_id = 1;
$result2 = dbquery("SELECT * FROM `".DB_USERS."` WHERE `user_groups` REGEXP('^\\\.".$gruppen_id."$|\\\.".$gruppen_id."\\\.|\\\.".$gruppen_id."$') AND `user_id` = '".$user['user_id']."'");
$rows = dbrows($result2);
if($rows != 0) { $userTooltip .= "<span class='small'>Gruppe:</span><span class='small aou-flright'>Benutzer ist in Gruppe XY </span><br /><br/>"; }
else { $userTooltip .= "<span class='small'>Gruppe:</span><span class='small aou-flright'>Benutzer ist in nicht Gruppe XY </span><br /><br/>"; }
kannst du prüfen, ob ein Benutzer in einer bestimmten Gruppe ist.
Wenn du wie von Layzee gezeigt den kompletten Abschnitt nur für Admins aktivieren möchtest, setze noch if(iADMIN) { davor und dahinter als Abschluss } , also so:
Code
if(iADMIN) {
OBIGEN CODE HIER REIN
}
Da die Usergruppen eigentlich bereits vorliegen (durch das vorangegangene DB-Query) und im Array $user[] gespeichert sind, kann man sich den $result2 Query auch komplett sparen und direkt mit $user['user_groups'] arbeiten und dessen Wert mit regex zerlegen und prüfen.
Mein Vorschlag ist also nicht 100% optimiert,sollte aber funktionieren.
Bearbeitet von Systemweb am 29.05.2018 um 14:11
hi,
mit dem code, zeigt er mir das Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE 'user_id' = '1'' at line 1 im online panel an und das return $result->num_rows; im fehlerlog.
wenn ich mit $user['user_group'] versuche, dann zeigt er mir zumindest schon mal ".1" an und wenn ich aus der gruppe rausgehe, dann zeigt er nichts an.
bei dem code vom systemweb zeigt er nur an dass man in der gruppe ist und aktualisiert nicht bei veränderungen.
Hab da einen Faselfehler gemacht. Die Zeile muss so sein:
Code
$result2 = dbquery("SELECT * FROM `".DB_USERS."` WHERE `user_groups` REGEXP('^\\\.".$gruppen_id."$|\\\.".$gruppen_id."\\\.|\\\.".$gruppen_id."$') AND `user_id` = '".$user['user_id']."'");
Hab es auch oben im Beitrag korrigiert, so dass du den gesamten Code nochmal korrekt kopieren kannst.
Cookie Control - PHP-Fusion Deutschland - Offizielle Supportseite verwendet einige Cookies, um Informationen auf Deinem Computer zu speichern. [Lesen über unsere Cookies].
Bitte klicke den Cookies akzeptieren Button um unsere Cookies zu akzeptieren.