SmsPlugin.php 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. <?php
  2. /* For licensing terms, see /license.txt */
  3. /**
  4. * Class SmsPlugin
  5. *
  6. * @author Julio Montoya
  7. *
  8. */
  9. class SmsPlugin extends Plugin
  10. {
  11. const WELCOME_LOGIN_PASSWORD = 0;
  12. const NEW_FILE_SHARED_COURSE_BY = 1;
  13. const ACCOUNT_APPROVED_CONNECT = 2;
  14. const NEW_COURSE_BEEN_CREATED = 3;
  15. const NEW_USER_SUBSCRIBED_COURSE = 4;
  16. const NEW_COURSE_SUGGESTED_TEACHER = 5;
  17. const COURSE_OPENING_REQUEST_CODE_REGISTERED = 6;
  18. const COURSE_OPENING_REQUEST_CODE_APPROVED = 7;
  19. const COURSE_OPENING_REQUEST_CODE_REJECTED = 8;
  20. const COURSE_OPENING_REQUEST_CODE = 9;
  21. const BEEN_SUBSCRIBED_COURSE = 10;
  22. const ASSIGNMENT_BEEN_CREATED_COURSE = 11;
  23. const ACCOUNT_CREATED_UPDATED_LOGIN_PASSWORD = 12;
  24. const PASSWORD_UPDATED_LOGIN_PASSWORD = 13;
  25. const REQUESTED_PASSWORD_CHANGE = 14;
  26. const RECEIVED_NEW_PERSONAL_MESSAGES = 15;
  27. const NEW_USER_PENDING_APPROVAL = 16;
  28. const POSTED_FORUM_COURSE = 17;
  29. const CHECK_EMAIL_CONNECT_MORE_INFO = 18;
  30. const STUDENT_ANSWERED_TEST = 19;
  31. const STUDENT_ANSWERED_TEST_OPEN_QUESTION = 20;
  32. const STUDENT_ANSWERED_TEST_VOICE_QUESTION = 21;
  33. const ANSWER_OPEN_QUESTION_TEST_REVIEWED = 22;
  34. const NEW_THREAD_STARTED_FORUM = 23;
  35. const NEW_ANSWER_POSTED_FORUM = 24;
  36. const NEW_SYSTEM_ANNOUNCEMENT_ADDED = 25;
  37. const TEST_NEW_SYSTEM_ANNOUNCEMENT_ADDED = 26;
  38. const SYSTEM_ANNOUNCEMENT_UPDATE = 27;
  39. const TEST_SYSTEM_ANNOUNCEMENT_UPDATE = 28;
  40. const USER_UPLOADED_ASSIGNMENT_COURSE_STUDENT_SUBMITS_PAPER = 29;
  41. const USER_UPLOADED_ASSIGNMENT_CHECK_STUDENT_SUBMITS_PAPER = 30;
  42. const USER_UPLOADED_ASSIGNMENT_COURSE = 31;
  43. const USER_UPLOADED_ASSIGNMENT_CHECK = 32;
  44. const SUBSCRIBED_SESSION = 33;
  45. const SUBSCRIBED_SESSION_CSV = 34;
  46. const USER_SUGGESTED_BE_FRIENDS = 35;
  47. const USER_ANSWERED_INBOX_MESSAGE = 36;
  48. const BEEN_INVITED_JOIN_GROUP = 37;
  49. const MESSAGES_SENT_EDITED_GROUP_EDITED = 38;
  50. const MESSAGES_SENT_EDITED_GROUP_ADDED = 39;
  51. const BEEN_INVITED_COMPLETE_SURVEY_COURSE = 40;
  52. const REMINDER_ASSIGNMENT_COURSE_DUE = 41;
  53. const USER_DETAILS_MODIFIED = 42;
  54. const CERTIFICATE_NOTIFICATION = 43;
  55. public $isCoursePlugin = true;
  56. public $isMailPlugin = true;
  57. /**
  58. * getSmsTypeOptions (returns all SMS types)
  59. * @return array SMS types
  60. */
  61. public function getSmsTypeOptions()
  62. {
  63. return [
  64. 'MessageWelcomeXLoginXPasswordX',
  65. 'MessageXNewFileSharedCourseXByX',
  66. 'MessageXAccountApprovedConnectX',
  67. 'MessageXNewCourseXBeenCreatedX',
  68. 'MessageXNewUserXSubscribedCourseX',
  69. 'MessageXNewCourseSuggestedTeacherX',
  70. 'MessageXCourseOpeningRequestCodeXRegistered',
  71. 'MessageXCourseOpeningRequestCourseCodeXApproved',
  72. 'MessageXRequestOpenCourseCodeXReject',
  73. 'MessageXCourseOpeningRequestCourseCodeX',
  74. 'MessageXBeenSubscribedCourseX',
  75. 'MessageXAssignmentBeenCreatedCourseX',
  76. 'MessageXAccountCreatedUpdatedLoginXPasswordX',
  77. 'MessageXPasswordUpdatedLoginXPasswordX',
  78. 'MessageXRequestedPasswordChange',
  79. 'MessageXReceivedNewPersonalMessages',
  80. 'MessageXNewUserXPendingApproval',
  81. 'MessageXXPostedForumXCourseX',
  82. 'MessageXXXCheckEmailConnectMoreInfo',
  83. 'MessageXXStudentXAnsweredTestX',
  84. 'MessageXXStudentXAnsweredTestXOpenQuestion',
  85. 'MessageXXStudentXAnsweredTestXVoiceQuestion',
  86. 'MessageXXAnswerOpenQuestionTestXReviewed',
  87. 'MessageXXNewThreadXStartedForumX',
  88. 'MessageXXNewAnswerPostedXForumX',
  89. 'MessageXXNewSystemAnnouncementAdded',
  90. 'MessageXTestXNewSystemAnnouncementAdded',
  91. 'MessageXXSystemAnnouncementUpdate',
  92. 'MessageXTestXSystemAnnouncementUpdate',
  93. 'MessageXUserXUploadedAssignmentXCourseXStudentSubmitsPaper',
  94. 'MessageXUserXUploadedAssignmentXCheckXStudentSubmitsPaper',
  95. 'MessageXUserXUploadedAssignmentXCourseX',
  96. 'MessageXUserXUploadedAssignmentXCheckX',
  97. 'MessageXSubscribedSessionX',
  98. 'MessageXSubscribedSessionXCSV',
  99. 'MessageXUserXSuggestedBeFriends',
  100. 'MessageXUserXAnsweredInboxMessage',
  101. 'MessageXBeenInvitedJoinGroupX',
  102. 'MessageXMessagesSentEditedGroupXEdited',
  103. 'MessageXMessagesSentEditedGroupXAdded',
  104. 'MessageXBeenInvitedCompleteSurveyXCourseX',
  105. 'MessageXReminderAssignmentXCourseXDue',
  106. 'MessageXUserDetailsModified'
  107. ];
  108. }
  109. /**
  110. * addMobilePhoneNumberField (adds a mobile phone number field if it is not
  111. * already created)
  112. * @return void
  113. */
  114. private function addMobilePhoneNumberField()
  115. {
  116. $extraField = new ExtraField('user');
  117. $extraFieldInfo = $extraField->get_handler_field_info_by_field_variable('mobile_phone_number');
  118. if (empty($extraFieldInfo)) {
  119. $extraField->save([
  120. 'field_type' => 1,
  121. 'variable' => 'mobile_phone_number',
  122. 'display_text' => $this->get_lang('mobile_phone_number'),
  123. 'default_value' => null,
  124. 'field_order' => 2,
  125. 'visible' => 1,
  126. 'changeable' => 1,
  127. 'filter' => null
  128. ]);
  129. }
  130. }
  131. /**
  132. * install (installs the plugin)
  133. * @return void
  134. */
  135. public function install()
  136. {
  137. $this->addMobilePhoneNumberField();
  138. }
  139. }