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
- 
				matzman2000
 - 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)
- 
				matzman2000
 - 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