Ergebnisliste des Calendar-Plugins ist falsch

Hast du Probleme oder Fragen bei der Einrichtung bestimmter Plugins ? Diese kannst du hier loswerden.
Antworten
bettes
Beiträge: 65
Registriert: 12. Mai 2008, 23:33
Kontaktdaten:

Ergebnisliste des Calendar-Plugins ist falsch

Beitrag von bettes »

Hallo Kollegen,

ich habe mir mal die Ergebnisliste des Plugin calendar angesehen. M.E. ist die Liste falsch, da auch Ehemalige Mitglieder mit ausgegeben werden. Dies ist umso peinlicher, wenn diese verstorben sind. Wir löschen diese Mitglieder in unserem Verein nicht, um uns die Möglichkeit zu erhalten einen Überblick über den historischen Mitgliederstand zu erhalten.

Ich habe daher die Selektion wie nachfolgend abgeändert:

Code: Alles auswählen

    $sql = "SELECT DISTINCT 
                usr_id, last_name.usd_value AS last_name, first_name.usd_value AS first_name, 
                birthday.usd_value AS birthday
            FROM ". TBL_ROLES. ", ". TBL_CATEGORIES. ", ". TBL_MEMBERS. ", ". TBL_USERS. "
                RIGHT JOIN ". TBL_USER_DATA. " AS birthday ON birthday.usd_usr_id = usr_id
                    AND birthday.usd_usf_id = ". $g_current_user->getProperty("Geburtstag", "usf_id"). "
                    AND MONTH(birthday.usd_value) = $monat
                LEFT JOIN ". TBL_USER_DATA. " AS last_name ON last_name.usd_usr_id = usr_id
                    AND last_name.usd_usf_id = ". $g_current_user->getProperty("Nachname", "usf_id"). "
                LEFT JOIN ". TBL_USER_DATA. " AS first_name ON first_name.usd_usr_id = usr_id
                    AND first_name.usd_usf_id = ". $g_current_user->getProperty("Vorname", "usf_id"). "
		
            WHERE rol_cat_id = cat_id
                AND cat_org_id = ". $g_current_organization->getValue("org_id"). "
                AND rol_id     = mem_rol_id
				AND rol_valid  = 1
                AND mem_usr_id = usr_id
                AND usr_valid  = 1
				AND mem_rol_id = 4
				AND mem_end  > '".DATE_NOW."'
           ORDER BY Month(birthday.usd_value) ASC, DayOfMonth(birthday.usd_value) ASC, last_name, first_name";
Wesentliche Änderung im Select ist die Filtereinschränkung auf "AND mem_rol_id= x" AND "Mem_end > ".Date_Now." Damit wird zum einen die Zugehörigkeit zu einer bestimmten Rolle eingeschränkt und zum anderen die Gültigkeit der Mitgliedschaft geprüft. Allerdings schränkt diese Vorgehensweise den Filter auf ein komplettes Ende der Mitgliedschaft ein. Sollte die Selektion nur ein Rollenende berücksichtigen, müsste der Select umgeschrieben werden. Dazu habe ich aber momentan noch nicht den kompletten Überblick über die Tabellenstruktur. Vielleicht weiß ja einer vom Prog_Team hier eine Lösung?

Gruß

Bettes
Benutzeravatar
fasse
Administrator
Beiträge: 6182
Registriert: 12. Nov 2005, 16:06

Beitrag von fasse »

Hallo Bettes,

vielen Dank für den Hinweis. Wir werden dies noch korrigieren.
Es reicht allerdings aus, dies auf das mem_begin und mem_end-Datum zu prüfen.
mem_rol_id = x muss nicht geprüft werden, da du ja über alle gültigen Rollen der Organisation gehen möchtest.

Viele Grüße
Fasse
bettes
Beiträge: 65
Registriert: 12. Mai 2008, 23:33
Kontaktdaten:

Beitrag von bettes »

Hallo Fasse,

danke für die Info. Wenn ich das datenbank-Konzept richtig verstanden habe, beziehen sich die Felder mem_begin und mem_end auf die gesamte Datenbank. Reicht dann die Einschränkung der Rolle mem_rol_id = 4 um ein zukünftiges Ende der Zugehörigkeit zu berücksichtigen.

Zur Erklärung: Ein Mitglied hat bis Jahresende seine Mitgliedschaft in der selektierte Rolle gekündigt, hat aber zwischenzeitlich noch Geburtstag. Er müsste also dieses Jahr noch erscheinen. Durch die Scroll-Funktion darf aber im nächsten Jahr die Anzeige des Geburtstages nicht mehr erscheinen.

Wie muss in diesem Fall die Selektion geändert werden? Oder habe ich einen Denkfehler und die Einschränkunkung auf die Rolle reicht aus?

Gruß
Bettes
Benutzeravatar
fasse
Administrator
Beiträge: 6182
Registriert: 12. Nov 2005, 16:06

Beitrag von fasse »

Hallo Bettes,

wenn du Geburtstage nur für eine bestimmte Rolle anzeigen willst, dann musst du diese natürlich noch mit in das SQL aufnehmen. Standardmäßig zeigen wir alle Geburtstage von aktiven Mitgliedern an, weshalb dann keine Selektion auf eine bestimmte Rolle nötig ist.

Die Anpassung zum Calendar-Plugin kommt noch, es ist doch noch etwas kniffliger als ich zuerst angenommen habe.

Gruß
fasse
bettes
Beiträge: 65
Registriert: 12. Mai 2008, 23:33
Kontaktdaten:

Beitrag von bettes »

Hallo fasse,

sofern es zur Anpassung des Plugin möglich ist, sollte man dann wie im Thread von ise geschriebenhttp://www.admidio.org/forum/viewtopic. ... highlight= vielleicht die Möglichkeit einbauen, für die Termine und die Geburtstage eine farbliche Unterscheidung einzubauen.

Ebenfalls wäre es im Sinne meines Posts http://www.admidio.org/forum/viewtopic.php?t=2545 interessant über die config.php eine url an das plugin zu übergeben. Sofern dieses Feld leer bleibt könnte die Standard-Url weiter verwendet werden. Ich habe dies im ersten Teil des Plugins vorgenommen, allerdings habe ich dabei noch nicht die Einrichtung der Standard-Url vorgenommen. Dies war bisher für meien Bedürfnisse auch noch nicht notwendig.
Ein weiterer Punkt an den ich gerade denke, ist die flexiblere Gestaltung ob der Link bei den Terminen als top oder self aufgerufen werden soll, ebenso wie dies für die Geburtstage möglich sein sollte.

Ich weiß aber auch, dass diese Wünsche eher von meiner Integration von admidio in joomla geprägt sind und nicht unbedingt für die Allgemeinheit von Nutzen sind. Also wenn nicht alles umgesetzt werden kann, ist das auch nicht so schlimm, denn dann nehme ich die Anpassungen im eigenen Code vor.

Gruß
Bettes
Benutzeravatar
fasse
Administrator
Beiträge: 6182
Registriert: 12. Nov 2005, 16:06

Beitrag von fasse »

Hallo Bettes,

die Korrektur war jetzt doch nicht knifflig, war ein Denkfehler von mir. Es muss eigentlich nur die Prüfung auf mem_begin und mem_end hinein. Hab dies jetzt gemacht und eine aktuelle Version 1.5.1 auch schon hochgeladen.

Du kannst gerne noch Anpassungen am Plugin machen, welche wir auch gerne in den Standard übernehmen, sofern diese im Code dokumentiert und sauber eingebaut sind.

Viele Grüße
Fasse
bettes
Beiträge: 65
Registriert: 12. Mai 2008, 23:33
Kontaktdaten:

Beitrag von bettes »

Hallo fasse,

in Ordnung, dann werde ich in den nächsten Tagen mal das Calendar-Plugin etwas abändern. ob ich allerdings auch Änderungen zur Farbgebung einpflegen kann, weiß ich noch nicht, denn soweit gehen meine PHP-Kenntnisse doch nicht. Ich bin eher in der Welt von IBM's DB2-System unterwegs.
Soweit ich mich an einen Post erinnern kann, ist Matze hierfür Autor. Ich hoffe, dass er keine Einwände zu den Änderungen hat.

Ich melde mich dann wieder.

Bis bald

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

Beitrag von matzman2000 »

bettes hat geschrieben:Soweit ich mich an einen Post erinnern kann, ist Matze hierfür Autor. Ich hoffe, dass er keine Einwände zu den Änderungen hat.
Hat er nicht...
Bitte Änderungen im Code, wie Fasse schon schrieb, sauber dokumentieren. Dann passt das schon.
bettes
Beiträge: 65
Registriert: 12. Mai 2008, 23:33
Kontaktdaten:

Beitrag von bettes »

Habt Ihr Sonntags nichts anderes zu tun? :lol:
matzman2000
Former team member
Beiträge: 1087
Registriert: 2. Sep 2007, 17:12
Wohnort: Itzstedt
Kontaktdaten:

Beitrag von matzman2000 »

Ich hatte Schneeschieb- und auf's Kind-aufpassen-Pause... :lol:
bettes
Beiträge: 65
Registriert: 12. Mai 2008, 23:33
Kontaktdaten:

Beitrag von bettes »

Ist immer das gleiche mit den Frauen :wink: WIR müssen dann mal Schneeschieben und auf die Kinder müssen wir auch noch aufpassen.... und wer ist mit wir gemeint? :evil:
Antworten