Hallo zusammen!
Um die Übersichtlichkeit für die Mitglieder zu wahren, würde ich gern folgende Konfiguration vornehmen wollen:
- alle Mitglieder einer Rolle, die zur Kategorie "A" (Beispiel) gehören, können an alle Rollen des Systems eine eMail über das Kontaktformular senden
- alle Mitglieder, die nicht einer Rolle der Kategorie "A" angehören, sollen eMails nur an die Rollen senden können, bei denen die Option "Eingeloggte Benutzer können E-Mails an diese Rolle schreiben" gesetzt ist
Damit kann ich den Adressatenkreis etwas einengen und gebe z.B. dem Vorstand trotzdem die Flexibilität allen Rollenkonstellationen (auch denen, die von anderen keine Post bekommen sollen) eine eMail zu senden.
Hat jemand eine Idee, wie sich das eventuell schon jetzt realisieren ließe (ggf. vorerst auch durch temporäre, "festverdrahtete" Codeanpassung)? Für die Zukunft würde ich mir das als Feature wünschen.
Danke und VG - Jörg
Steuerung der eMail-Versandmöglichkeiten
Hallo zusammen!
Leider hänge ich mit meinen bescheidenen php-Kenntnissen gerade mal dabei fest, die festverdrahtete Lösung selbst zu testen. Kann mir jemand mit einem "Codeschnipsel" helfen, mit dem ich prüfen kann, ob der eingeloggte User Mitglied einer Rolle mit der KategorieID "0815" ist? Wäre vermutlich eine SQL-Abfrage (?) ...
Vielen Dank schon mal für eure Hilfe.
VG - Joesch
Leider hänge ich mit meinen bescheidenen php-Kenntnissen gerade mal dabei fest, die festverdrahtete Lösung selbst zu testen. Kann mir jemand mit einem "Codeschnipsel" helfen, mit dem ich prüfen kann, ob der eingeloggte User Mitglied einer Rolle mit der KategorieID "0815" ist? Wäre vermutlich eine SQL-Abfrage (?) ...
Vielen Dank schon mal für eure Hilfe.
VG - Joesch
-
- Former team member
- Beiträge: 1087
- Registriert: 2. Sep 2007, 17:12
- Wohnort: Itzstedt
- Kontaktdaten:
Hi Joesch,
schau dir mal die Datei ADMIDIO\adm_program\system\function.php an. Dort sind eine ganze Reihe von Funktionen vorhanden, die Du innerhalb von Admidio benutzen kannst.
Für Deinen Zweck bietet sich wohl hasRole("Rollenname", User-ID) an.
Eine einfache Abfrage könnte lauten:
Gruss,
Matze
schau dir mal die Datei ADMIDIO\adm_program\system\function.php an. Dort sind eine ganze Reihe von Funktionen vorhanden, die Du innerhalb von Admidio benutzen kannst.
Für Deinen Zweck bietet sich wohl hasRole("Rollenname", User-ID) an.
Eine einfache Abfrage könnte lauten:
Code: Alles auswählen
if(hasRole("Rollenname", User-ID)
{
echo "Der Benutzer ist Mitglied der Rolle!";
}
Matze
Danke für den Tipp. Allerdings scheint meine SQL-Anpassung ins leere zu laufen. Ich bekomme stets nur false als Rückmeldung:
VG - Joesch
Code: Alles auswählen
$sql = "SELECT COUNT(*)
FROM ". TBL_MEMBERS. ", ". TBL_ROLES. ", ". TBL_CATEGORIES. "
WHERE mem_usr_id = $user_id
AND mem_valid = 1
AND mem_rol_id = rol_id
AND rol_valid = 1
AND rol_cat_id = cat_id
AND cat_id = 1 'steht für Kategorie 1, auf deren Zugehörigkeit ich prüfen will
AND cat_org_id = ". $g_current_organization->getValue("org_id");
$result = $g_db->query($sql)
-
- Former team member
- Beiträge: 1087
- Registriert: 2. Sep 2007, 17:12
- Wohnort: Itzstedt
- Kontaktdaten:
Hallo Joesch,
da hatte ich Dich falsch verstanden...
Deine SQL Abfrage ist eigentlich richtig, muss aber noch ausgewertet werden. So sieht eine einfache Auswertung dann aus:
Jetzt passt's hoffentlich.
Gruss,
Matze
da hatte ich Dich falsch verstanden...
Deine SQL Abfrage ist eigentlich richtig, muss aber noch ausgewertet werden. So sieht eine einfache Auswertung dann aus:
Code: Alles auswählen
$rollen_categorie = 6;
$user_id = $g_current_user->getValue("usr_id");
$sql = "SELECT COUNT(*)
FROM ". TBL_MEMBERS. ", ". TBL_ROLES. ", ". TBL_CATEGORIES. "
WHERE mem_usr_id = $user_id
AND mem_valid = 1
AND mem_rol_id = rol_id
AND rol_valid = 1
AND rol_cat_id = cat_id
AND cat_id = $rollen_categorie
AND cat_org_id = ". $g_current_organization->getValue("org_id");
$result = $g_db->query($sql);
$row = $g_db->fetch_array($result);
$row_count = $row[0];
if($row_count > 0)
{
echo "Hat Kategorie $rollen_categorie";
}
else
{
echo "Hat NICHT Kategorie $rollen_categorie";
}
Gruss,
Matze