Page 1 of 1
Funktion um User und Gruppen zu ermitteln
Posted: Thu Jul 05, 2007 1:07 pm
by kleinerChemiker
Gibt es eine Funktion bei Plugins um die User aus der DB auszulesen?
Bisher hatte ich eine fixe IP und konnte daher bei Google Analytics meine eigenen Zugriffe leicht wegfiltern. Da ich aber gerade eine dynamische IP habe, ist mir erst bewußt geworden, daß das nun nicht geht und eventuell auch andere gerne ihre eigenen Zugriffe nicht zählen wollen. Daher will ich eine Liste mit allen Usern (am besten nach Gruppe geordnet) und eine mit allen Gruppen, sodaß man auswählen kann, bei wem der Tracking-Code nicht eingefügt wird.
Gibt es dafür schon eine fertige Funktion, und muß ich das über eine SQL-Abfrage machen? Bei der Gelegenheit, hat s9y eigentlich eine SQL-Abstraktion? Falls ja, gibts da ne Dok dazu?
tia
MIK
Re: Funktion um User und Gruppen zu ermitteln
Posted: Thu Jul 05, 2007 1:16 pm
by garvinhicking
Hi!
Serendipity bietet dafür Funktionen an, ja.
Siehe include/functions_config.inc.php:
serendipity_getGroups()
serendipity_getAllGroups()
include/functions.inc.php:
serendipity_fetchUsers()
Code: Select all
Bei der Gelegenheit, hat s9y eigentlich eine SQL-Abstraktion? Falls ja, gibts da ne Dok dazu?
Serendipity hat nen einfachen Datenbanklayer, serendipity_db_query et al in der include/db/db.inc.php. SQL Abstraktion wird wenig betrieben, wir nutzen einfach SQL-Kommandoes die in SQLite, PGSQL und MYSQL gültig sind. Ansonsten halt if/else konstrukte, z.b. bei abweichender Volltextsuche.
Grüße,
Garvin
Posted: Thu Jul 05, 2007 2:15 pm
by kleinerChemiker
super, danke. und wie bekomme ich die user-id und gruppen-id des eingeloggten users?
Posted: Thu Jul 05, 2007 2:20 pm
by garvinhicking
Hi!
Die aktuelle User-ID ist in der Variable $serendipity['authorid']. Die zugehörigen Gruppen musst Du mittels serendipity_getGroups() ermitteln.
Viele Grüße,
Garvin
Posted: Thu Jul 05, 2007 2:26 pm
by kleinerChemiker
danke dir

Posted: Thu Jul 05, 2007 3:16 pm
by kleinerChemiker
und schon die nächste frage.
so sieht die config derzeit aus:
Code: Select all
case 'analytics_exclude_groups':
function plugin_google_analytics_exclude_groups() {
$groups = serendipity_getAllGroups();
foreach ($groups as $group) {
$exclude_groups[$group['id']] = $group['name'];
}
return $exclude_groups;
}
$propbag->add('type', 'select');
$propbag->add('name', PLUGIN_EVENT_GOOGLE_ANALYTICS_EXCLUDE_GROUPS);
$propbag->add('description', PLUGIN_EVENT_GOOGLE_ANALYTICS_EXCLUDE_GROUPS_DESC);
$propbag->add('select_values', plugin_google_analytics_exclude_groups());
break;
wie schaffe ich es, daß es ein select wird, bei dem man mehrere oder auch gar kein element auswählen kann?
tia
Posted: Thu Jul 05, 2007 3:33 pm
by garvinhicking
Hi!
Ein Tipp: Eine Funktion solltest Du nicht an dieser Stelle deklarieren, die musst Du ausserhalb setzen!
Ein Multi-Select Feld ist nicht so einfach zu realisieren. Schau dir mal das serendipity_event_spamblock.php an und guck nach "hide_for_authors".
Grüße,
Garvin