Script-solution.de » Community » Support-Board » Foren » Boardsolution » Boardsolution v1.3x » Benachrichtigung bei Kalenderanmeldung
  • Willkommen, Gast!
  • Freitag, 03. September 2010, 10:30:02
 
Thema: "Benachrichtigung bei Kalenderanmeldung" [ Seite 1 ]

Kein neuer Beitrag Nico , 17.07.2010, 21:25
Beitrag #1   

IP: n/a
Rang: * * * * O O O
Registrierung: 11.02.2006, 11:44
Homepage: http://www.asb-luebeck.de/f...
Wohnort: Lübeck
 

Erfahren mit 153 Punkte, 107 Beiträge
Hi,

noch mal ein kleines Problem, das mich beschäftigt.

Ist es möglich automatisch eine Email mit dem Hinweis zu generieren, daß sich User XX zu einem
Termin an-, bzw. abgemeldet hat?

Hintergrund ist folgender. Wir benutzen das Forum auch für die Terminplanung unserer Dienste. Für
den Einsatzleiter ist daher wichtig zu wissen, ob die Dienste ausreichend besetzt sind ohne sich
jeden Termin anschauen zu müssen.
Meldet sich ein User ab ist es für ihn nicht sofort zu erkennen und er kann nicht Zeitnah reagieren.

Wenn das klappen würde bin ich bestimmt für lange Zeit wieder sehr glücklich mit dem Forum.

MfG, Nico


P.S.: Sollte das ein Mod werden, bitte Thema verschieben.

 
Kein neuer Beitrag Nils , 17.07.2010, 23:45
Beitrag #2   

IP: n/a
Rang: * * * * * * *
Registrierung: 01.07.2003, 18:55
Homepage: http://www.script-solution.de
Wohnort: Marburg
 

Forum-Gott mit 7317 Punkte, 7093 Beiträge
Hi,

ja, sollte nicht so schwierig sein. Es geht nur um Kalender-Termine und nicht um die in Foren,
oder? (die Anmeldung ist leider separat realisiert)
Und wer soll per Email benachrichtigt werden? Ein bestimmter User oder alle User in einer
bestimmten Gruppe?

mfg Nils

 
Kein neuer Beitrag Nico , 17.07.2010, 23:57
Beitrag #3   

IP: n/a
Rang: * * * * O O O
Registrierung: 11.02.2006, 11:44
Homepage: http://www.asb-luebeck.de/f...
Wohnort: Lübeck
 

Erfahren mit 153 Punkte, 107 Beiträge
Hallo Nils,

ich wusste nicht, das das im Kalender getrennt ist.
Ich bräuchte die Benachrichtigung an alle User in einer bestimmten Gruppe für Termine die in Foren
eingestellt worden sind.

mfg, Nico

 
Kein neuer Beitrag Nils , 22.07.2010, 17:28
Beitrag #4   

IP: n/a
Rang: * * * * * * *
Registrierung: 01.07.2003, 18:55
Homepage: http://www.script-solution.de
Wohnort: Marburg
 

Forum-Gott mit 7317 Punkte, 7093 Beiträge
Hallo,

sorry, dass es ein paar Tage gedauert hat. Mach mal folgendes:
Füg in die src/actions/actions.php irgendwo folgende Funktion ein:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
  function send_mail_to_groups($mail_title,$mail_text,$groups)
  {
    $mail = $this->functions->get_mailer('',$mail_title,$mail_text);
    $mail_errors = array();
    $sqlgroups = array();
    foreach($groups as $id)
      $sqlgroups[] = 'FIND_IN_SET('.$id.',p.user_group) > 0';
    $qry = $this->db->sql_qry(
      'SELECT u.`'.BS_EXPORT_USER_EMAIL.'` user_email FROM '.BS_TB_PROFILES.' p
       LEFT JOIN '
.BS_TB_USER.' u ON u.`'.BS_EXPORT_USER_ID.'` = p.id
       WHERE '
.implode(' OR ',$sqlgroups)
    );
    while($adata = $this->db->sql_fetch_assoc($qry))
    {
      $mail->set_recipient($adata['user_email']);
      if(!$mail->send_mail())
        $mail_errors[] = $mail->get_error_message();
    }
    $this->db->sql_free($qry);

    // mail errors?
    if(count($mail_errors) > 0)
    {
      $msg = sprintf($this->lang['error_mail_error'],implode('<br />',$mail_errors));
      $this->functions->show_error_message($msg);
    }
  }

Dann füg ans Ende der Funktion join_event (Zeile 4169) vor:
PHP:
1
$info['action_performed'] = true;

das hier ein:
PHP:
1
2
3
4
5
6
7
8
9
    $mail_title = 'Anmeldung zu Termin';
    $mail_text = 'Hallo,

'
.$this->sess->userdata['user_name'].' hat sich zu dem Termin "'.$data['name'].'"
('
.$this->sess->get_date($data['event_begin']).') angemeldet.

Mit freundlichen Grüßen
Der Administrator'
;
    $this->send_mail_to_groups($mail_title,$mail_text,array(1,2,3));

Zusätzllch muss Zeile 4189:
PHP:
1
e.max_announcements

in:
PHP:
1
e.max_announcements,t.name

geändert werden.

Das gleiche nun noch für die Abmeldung. Dafür analog ans Ende der Funktion leave_event folgendes
einbauen:
PHP:
1
2
3
4
5
6
7
8
9
    $mail_title = 'Abmeldung von Termin';
    $mail_text = 'Hallo,

'
.$this->sess->userdata['user_name'].' hat sich von dem Termin "'.$data['name'].'"
('
.$this->sess->get_date($data['event_begin']).') abgemeldet.

Mit freundlichen Grüßen
Der Administrator'
;
    $this->send_mail_to_groups($mail_title,$mail_text,array(1,2,3));

und Zeile 4282 (könnte bei dir anders sein):
PHP:
1
'SELECT t.id,t.thread_closed,e.announced_user,e.event_begin,e.timeout

in:
PHP:
1
'SELECT t.id,t.thread_closed,e.announced_user,e.event_begin,e.timeout,t.name

ändern.

Den Mail-Text und -Titel musst du natürlich ggf. anpassen oder sogar in die Sprachdateien packen,
wenn du das möchtest. Ich habe nun jeweils array(1,2,3) als Gruppen angegeben. Da musst du also
schauen welche Gruppen-IDs das bei dir sind, die die Mail bekommen sollen.

mfg Nils
Dieser Beitrag wurde insgesamt 2 mal editiert. Das letzte mal 22.07.2010, 17:33 von Nils.

 
Kein neuer Beitrag Nico , 23.07.2010, 00:41
Beitrag #5   

IP: n/a
Rang: * * * * O O O
Registrierung: 11.02.2006, 11:44
Homepage: http://www.asb-luebeck.de/f...
Wohnort: Lübeck
 

Erfahren mit 153 Punkte, 107 Beiträge
Nils hat folgendes geschrieben:
Hallo,

sorry, dass es ein paar Tage gedauert hat.


Hallo Nils,

kein Problem. Ich bin froh, daß Du Dich dem Problem angenommen hast.
Schön wäre es, wenn hinter dem Termintitel gleich der Link hinterlegt wäre.
Ansonsten ist es genau so, wie ich es mir gewünscht hatte.

Vielen Dank und beste Grüße,
Nico

 
Kein neuer Beitrag Nils , 24.07.2010, 11:16
Beitrag #6   

IP: n/a
Rang: * * * * * * *
Registrierung: 01.07.2003, 18:55
Homepage: http://www.script-solution.de
Wohnort: Marburg
 

Forum-Gott mit 7317 Punkte, 7093 Beiträge
Hallo,

ok, dann änder mal die festlegung des Mail-Textes jeweils in:
PHP:
1
2
3
4
5
6
7
8
9
10
$mail_text = 'Hallo,

'
.$this->sess->userdata['user_name'].' hat sich zu dem Termin "'.$data['name'].'"
('
.$this->sess->get_date($data['event_begin']).') angemeldet:
'
.$this->url->get_frontend_url(
'&'.BS_URL_ACTION.'=posts&'.BS_URL_FID.'='.$fid.'&'.BS_URL_TID.'='.$tid,'&',false
).'

Mit freundlichen Grüßen
Der Administrator'
;

Man könnte natürlich auch den Terminnamen als Link-Titel nehmen, aber dann müsste man eine
HTML-Email verschicken.

mfg Nils

 
Kein neuer Beitrag Nico , 24.07.2010, 13:19
Beitrag #7   

IP: n/a
Rang: * * * * O O O
Registrierung: 11.02.2006, 11:44
Homepage: http://www.asb-luebeck.de/f...
Wohnort: Lübeck
 

Erfahren mit 153 Punkte, 107 Beiträge
Hallo Nils,

es klappt super.

Schönes Wochenende.

mfg, Nico

n/a n/a 1     ( Anzeige: 1 - 7 , Gesamt: 7 ) n/a n/a
User in diesem Thema: 0 Registrierte, 0 Versteckte, 2 Gäste, 0 Bots
Keine
Thema-Aktionen:

  • 0.263042 Sek., 10 DB-Zugriffe, 6.761 MiB
  • Boardsolution v1.41 | © Nils Asmussen 2003-2009
Valid XHTML and CSS © 2003 - 2009 script-solution.de, Powered by Joomla!