Nachrichtenmodul

Hast du einen Fehler in der aktuellen Version gefunden ? Diesen kannst du uns hier mitteilen und uns bei der Fehlersuche helfen.
Antworten
oliver
Beiträge: 238
Registriert: 25. Nov 2014, 19:47

Nachrichtenmodul

Beitrag von oliver »

Hallo,

beim Schreiben von Mails werdenb nach den Rollen die aktiven und die passiven Mitglieder in der Selectbox für den Empfänger aufgelistet.
  • - Es sind Mitglieder unter "ehemalige Mitglieder", die definitiv noch aktiv sind und auch aktive Rollenzugehörigkeiten besitzen.
    - Die Liste ist nicht alphabetisch geordnet (in der Spielwiese schon, also kann es an meinen Daten liegen).
    - Auch verstorbene Mitglieder werden unter "ehemalige" aufgelistet.
Das ist gar nicht gut...

Besten Gruß
Oliver
Zuletzt geändert von oliver am 7. Aug 2015, 15:08, insgesamt 1-mal geändert.
oliver
Beiträge: 238
Registriert: 25. Nov 2014, 19:47

Re: Nachrichtenmodul

Beitrag von oliver »

Aahhh,

habe mir mal den SQL in messages_write.php (Zeile 355) und die anschließende while-Schleife angeschaut: Jeder, der mindestens eine ehemalige Rollenmitgliedschaft hat (also mal in igrendeiner Rolle war und dort jetzt nicht mehr ist), wird als ehemaliges Mitglied aufgelistet. Das ist natürlich nicht richtig.

Ich denke, es ist sinnvoller, hier die aktiven zu kennzeichnen und nicht die ehemaligen. Also nicht:

Code: Alles auswählen

...
FROM '.TBL_MEMBERS.' as temp
WHERE mem_usr_id = usr_id
AND (  mem_begin > \''.DATE_NOW.'\'
OR mem_end   < \''.DATE_NOW.'\')) as former
...
sondern

Code: Alles auswählen

FROM '.TBL_MEMBERS.' as temp
WHERE mem_usr_id = usr_id
AND (  mem_begin <= \''.DATE_NOW.'\'
AND mem_end   >= \''.DATE_NOW.'\')) as mem_active
denn ich will ja wissen, welches Mitglied in mindestens einer aktuellen Rolle steht. Und nur diejenigen, die aktuell keiner einzigen Rolle zugeordnet sind, die sind ehemalige Mitglieder.

Besten Gruß
Oliver
oliver
Beiträge: 238
Registriert: 25. Nov 2014, 19:47

Re: Nachrichtenmodul

Beitrag von oliver »

Verflixt! Und dann muss noch über die roles auf die categories gejoint werden, damit man die Teilnahmen an Terminen nicht als aktive Rolle hat!!!

:evil:
oliver
Beiträge: 238
Registriert: 25. Nov 2014, 19:47

Re: Nachrichtenmodul

Beitrag von oliver »

So, SQL und Schleife mussten verändert werden, aber ich glaub', das isses:

Code: Alles auswählen

        // select Users

        $sql   = 'SELECT usr_id, first_name.usd_value as first_name, last_name.usd_value as last_name,
                                 email.usd_value as email, (SELECT count(1)
                                 FROM '.TBL_MEMBERS.', '. TBL_ROLES. ', '. TBL_CATEGORIES. '
                                  as temp
                                 WHERE mem_usr_id = usr_id
                                   AND mem_rol_id = rol_id

                                   AND rol_cat_id = cat_id
                                   AND cat_name_intern <> \'CONFIRMATION_OF_PARTICIPATION\'

                                   AND (  mem_begin <= \''.DATE_NOW.'\'
                                   AND mem_end   >= \''.DATE_NOW.'\')) as mem_active
                    FROM '. TBL_MEMBERS. ', '. TBL_USERS. '
                    JOIN '. TBL_USER_DATA. ' as email
                      ON email.usd_usr_id = usr_id
                     AND LENGTH(email.usd_value) > 0
                    JOIN '.TBL_USER_FIELDS.' as field
                      ON field.usf_id = email.usd_usf_id
                     AND field.usf_type = \'EMAIL\'
                    LEFT JOIN '. TBL_USER_DATA. ' as last_name
                      ON last_name.usd_usr_id = usr_id
                     AND last_name.usd_usf_id = '. $gProfileFields->getProperty('LAST_NAME', 'usf_id'). '
                    LEFT JOIN '. TBL_USER_DATA. ' as first_name
                      ON first_name.usd_usr_id = usr_id
                     AND first_name.usd_usf_id = '. $gProfileFields->getProperty('FIRST_NAME', 'usf_id'). '
                   WHERE mem_usr_id  = usr_id
                     AND usr_id <> '.$gCurrentUser->getValue('usr_id').'
                     AND usr_valid   = 1
                   GROUP BY usr_id, first_name.usd_value, last_name.usd_value, email.usd_value
                   ORDER BY last_name, first_name';

        $result = $gDb->query($sql);

        while ($row = $gDb->fetch_array($result))
        {
            if ($row['mem_active'] == 0)
            {
                $passive_list[]= array($row['usr_id'], $row['last_name'].' '.$row['first_name']. ' ('.$row['email'].')', $gL10n->get('LST_FORMER_MEMBERS'));
            }
            else
            {
                $active_list[]= array($row['usr_id'], $row['last_name'].' '.$row['first_name']. ' ('.$row['email'].')', $gL10n->get('LST_ACTIVE_MEMBERS'));
            }
        }

        $list =  array_merge($list, $active_list, $passive_list);

Och Nöööö, da oben in den Rollen-Listen muss das ja auch noch korrigiert werden!! Wird nachgereicht.

Besten Gruß
Oliver
oliver
Beiträge: 238
Registriert: 25. Nov 2014, 19:47

Re: Nachrichtenmodul

Beitrag von oliver »

Nein, da oben scheint es zu passen, da ja in diesem Modul niemand an Teilnehmer-Rollen mailen darf. und die Art, wie man aktive und ehemalige Mitglieder ermittelt ist bei den anderen Stellen egal.

Mensch, da hab' ich einen komplette Forums-Beitrag allein bestritten - spricht ja sonst auch niemand mit mir ;-) Es gibt aber auch noch genügend andere Beiträge, wo man mir antworten könnte.

Bis denne...
Benutzeravatar
fasse
Administrator
Beiträge: 6191
Registriert: 12. Nov 2005, 16:06

Re: Nachrichtenmodul

Beitrag von fasse »

Hallo Oliver,

also als erstes Problem sehe ich da mal, dass User als Ehemalige gelistet werden, die aber noch eine aktive Rolle haben.

Das 2. Problem scheint generell mit den Ehemaligen zu sein. Hier hatten wir auch schon eine Diskussion bei der Entwicklung des Message-Moduls. Evtl. wäre es sinnvoll die Anzeige von Ehemaligen per Einstellung zu ermöglichen. Dann könnte man es ganz abschalten.

Bei verstorbenen Mitgliedern fällt mir jetzt hier keine Lösung ein. Das System kennt diese ja nicht.

Viele Grüße
Fasse
Giovanni9030
Beiträge: 247
Registriert: 4. Sep 2012, 23:40

Re: Nachrichtenmodul

Beitrag von Giovanni9030 »

Hallo,
wollte mal nachfragen ob sich hier schon was getan hat.

LG Giovanni9030
oliver
Beiträge: 238
Registriert: 25. Nov 2014, 19:47

Re: Nachrichtenmodul

Beitrag von oliver »

Hallo Giovanni9030,

in dem folgenden Beitrag geht es um das selbe Thema, dort habe ich ein neues Modul hochgeladen, was meiner Meinung nach korrekter arbeitet:

http://forum.admidio.org/viewtopic.php?f=7&t=6601

Aber weissst als Entwickler des Moduls wird in den kommenden Tagen noch einmal drüberschauen und dann wahrscheinlich eine offizielle Version veröffentlichen.

Besten Gruß
Oliver
Giovanni9030
Beiträge: 247
Registriert: 4. Sep 2012, 23:40

Re: Nachrichtenmodul

Beitrag von Giovanni9030 »

Hallo Oliver,
danke für den Hinweis. Werde das mit deinem bereitgestellten Code mal probieren.

LG Giovanni9030
Benutzeravatar
fasse
Administrator
Beiträge: 6191
Registriert: 12. Nov 2005, 16:06

Re: Nachrichtenmodul

Beitrag von fasse »

Hallo zusammen,

wir haben für die Probleme beim Nachrichtenmodul folgende Issues aufgemacht:
https://github.com/Admidio/admidio/issues/113
https://github.com/Admidio/admidio/issues/114
https://github.com/Admidio/admidio/issues/115

weisst hat momentan leider viel um die Ohren. Aber wahrscheinlich im Laufe dieser Woche oder nächste wird das behoben und danach bringen wir direkt die 3.0.2 raus.

Viele Grüße
Fasse
Antworten