diff --git a/classes/TandemManager.class.php b/classes/TandemManager.class.php index 40776dfda12a4507c0facf2e920a3ca821c39745..2f0791c8595aa333e80108f8fb35b344eccdb353 100644 --- a/classes/TandemManager.class.php +++ b/classes/TandemManager.class.php @@ -163,8 +163,8 @@ class TandemManager //if something went wrong: return false; } - - + + /** * This method handles accepting an application for a tandem. */ @@ -172,7 +172,7 @@ class TandemManager { //set the tandem pair's status to 1 (accepted): $pair->status = 1; - + //get all applications for the tandem offer that is referenced //in the pair: $other_offer_applications = TandemPair::findBySql( @@ -182,18 +182,16 @@ class TandemManager 'request_profile_id' => $pair->request_profile_id ] ); - - + //store the pair's status: $pair->store(); - + //decline all other applications for the tandem offer: foreach($other_offer_applications as $application) { $application->status = -1; $application->store(); } - - + //Withdraw (delete) all applications for other tandem offers //made with the same request profile: TandemPair::deleteBySql( @@ -203,49 +201,18 @@ class TandemManager 'request_profile_id' => $pair->request_profile_id ] ); - - + $message_title = ''; $message_text = ''; - - $message_main_text_de = "Wir freuen uns, dass Ihr im Tandempaar zusammen lernen möchtet.\n\n" - . "- Braucht Ihr Hilfe, um Eure Tandemtreffen vorzubereiten?\n" - . "- Möchtet Ihr wissen, wie Ihr das gemeinsame Lernen effektiver gestalten könnt?\n" - . "- Braucht Ihr Unterstützung, damit Ihr Eure Lernziele schneller erreicht?\n" - . "- Möchtet Ihr wissen, wie Ihr Eure/n TandempartnerIn beim Lernen unterstützen könnt?\n" - . "- Braucht Ihr Unterstützung bei der Auswahl Eurer Lernmaterialien?\n" - . "- Möchtet Ihr einen ruhigen Raum zum gemeinsamen Lernen nutzen?\n" - . "- Interessiert es Euch, wie Ihr für das Tandemlernen ECTS-Punkte bekommen könnt?\n\n\n" - . "Alle Antworten auf Eure Fragen findet Ihr hier: https://www.fsz.uni-hannover.de/tandemfaq.html\n" - . "Ablauf zur Face-to-Face Tandempartnerschaft: https://www.fsz.uni-hannover.de/fileadmin/institut/Mehrsprachige_Angebote/pdf/Ablauf_Face-to-Face_Tandemsprachpartnerschaften_Sose_17aktuell.pdf\n" - . "Kommt unbedingt nach 1-2 Treffen mit Eurem Tandempartner zu uns ins Tandembüro. Wir helfen Euch bei der Planung und Gestaltung Eurer Tandemtreffen, damit Eure Tandemtreffen erfolgreich verlaufen.\n" - . "Viel Erfolg und Spaß beim Tandemlernen wünscht Euch \n" - . "Euer Tandembüro\n"; - - $message_main_text_en = "We are glad that you want to learn together in a tandem partnership.\n\n" - . "- Do you need help in organizing your tandem meetings?\n" - . "- Do you need to know how to make your tandem learning more effective?\n" - . "- Do you need support to achieve your learning goals more quickly?\n" - . "- Do you want to know how to support your tandem partner in his/her learning process?\n" - . "- Do you need support in the selection of learning materials?\n" - . "- Do you want to use a quiet room for your tandem meetings?\n" - . "- Are you interested in receiving credit points (ECTS) for your tandem partnership?\n\n\n" - . "All your questions are answered at: https://www.fsz.uni-hannover.de/tandemfaq.html\n" - . "Face-to-Face tandem partnership procedure (German): https://www.fsz.uni-hannover.de/fileadmin/institut/Mehrsprachige_Angebote/pdf/Ablauf_Face-to-Face_Tandemsprachpartnerschaften_Sose_17aktuell.pdf\n" - . "Please drop by our Tandem Office after 1 or 2 meetings with your tandem partner. We can help you to plan and develop your tandem meetings to make them as successful as possible.\n" - . "We wish you lots of success and fun with your tandem partnership,\n" - . "The Tandem Office\n"; - - - $tandem_management_link = $GLOBALS['ABSOLUTE_URI_STUDIP'] + + $tandem_management_link = $GLOBALS['ABSOLUTE_URI_STUDIP'] . 'plugins.php/tandemplugin/my_tandems/index'; - - + //Send message to requester: - + $config = Config::get(); if($pair->request->user->preferred_language == 'en_GB') { $message_title = 'Request for tandem partnership has been accepted!'; - + $message_text = sprintf( 'Your request for a tandem partnership with %s for the language %s has been accepted!', $pair->offer->user->getFullName(), @@ -253,15 +220,13 @@ class TandemManager ? $pair->request->target_language->name_eng : $pair->request->target_language->name) ); - + $message_text .= "\n\n"; $message_text .= "View tandem: $tandem_management_link\n\n"; - - $message_text .= $message_main_text_en; - + $message_text .= $config->TANDEMPLUGIN_INFO_MAIL_TEXT_EN; } else { $message_title = 'Anfrage zur Tandem-Bildung wurde angenommen!'; - + $message_text = sprintf( 'Deine Anfrage zur Tandem-Bildung mit %s für die Sprache %s wurde angenommen!', $pair->offer->user->getFullName(), @@ -269,15 +234,14 @@ class TandemManager ? $pair->request->target_language->name_ger : $pair->request->target_language->name) ); - + $message_text .= "\n\n"; $message_text .= "Tandem anschauen: $tandem_management_link\n\n"; - - $message_text .= $message_main_text_de; + $message_text .= $config->TANDEMPLUGIN_INFO_MAIL_TEXT_DE; } - + $m = new messaging(); - + //send mail (with e-mail) $m->insert_message( $message_text, @@ -290,13 +254,12 @@ class TandemManager $message_title, '1' ); - - + //Send message to offerer: - + if($pair->offer->user->preferred_language == 'en_GB') { $message_title = 'Request for tandem partnership accepted!'; - + $message_text = sprintf( 'You have accepted the request for a tandem partnership with %s for the language %s!', $pair->request->user->getFullName(), @@ -304,15 +267,12 @@ class TandemManager ? $pair->offer->target_language->name_eng : $pair->offer->target_language->name) ); - $message_text .= "\n\n"; $message_text .= "View tandem: $tandem_management_link\n\n"; - - $message_text .= $message_main_text_en; - + $message_text .= $config->TANDEMPLUGIN_INFO_MAIL_TEXT_EN; } else { $message_title = 'Anfrage zur Tandem-Bildung angenommen!'; - + $message_text = sprintf( 'Du hast die Anfrage zur Tandem-Bildung mit %s für die Sprache %s angenommen!', $pair->request->user->getFullName(), @@ -320,15 +280,14 @@ class TandemManager ? $pair->offer->target_language->name_ger : $pair->offer->target_language->name) ); - + $message_text .= "\n\n"; $message_text .= "Tandem anschauen: $tandem_management_link\n\n"; - - $message_text .= $message_main_text_de; + $message_text .= $config->TANDEMPLUGIN_INFO_MAIL_TEXT_DE; } - + $m = new messaging(); - + //send mail (with e-mail) $m->insert_message( $message_text, @@ -341,10 +300,10 @@ class TandemManager $message_title, '1' ); - - + + //send mail to TandemAdmin users: - + //Get the tandem admin role object first: $tandem_admin_role = null; foreach(RolePersistence::getAllRoles() as $role) { @@ -353,7 +312,7 @@ class TandemManager break; } } - + if($tandem_admin_role) { //We have the tandem admin role object and can proceed. $tandem_admins = User::findBySql( @@ -363,14 +322,14 @@ class TandemManager 'role_id' => $tandem_admin_role->roleid ] ); - + foreach($tandem_admins as $tandem_admin) { $admin_message_title = ''; $admin_message_text = ''; - + if($tandem_admin->preferred_language == 'en_GB') { $admin_message_title = 'A new tandem has been created!'; - + $admin_message_text = sprintf( '%s and %s have created a new tandem for the language combination %s - %s!', $pair->request->user->getFullName(), @@ -384,7 +343,7 @@ class TandemManager ); } else { $admin_message_title = 'Ein neues Tandem wurde gebildet!'; - + $admin_message_text = sprintf( '%s und %s haben ein neues Tandem für die Sprachkombination %s - %s gebildet!', $pair->request->user->getFullName(), @@ -397,10 +356,9 @@ class TandemManager : $pair->offer->target_language->name) ); } - - + $m = new messaging(); - + //send mail (with e-mail) $m->insert_message( $admin_message_text, @@ -415,14 +373,14 @@ class TandemManager ); } } - + return true; } - - + + /** * This method handles termination of a tandem pair. - * + * * @return True on success, false on failure. */ public static function terminatePair(TandemPair $pair, User $user, $delete_users_profile = false) diff --git a/migrations/08_add_mail_text_configuration.php b/migrations/08_add_mail_text_configuration.php new file mode 100644 index 0000000000000000000000000000000000000000..939cac03094e0acd3e1ab44d7c536a7902adf09e --- /dev/null +++ b/migrations/08_add_mail_text_configuration.php @@ -0,0 +1,72 @@ +<?php +/** +* This file is part of the TandemPlugin for Stud.IP +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License as +* published by the Free Software Foundation; either version 2 of +* the License, or (at your option) any later version. +* +* @author Moritz Strohm <strohm@data-quest.de> +* @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2 +* @category Plugin +* +*/ + +class AddMailTextConfiguration extends Migration +{ + public function up() + { + $config = Config::get(); + $config->create( + 'TANDEMPLUGIN_INFO_MAIL_TEXT_DE', + [ + 'type' => 'string', + 'value' => "Wir freuen uns, dass Ihr im Tandempaar zusammen lernen möchtet.\n\n" + . "- Braucht Ihr Hilfe, um Eure Tandemtreffen vorzubereiten?\n" + . "- Möchtet Ihr wissen, wie Ihr das gemeinsame Lernen effektiver gestalten könnt?\n" + . "- Braucht Ihr Unterstützung, damit Ihr Eure Lernziele schneller erreicht?\n" + . "- Möchtet Ihr wissen, wie Ihr Eure/n TandempartnerIn beim Lernen unterstützen könnt?\n" + . "- Braucht Ihr Unterstützung bei der Auswahl Eurer Lernmaterialien?\n" + . "- Möchtet Ihr einen ruhigen Raum zum gemeinsamen Lernen nutzen?\n" + . "- Interessiert es Euch, wie Ihr für das Tandemlernen ECTS-Punkte bekommen könnt?\n\n\n" + . "Alle Antworten auf Eure Fragen findet Ihr hier: https://www.fsz.uni-hannover.de/tandemfaq.html\n" + . "Ablauf zur Face-to-Face Tandempartnerschaft: https://www.fsz.uni-hannover.de/fileadmin/institut/Mehrsprachige_Angebote/pdf/Ablauf_Face-to-Face_Tandemsprachpartnerschaften_Sose_17aktuell.pdf\n" + . "Kommt unbedingt nach 1-2 Treffen mit Eurem Tandempartner zu uns ins Tandembüro. Wir helfen Euch bei der Planung und Gestaltung Eurer Tandemtreffen, damit Eure Tandemtreffen erfolgreich verlaufen.\n" + . "Viel Erfolg und Spaß beim Tandemlernen wünscht Euch \n" + . "Euer Tandembüro\n", + 'section' => 'tandemplugin', + 'description' => 'Deutscher Infotext der Mail, die an den Tandempartner gesendet wird.' + ] + ); + $config->create( + 'TANDEMPLUGIN_INFO_MAIL_TEXT_EN', + [ + 'type' => 'string', + 'value' => "We are glad that you want to learn together in a tandem partnership.\n\n" + . "- Do you need help in organizing your tandem meetings?\n" + . "- Do you need to know how to make your tandem learning more effective?\n" + . "- Do you need support to achieve your learning goals more quickly?\n" + . "- Do you want to know how to support your tandem partner in his/her learning process?\n" + . "- Do you need support in the selection of learning materials?\n" + . "- Do you want to use a quiet room for your tandem meetings?\n" + . "- Are you interested in receiving credit points (ECTS) for your tandem partnership?\n\n\n" + . "All your questions are answered at: https://www.fsz.uni-hannover.de/tandemfaq.html\n" + . "Face-to-Face tandem partnership procedure (German): https://www.fsz.uni-hannover.de/fileadmin/institut/Mehrsprachige_Angebote/pdf/Ablauf_Face-to-Face_Tandemsprachpartnerschaften_Sose_17aktuell.pdf\n" + . "Please drop by our Tandem Office after 1 or 2 meetings with your tandem partner. We can help you to plan and develop your tandem meetings to make them as successful as possible.\n" + . "We wish you lots of success and fun with your tandem partnership,\n" + . "The Tandem Office\n", + 'section' => 'tandemplugin', + 'description' => 'English info text of mail that is sent to the tandem partner.' + ] + ); + } + + + public function down() + { + $config = Config::get(); + $config->delete('TANDEMPLUGIN_MAIL_INFO_DE'); + $config->delete('TANDEMPLUGIN_MAIL_INFO_EN'); + } +} diff --git a/plugin.manifest b/plugin.manifest index 43c3d9cad553cedb71d6cd77e0262851f7a31e1a..1d410becc4d0ef2c6ea4b7fadc50cb4b1ab5d16c 100644 --- a/plugin.manifest +++ b/plugin.manifest @@ -1,7 +1,7 @@ pluginname=TandemPlugin pluginclassname=TandemPlugin origin=data-quest -version=1.0.1 +version=1.0.2 description=Dieses Plugin ermöglicht es, Sprachtandems innerhalb der Stud.IP Platform zu bilden. studipMinVersion=4.0 studipMaxVersion=4.99.99