Vorschlag Neues PlugIn Abfrage der E-Mailadresse / Rolle

Hast du Vorschläge, was wir an Admidio noch verbessern könnten ? Hier kannst du uns deine Vorstellung an neuen Funktionen mitteilen.
muellermanu
Beiträge: 111
Registriert: 27. Feb 2009, 00:02
Wohnort: Schönau a.d. Brend
Kontaktdaten:

Vorschlag Neues PlugIn Abfrage der E-Mailadresse / Rolle

Beitrag von muellermanu »

Hallo,

habe heute mal einen Vorschlag bzw. eine Bitte!

Wir nutzen in unserem Verein http://www.kolping-schoenau.de den Google Kalender für unsere Termine schon seit einer langen Zeit!

Da wir verschieden Untergruppen in unserem Verein haben mit jeweils eigenen Vorstandschaften und auch Kalendern, wird zum verteilen der Termine und Terminerinerungen der Google Kalender genutzt so wie zum verteilen anderer Informationen per E-Mail! Dies wird durch separat und händischen Verteilerlisten realisiert.

:?: Ist es möglich ein PlugIn zu erstellen (Wenn ja ist es ein großer Aufwand? Ich habe nämlich keine Ahnung von PHP) welches die E-Mailadressen einer bestimmten Rolle auf der Website Komma getrennt hintereinander schreibt, so dass man diese dann nur noch markieren braucht und mit kopieren und einfügen in den Google Kalender (Gäste) oder in jedes andere E-Mailprogramm einfügen kann?

Dies würde ersparen nochmal extra Listen ständig händisch zu erstellen bzw. immer abgleichen zu müssen.

Kann mir da jemand Helfen?

Vielen Dank schon mal

Gruß

Manu :?:
Gruß Manu
matzman2000
Former team member
Beiträge: 1087
Registriert: 2. Sep 2007, 17:12
Wohnort: Itzstedt
Kontaktdaten:

Beitrag von matzman2000 »

Hallo Manu,

ich hab mal ein kleines bisschen rumgespielt:

Code: Alles auswählen

<?php

include("ADMIDIOPFAD/adm_program/system/common.php");

// Hier Rollenname angeben
$rolle = "Mitglied";

$datum = date("Y-m-d",time());

$sql = "SELECT rol_id 
		FROM ". TBL_ROLES. " 
		WHERE rol_name = '". $rolle. "' ";

$result = $g_db->query($sql);
while($row = $g_db->fetch_array($result))
{
	$rolle_nr = $row['rol_id'];
}

$sql = "SELECT usr_id, row1id12.usd_value 
		FROM ". TBL_ROLES. ", ". TBL_CATEGORIES. ", ". TBL_MEMBERS. ", ". TBL_USERS. " 
		LEFT JOIN adm_user_data row1id12 ON row1id12.usd_usr_id = usr_id AND row1id12.usd_usf_id = 12 
		WHERE rol_id = ". $rolle_nr. " AND rol_cat_id = cat_id AND cat_org_id = 1 AND mem_rol_id = rol_id AND mem_end > '". $datum. "' AND mem_usr_id = usr_id AND usr_valid = 1 AND row1id12.usd_value != ''";
		
$result = $g_db->query($sql);

while($row = $g_db->fetch_array($result))
{
	$benutzer = new User($g_db, $row['usr_id']);
	echo $benutzer->getValue("E-Mail");
	echo " ; ";
}

?>
Ist eine ganz einfache Ausgabe der Emailadressen hinternanderweg mit Simikolontrennung und ohne weitere Formatierung.

Gruss,
Matze
muellermanu
Beiträge: 111
Registriert: 27. Feb 2009, 00:02
Wohnort: Schönau a.d. Brend
Kontaktdaten:

Beitrag von muellermanu »

Hallo Matze,

zunächst möchte ich mich erst einmal bei Dir bedanken, das Du Dich meinem Anliegen angenommen hast.

Leider kommt es bei mir auf der Website zu einer Fehlermeldung!

Ich habe das Script wie folgt geändert

Code: Alles auswählen

include("admidio/adm_program/system/common.php");

// Hier Rollenname angeben
$rolle = "Mitglieder";
leider kommt es zu folgenden Fehler:
Warning: main(admidio/adm_program/system/common.php) [function.main]: failed to open stream: No such file or directory in /home/www/web10/html/service/verteiler-mitglieder/test-verteiler/index.php4 on line 1265

Warning: main(admidio/adm_program/system/common.php) [function.main]: failed to open stream: No such file or directory in /home/www/web10/html/service/verteiler-mitglieder/test-verteiler/index.php4 on line 1265

Warning: main(admidio/adm_program/system/common.php) [function.main]: failed to open stream: No such file or directory in /home/www/web10/html/service/verteiler-mitglieder/test-verteiler/index.php4 on line 1265

Warning: main() [function.include]: Failed opening 'admidio/adm_program/system/common.php' for inclusion (include_path='.:/usr/share/php') in /home/www/web10/html/service/verteiler-mitglieder/test-verteiler/index.php4 on line 1265

Fatal error: Call to a member function on a non-object in /home/www/web10/html/service/verteiler-mitglieder/test-verteiler/index.php4 on line 1276


Kannst Du mir sagen was ich ändern muß?

Schon mal vielen Dank

Gruß Manu
Gruß Manu
matzman2000
Former team member
Beiträge: 1087
Registriert: 2. Sep 2007, 17:12
Wohnort: Itzstedt
Kontaktdaten:

Beitrag von matzman2000 »

Hi Manu,

die Fehlermeldung resultiert daraus, dass die common.php nicht eingebunden werden kann. Ich vermute, dass das Script nicht an der richtigen Stelle abgelegt ist. Damit es funktioniert, muss der Pfad richtig angepasst werden:

include("admidio/adm_program/system/common.php");
In diesem Fall gehört das Script in das Verzeichnis oberhalb von admidio (admidio ist also ein Unterverzeichnis).

Gruss,
Matze
Bochsler
Beiträge: 3
Registriert: 6. Apr 2009, 11:45

Script

Beitrag von Bochsler »

Hallo Matze

Cool, dieser Script konnte ich ebenfalls brauchen und habe mir es gleich ins Joomla auf der Benutzerseite reingetan.

Danke und Gruss
Reto
muellermanu
Beiträge: 111
Registriert: 27. Feb 2009, 00:02
Wohnort: Schönau a.d. Brend
Kontaktdaten:

Beitrag von muellermanu »

matzman2000 hat geschrieben:Hi Manu,

die Fehlermeldung resultiert daraus, dass die common.php nicht eingebunden werden kann. Ich vermute, dass das Script nicht an der richtigen Stelle abgelegt ist. Damit es funktioniert, muss der Pfad richtig angepasst werden:

include("admidio/adm_program/system/common.php");
In diesem Fall gehört das Script in das Verzeichnis oberhalb von admidio (admidio ist also ein Unterverzeichnis).

Gruss,
Matze
Hallo Matze,

komme leider nicht zurecht, kannste das etwas besser beschreiben!

Mein admidio Dateien sind unter html/admidio abgespeichert!

Die webseit in der das von Dir geschriebene Script abgelegt ist, ist unter html/service/verteilermitglieder/TEST-Verteiler/index.php eingefügt

Habe z.B. das LogIn Form auf meiner Website eingebunden, die funktionieren ohne Probleme.

Muß Dein Script in eine extra Datei auf den server?

Sorry bin Neuling in der ganzen Geschichte!

Danke schon mal

Gruß Manu
Gruß Manu
matzman2000
Former team member
Beiträge: 1087
Registriert: 2. Sep 2007, 17:12
Wohnort: Itzstedt
Kontaktdaten:

Beitrag von matzman2000 »

muellermanu hat geschrieben:Mein admidio Dateien sind unter html/admidio abgespeichert!
Hi Manu,

erstelle eine neue Datei, füge den Code ein und bennene sie zB "adressen.php" und lade sie nach html/admidio/adressen.php hoch. In dem Script änderst Du die Zeile mit dem include ab in

Code: Alles auswählen

include("adm_program/system/common.php");
Wenn Du diese Datei dann im Webbrowser aufrufst, sollte es klappen...

Gruss,
Matze
muellermanu
Beiträge: 111
Registriert: 27. Feb 2009, 00:02
Wohnort: Schönau a.d. Brend
Kontaktdaten:

Beitrag von muellermanu »

matzman2000 hat geschrieben:
erstelle eine neue Datei, füge den Code ein und bennene sie zB "adressen.php" und lade sie nach html/admidio/adressen.php hoch. In dem Script änderst Du die Zeile mit dem include ab in

Code: Alles auswählen

include("adm_program/system/common.php");
Wenn Du diese Datei dann im Webbrowser aufrufst, sollte es klappen...

Gruss,
Matze
Hi Matze,

habe nun probiert und probiert aber es funzt leider nicht!

Bekomme nun folgende Fehlermeldung:
Parse error: syntax error, unexpected T_INCLUDE in /home/www/web10/html/admidio/ko-mitglieder.php on line 3

Ich benutze Admidio 2.0.9 z.Zt. noch falls das was ausmacht!

Das Home Verzeichnis vom Server ist normalerweise html/

warum geht er in das verzeichnis : /home/www/web10/html/

liegt es vielleicht daran das die Datei im Verzeichnis nach der VStrucktur also html/home/www/web10/html/admidio/ko-mitglieder.php gesucht wird anstatt html/admidio/!?

Ich hoffe ich NERV nicht so arg!

Muß man sich als Benutzer in Admidio eingelogt haben?

Gibt es ggf. noch eine andere Möglichkeit oder bin ich einfach nur zu DUMM!?:oops:

Danke

Gruß Manu
:(
Gruß Manu
matzman2000
Former team member
Beiträge: 1087
Registriert: 2. Sep 2007, 17:12
Wohnort: Itzstedt
Kontaktdaten:

Beitrag von matzman2000 »

Hi Manu,

diese Abfrage funktioniert nicht mit der Version 2.0.9 sondern erst ab 2.1 !

Zudem hast Du dann noch einen Fehler im Code. Schau mal, das hinter der Zeile
include("adm_program/system/common.php");
auch das Simikolon ist...

Das Verezeichnis /home/www/web10/html/ wird im übrigen so ausgegeben, weil es der echte Serverpfad ist und nicht nur das, was man per FTP oder Webbrowser sieht...



Gruss,
Matze
muellermanu
Beiträge: 111
Registriert: 27. Feb 2009, 00:02
Wohnort: Schönau a.d. Brend
Kontaktdaten:

Beitrag von muellermanu »

matzman2000 hat geschrieben:Hi Manu,

diese Abfrage funktioniert nicht mit der Version 2.0.9 sondern erst ab 2.1 !

Zudem hast Du dann noch einen Fehler im Code. Schau mal, das hinter der Zeile
include("adm_program/system/common.php");
auch das Simikolon ist...

Das Verezeichnis /home/www/web10/html/ wird im übrigen so ausgegeben, weil es der echte Serverpfad ist und nicht nur das, was man per FTP oder Webbrowser sieht...



Gruss,
Matze
Hi Matze,

ist mir schon ziemlich peinlich, aber ich bekomme es einfach nicht hin!

Ich habe auf 2.1.1 geupdated

Habe eine Datei mitglieder.php mit deinem Script
unter adm_plugins/verteiler/ angelegt mit folgendem Script!

Code: Alles auswählen

<?php 

include ("admidio/adm_program/system/common.php"); 

// Hier Rollenname angeben 
$rolle = "Mitglieder"; 

$datum = date("Y-m-d",time()); 

$sql = "SELECT rol_id 
      FROM ". TBL_ROLES. " 
      WHERE rol_name = '". $rolle. "' "; 

$result = $g_db->query($sql); 
while($row = $g_db->fetch_array($result)) 
{ 
   $rolle_nr = $row['rol_id']; 
} 

$sql = "SELECT usr_id, row1id12.usd_value 
      FROM ". TBL_ROLES. ", ". TBL_CATEGORIES. ", ". TBL_MEMBERS. ", ". TBL_USERS. " 
      LEFT JOIN adm_user_data row1id12 ON row1id12.usd_usr_id = usr_id AND row1id12.usd_usf_id = 12 
      WHERE rol_id = ". $rolle_nr. " AND rol_cat_id = cat_id AND cat_org_id = 1 AND mem_rol_id = rol_id AND mem_end > '". $datum. "' AND mem_usr_id = usr_id AND usr_valid = 1 AND row1id12.usd_value != ''"; 
       
$result = $g_db->query($sql); 

while($row = $g_db->fetch_array($result)) 
{ 
   $benutzer = new User($g_db, $row['usr_id']); 
   echo $benutzer->getValue("E-Mail"); 
   echo " ; "; 
} 

?>
Aber es kommt immer noch zu folgenden Fehlermeldungen
wenn ich die Datei aufrufe über den Browser
http://www.kolping-schoenau.de/admidio/ ... lieder.php


Warning: main(admidio/adm_program/system/common.php) [function.main]: failed to open stream: No such file or directory in /home/www/web10/html/admidio/adm_plugins/verteiler/mitglieder.php on line 3

Warning: main(admidio/adm_program/system/common.php) [function.main]: failed to open stream: No such file or directory in /home/www/web10/html/admidio/adm_plugins/verteiler/mitglieder.php on line 3

Warning: main(admidio/adm_program/system/common.php) [function.main]: failed to open stream: No such file or directory in /home/www/web10/html/admidio/adm_plugins/verteiler/mitglieder.php on line 3

Warning: main() [function.include]: Failed opening 'admidio/adm_program/system/common.php' for inclusion (include_path='.:/usr/share/php') in /home/www/web10/html/admidio/adm_plugins/verteiler/mitglieder.php on line 3

Fatal error: Call to a member function on a non-object in /home/www/web10/html/admidio/adm_plugins/verteiler/mitglieder.php on line 14

Das update auf 2.1.1 hat leider keinen Erfolg gebracht! Oder hat sich von 2.1 auf 2.1.1 was an Deiner Programmierung geändert?

Noch ein Hinweis:
Das Plug in soll auf eine externe Seite also nicht in eine Admidio Seite eingebunden werden also meldet sich auch kein Benutzer an!

Ich hoffe Du hast noch gedult mit mir!

Vielleicht hat auch jemand anderes eine Ide woran es liegen kann!?

Danke

Gruß Manu
Gruß Manu
muellermanu
Beiträge: 111
Registriert: 27. Feb 2009, 00:02
Wohnort: Schönau a.d. Brend
Kontaktdaten:

Beitrag von muellermanu »

Hi Matze,

habe es nun geschaft jetzt funktioniert es!

Ich nutze folgendes Script

:idea: habe die include Zeile abgeändert von der common.php, so wie sie bei den anderen Plugins verwendet wird!

Code: Alles auswählen

<?php
  include_once($_SERVER['DOCUMENT_ROOT']. "/admidio/adm_program/system/common.php");
?>

<?php 

// Hier Rollenname angeben 
$rolle = "Mitglieder"; 

$datum = date("Y-m-d",time()); 

$sql = "SELECT rol_id 
      FROM ". TBL_ROLES. " 
      WHERE rol_name = '". $rolle. "' "; 

$result = $g_db->query($sql); 
while($row = $g_db->fetch_array($result)) 
{ 
   $rolle_nr = $row['rol_id']; 
} 

$sql = "SELECT usr_id, row1id12.usd_value 
      FROM ". TBL_ROLES. ", ". TBL_CATEGORIES. ", ". TBL_MEMBERS. ", ". TBL_USERS. " 
      LEFT JOIN adm_user_data row1id12 ON row1id12.usd_usr_id = usr_id AND row1id12.usd_usf_id = 12 
      WHERE rol_id = ". $rolle_nr. " AND rol_cat_id = cat_id AND cat_org_id = 1 AND mem_rol_id = rol_id AND mem_end > '". $datum. "' AND mem_usr_id = usr_id AND usr_valid = 1 AND row1id12.usd_value != ''"; 
       
$result = $g_db->query($sql); 

while($row = $g_db->fetch_array($result)) 
{ 
   $benutzer = new User($g_db, $row['usr_id']); 
   echo $benutzer->getValue("E-Mail"); 
   echo "; "; 
} 

?>
Auf jeden fall funktioniert es jetzt so wie ich mir es vorgestellt habe, auch wenn ich nicht weiß warum!

Vielen Dank für Dein Script und vorallem Deine Hilfsbereitschaft und Geduld!

Mach weiter so!

Gruß Manu

P.S. Wünsche noch ein schönes Osterfest!

:D
Gruß Manu
matzman2000
Former team member
Beiträge: 1087
Registriert: 2. Sep 2007, 17:12
Wohnort: Itzstedt
Kontaktdaten:

Beitrag von matzman2000 »

muellermanu hat geschrieben::idea: habe die include Zeile abgeändert von der common.php, so wie sie bei den anderen Plugins verwendet wird!

Auf jeden fall funktioniert es jetzt so wie ich mir es vorgestellt habe, auch wenn ich nicht weiß warum
Hi Manu,

die Antwort hast Du Dir selbst schon gegeben: Der include-Pfad ist in jedem Fall anzupassen. In Deinem Fall hast Du den absoluten Pfad verwendet, Du hättest auch den relativen Pfad angeben können.
Unterm Strich egal, es funktioniert und damit ist gut...

Gruss,
Matze
muellermanu
Beiträge: 111
Registriert: 27. Feb 2009, 00:02
Wohnort: Schönau a.d. Brend
Kontaktdaten:

Beitrag von muellermanu »

Hallo Admidio Team,

seite dem ich auf die Version 2.2.4 geupdatet habe funktioniert das Skript nicht mehr

Es erscheint nur noch die liste mit lauter Kommas also:
, , , , , , usw.

die E-Mailadressen werden dazwischen nicht mehr angezeigt!

Kann mir jemand erklären woran das liegt? Bzw. das Script abändern so das es wieder funktioniert?
Bzw. mir die Änderung mitteilen? Habe keine Ahnung von PHP

Vielen Dank für Eure Hilfe

Code: Alles auswählen

<?php
  include_once($_SERVER['DOCUMENT_ROOT']. "/admidio/adm_program/system/common.php");
?>

<?php 

// Hier Rollenname angeben 
$rolle = "Mitglieder-Kolpingsfamilie"; 

$datum = date("Y-m-d",time()); 

$sql = "SELECT rol_id 
      FROM ". TBL_ROLES. " 
      WHERE rol_name = '". $rolle. "' "; 

$result = $g_db->query($sql); 
while($row = $g_db->fetch_array($result)) 
{ 
   $rolle_nr = $row['rol_id']; 
} 

$sql = "SELECT usr_id, row1id12.usd_value 
      FROM ". TBL_ROLES. ", ". TBL_CATEGORIES. ", ". TBL_MEMBERS. ", ". TBL_USERS. " 
      LEFT JOIN adm_user_data row1id12 ON row1id12.usd_usr_id = usr_id AND row1id12.usd_usf_id = 12 
      WHERE rol_id = ". $rolle_nr. " AND rol_cat_id = cat_id AND cat_org_id = 1 AND mem_rol_id = rol_id AND mem_end > '". $datum. "' AND mem_usr_id = usr_id AND usr_valid = 1 AND row1id12.usd_value != ''"; 
       
$result = $g_db->query($sql); 

while($row = $g_db->fetch_array($result)) 
{ 
   $benutzer = new User($g_db, $row['usr_id']); 
   echo $benutzer->getValue("E-Mail"); 
   echo ", "; 
} 

?>
Gruß Manu
Benutzeravatar
fasse
Administrator
Beiträge: 6044
Registriert: 12. Nov 2005, 16:06

Beitrag von fasse »

Hallo Manu,

du musst

Code: Alles auswählen

echo $benutzer->getValue("E-Mail"); 
ersetzen durch

Code: Alles auswählen

echo $benutzer->getValue("EMAIL"); 
, dann sollte eigentlich wieder alles funktionieren.

Viele Grüße
Fasse
muellermanu
Beiträge: 111
Registriert: 27. Feb 2009, 00:02
Wohnort: Schönau a.d. Brend
Kontaktdaten:

Beitrag von muellermanu »

Hi Fasse,

sorry das ich erst jetzt antworte!

Vielen Dank, hast mir mal wieder sehr geholfen!

Habe den code nochmal richtig eingefügt damit man Ihn auch andere Inerressenten herauskopieren können!

Code: Alles auswählen

<?php 
  include_once($_SERVER['DOCUMENT_ROOT']. "/admidio/adm_program/system/common.php"); 
?> 

<?php 

// Hier Rollenname angeben 
$rolle = "Mitglieder-Kolpingsfamilie"; 

$datum = date("Y-m-d",time()); 

$sql = "SELECT rol_id 
      FROM ". TBL_ROLES. " 
      WHERE rol_name = '". $rolle. "' "; 

$result = $g_db->query($sql); 
while($row = $g_db->fetch_array($result)) 
{ 
   $rolle_nr = $row['rol_id']; 
} 

$sql = "SELECT usr_id, row1id12.usd_value 
      FROM ". TBL_ROLES. ", ". TBL_CATEGORIES. ", ". TBL_MEMBERS. ", ". TBL_USERS. " 
      LEFT JOIN adm_user_data row1id12 ON row1id12.usd_usr_id = usr_id AND row1id12.usd_usf_id = 12 
      WHERE rol_id = ". $rolle_nr. " AND rol_cat_id = cat_id AND cat_org_id = 1 AND mem_rol_id = rol_id AND mem_end > '". $datum. "' AND mem_usr_id = usr_id AND usr_valid = 1 AND row1id12.usd_value != ''"; 
        
$result = $g_db->query($sql); 

while($row = $g_db->fetch_array($result)) 
{ 
   $benutzer = new User($g_db, $row['usr_id']); 
   echo $benutzer->getValue("EMAIL"); 
   echo ", "; 
} 

?>
IHR SEIT ECHT SPITZE!!!
Macht weiter so!
Gruß Manu
Antworten