The SmsPlugin is a common class for clockwork and Kannel. Code is now more simple. Add SmsPluginLibraryInterface1.10.x
							parent
							
								
									1a25bc7c4d
								
							
						
					
					
						commit
						5c3e02b47e
					
				@ -0,0 +1,144 @@ | 
				
			|||||||
 | 
					<?php | 
				
			||||||
 | 
					/* For licensing terms, see /license.txt */ | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/** | 
				
			||||||
 | 
					 * Class SmsPlugin | 
				
			||||||
 | 
					 * | 
				
			||||||
 | 
					 * @author Julio Montoya | 
				
			||||||
 | 
					 * | 
				
			||||||
 | 
					 */ | 
				
			||||||
 | 
					class SmsPlugin extends Plugin | 
				
			||||||
 | 
					{ | 
				
			||||||
 | 
					    const WELCOME_LOGIN_PASSWORD = 0; | 
				
			||||||
 | 
					    const NEW_FILE_SHARED_COURSE_BY = 1; | 
				
			||||||
 | 
					    const ACCOUNT_APPROVED_CONNECT = 2; | 
				
			||||||
 | 
					    const NEW_COURSE_BEEN_CREATED = 3; | 
				
			||||||
 | 
					    const NEW_USER_SUBSCRIBED_COURSE = 4; | 
				
			||||||
 | 
					    const NEW_COURSE_SUGGESTED_TEACHER = 5; | 
				
			||||||
 | 
					    const COURSE_OPENING_REQUEST_CODE_REGISTERED = 6; | 
				
			||||||
 | 
					    const COURSE_OPENING_REQUEST_CODE_APPROVED = 7; | 
				
			||||||
 | 
					    const COURSE_OPENING_REQUEST_CODE_REJECTED = 8; | 
				
			||||||
 | 
					    const COURSE_OPENING_REQUEST_CODE = 9; | 
				
			||||||
 | 
					    const BEEN_SUBSCRIBED_COURSE = 10; | 
				
			||||||
 | 
					    const ASSIGNMENT_BEEN_CREATED_COURSE = 11; | 
				
			||||||
 | 
					    const ACCOUNT_CREATED_UPDATED_LOGIN_PASSWORD = 12; | 
				
			||||||
 | 
					    const PASSWORD_UPDATED_LOGIN_PASSWORD = 13; | 
				
			||||||
 | 
					    const REQUESTED_PASSWORD_CHANGE = 14; | 
				
			||||||
 | 
					    const RECEIVED_NEW_PERSONAL_MESSAGES = 15; | 
				
			||||||
 | 
					    const NEW_USER_PENDING_APPROVAL = 16; | 
				
			||||||
 | 
					    const POSTED_FORUM_COURSE = 17; | 
				
			||||||
 | 
					    const CHECK_EMAIL_CONNECT_MORE_INFO = 18; | 
				
			||||||
 | 
					    const STUDENT_ANSWERED_TEST = 19; | 
				
			||||||
 | 
					    const STUDENT_ANSWERED_TEST_OPEN_QUESTION = 20; | 
				
			||||||
 | 
					    const STUDENT_ANSWERED_TEST_VOICE_QUESTION = 21; | 
				
			||||||
 | 
					    const ANSWER_OPEN_QUESTION_TEST_REVIEWED = 22; | 
				
			||||||
 | 
					    const NEW_THREAD_STARTED_FORUM = 23; | 
				
			||||||
 | 
					    const NEW_ANSWER_POSTED_FORUM = 24; | 
				
			||||||
 | 
					    const NEW_SYSTEM_ANNOUNCEMENT_ADDED = 25; | 
				
			||||||
 | 
					    const TEST_NEW_SYSTEM_ANNOUNCEMENT_ADDED = 26; | 
				
			||||||
 | 
					    const SYSTEM_ANNOUNCEMENT_UPDATE = 27; | 
				
			||||||
 | 
					    const TEST_SYSTEM_ANNOUNCEMENT_UPDATE = 28; | 
				
			||||||
 | 
					    const USER_UPLOADED_ASSIGNMENT_COURSE_STUDENT_SUBMITS_PAPER = 29; | 
				
			||||||
 | 
					    const USER_UPLOADED_ASSIGNMENT_CHECK_STUDENT_SUBMITS_PAPER = 30; | 
				
			||||||
 | 
					    const USER_UPLOADED_ASSIGNMENT_COURSE = 31; | 
				
			||||||
 | 
					    const USER_UPLOADED_ASSIGNMENT_CHECK = 32; | 
				
			||||||
 | 
					    const SUBSCRIBED_SESSION = 33; | 
				
			||||||
 | 
					    const SUBSCRIBED_SESSION_CSV = 34; | 
				
			||||||
 | 
					    const USER_SUGGESTED_BE_FRIENDS = 35; | 
				
			||||||
 | 
					    const USER_ANSWERED_INBOX_MESSAGE = 36; | 
				
			||||||
 | 
					    const BEEN_INVITED_JOIN_GROUP = 37; | 
				
			||||||
 | 
					    const MESSAGES_SENT_EDITED_GROUP_EDITED = 38; | 
				
			||||||
 | 
					    const MESSAGES_SENT_EDITED_GROUP_ADDED = 39; | 
				
			||||||
 | 
					    const BEEN_INVITED_COMPLETE_SURVEY_COURSE = 40; | 
				
			||||||
 | 
					    const REMINDER_ASSIGNMENT_COURSE_DUE = 41; | 
				
			||||||
 | 
					    const USER_DETAILS_MODIFIED = 42; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public $isCoursePlugin = true; | 
				
			||||||
 | 
					    public $isMailPlugin = true; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /** | 
				
			||||||
 | 
					     * getSmsTypeOptions (returns all SMS types) | 
				
			||||||
 | 
					     * @return  array   SMS types | 
				
			||||||
 | 
					     */ | 
				
			||||||
 | 
					    public function getSmsTypeOptions() | 
				
			||||||
 | 
					    { | 
				
			||||||
 | 
					        return array( | 
				
			||||||
 | 
					            'MessageWelcomeXLoginXPasswordX', | 
				
			||||||
 | 
					            'MessageXNewFileSharedCourseXByX', | 
				
			||||||
 | 
					            'MessageXAccountApprovedConnectX', | 
				
			||||||
 | 
					            'MessageXNewCourseXBeenCreatedX', | 
				
			||||||
 | 
					            'MessageXNewUserXSubscribedCourseX', | 
				
			||||||
 | 
					            'MessageXNewCourseSuggestedTeacherX', | 
				
			||||||
 | 
					            'MessageXCourseOpeningRequestCodeXRegistered', | 
				
			||||||
 | 
					            'MessageXCourseOpeningRequestCourseCodeXApproved', | 
				
			||||||
 | 
					            'MessageXRequestOpenCourseCodeXReject', | 
				
			||||||
 | 
					            'MessageXCourseOpeningRequestCourseCodeX', | 
				
			||||||
 | 
					            'MessageXBeenSubscribedCourseX', | 
				
			||||||
 | 
					            'MessageXAssignmentBeenCreatedCourseX', | 
				
			||||||
 | 
					            'MessageXAccountCreatedUpdatedLoginXPasswordX', | 
				
			||||||
 | 
					            'MessageXPasswordUpdatedLoginXPasswordX', | 
				
			||||||
 | 
					            'MessageXRequestedPasswordChange', | 
				
			||||||
 | 
					            'MessageXReceivedNewPersonalMessages', | 
				
			||||||
 | 
					            'MessageXNewUserXPendingApproval', | 
				
			||||||
 | 
					            'MessageXXPostedForumXCourseX', | 
				
			||||||
 | 
					            'MessageXXXCheckEmailConnectMoreInfo', | 
				
			||||||
 | 
					            'MessageXXStudentXAnsweredTestX', | 
				
			||||||
 | 
					            'MessageXXStudentXAnsweredTestXOpenQuestion', | 
				
			||||||
 | 
					            'MessageXXStudentXAnsweredTestXVoiceQuestion', | 
				
			||||||
 | 
					            'MessageXXAnswerOpenQuestionTestXReviewed', | 
				
			||||||
 | 
					            'MessageXXNewThreadXStartedForumX', | 
				
			||||||
 | 
					            'MessageXXNewAnswerPostedXForumX', | 
				
			||||||
 | 
					            'MessageXXNewSystemAnnouncementAdded', | 
				
			||||||
 | 
					            'MessageXTestXNewSystemAnnouncementAdded', | 
				
			||||||
 | 
					            'MessageXXSystemAnnouncementUpdate', | 
				
			||||||
 | 
					            'MessageXTestXSystemAnnouncementUpdate', | 
				
			||||||
 | 
					            'MessageXUserXUploadedAssignmentXCourseXStudentSubmitsPaper', | 
				
			||||||
 | 
					            'MessageXUserXUploadedAssignmentXCheckXStudentSubmitsPaper', | 
				
			||||||
 | 
					            'MessageXUserXUploadedAssignmentXCourseX', | 
				
			||||||
 | 
					            'MessageXUserXUploadedAssignmentXCheckX', | 
				
			||||||
 | 
					            'MessageXSubscribedSessionX', | 
				
			||||||
 | 
					            'MessageXSubscribedSessionXCSV', | 
				
			||||||
 | 
					            'MessageXUserXSuggestedBeFriends', | 
				
			||||||
 | 
					            'MessageXUserXAnsweredInboxMessage', | 
				
			||||||
 | 
					            'MessageXBeenInvitedJoinGroupX', | 
				
			||||||
 | 
					            'MessageXMessagesSentEditedGroupXEdited', | 
				
			||||||
 | 
					            'MessageXMessagesSentEditedGroupXAdded', | 
				
			||||||
 | 
					            'MessageXBeenInvitedCompleteSurveyXCourseX', | 
				
			||||||
 | 
					            'MessageXReminderAssignmentXCourseXDue', | 
				
			||||||
 | 
					            'MessageXUserDetailsModified' | 
				
			||||||
 | 
					        ); | 
				
			||||||
 | 
					    } | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /** | 
				
			||||||
 | 
					     * addMobilePhoneNumberField (adds a mobile phone number field if it is not | 
				
			||||||
 | 
					     * already created) | 
				
			||||||
 | 
					     * @return  void | 
				
			||||||
 | 
					     */ | 
				
			||||||
 | 
					    private function addMobilePhoneNumberField() | 
				
			||||||
 | 
					    { | 
				
			||||||
 | 
					        $extraField = new ExtraField('user'); | 
				
			||||||
 | 
					        $extraFieldInfo = $extraField->get_handler_field_info_by_field_variable('mobile_phone_number'); | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (empty($extraFieldInfo)) { | 
				
			||||||
 | 
					            $extraField->save(array( | 
				
			||||||
 | 
					                'field_type' => 1, | 
				
			||||||
 | 
					                'field_variable' => 'mobile_phone_number', | 
				
			||||||
 | 
					                'field_display_text' => $this->get_lang('mobile_phone_number'), | 
				
			||||||
 | 
					                'field_default_value' => null, | 
				
			||||||
 | 
					                'field_order' => 2, | 
				
			||||||
 | 
					                'field_visible' => 1, | 
				
			||||||
 | 
					                'field_changeable' => 1, | 
				
			||||||
 | 
					                'field_filter' => null | 
				
			||||||
 | 
					            )); | 
				
			||||||
 | 
					        } | 
				
			||||||
 | 
					    } | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /** | 
				
			||||||
 | 
					     * install (installs the plugin) | 
				
			||||||
 | 
					     * @return  void | 
				
			||||||
 | 
					     */ | 
				
			||||||
 | 
					    public function install() | 
				
			||||||
 | 
					    { | 
				
			||||||
 | 
					        $this->addMobilePhoneNumberField(); | 
				
			||||||
 | 
					    } | 
				
			||||||
 | 
					} | 
				
			||||||
@ -0,0 +1,43 @@ | 
				
			|||||||
 | 
					<?php | 
				
			||||||
 | 
					/* For licensing terms, see /license.txt */ | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/** | 
				
			||||||
 | 
					 * Class SmsPluginLibraryInterface | 
				
			||||||
 | 
					 * | 
				
			||||||
 | 
					 * @author Julio Montoya | 
				
			||||||
 | 
					 * | 
				
			||||||
 | 
					 */ | 
				
			||||||
 | 
					interface SmsPluginLibraryInterface | 
				
			||||||
 | 
					{ | 
				
			||||||
 | 
					    /** | 
				
			||||||
 | 
					     * getMobilePhoneNumberById (retrieves a user mobile phone number by user id) | 
				
			||||||
 | 
					     * | 
				
			||||||
 | 
					     * @param int $userId | 
				
			||||||
 | 
					     * | 
				
			||||||
 | 
					     * @return  int User's mobile phone number | 
				
			||||||
 | 
					     */ | 
				
			||||||
 | 
					    public function getMobilePhoneNumberById($userId); | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /** | 
				
			||||||
 | 
					     * @param array $additionalParameters | 
				
			||||||
 | 
					     * @return mixed | 
				
			||||||
 | 
					     */ | 
				
			||||||
 | 
					    public function send($additionalParameters); | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /** | 
				
			||||||
 | 
					     * @param array $additionalParameters | 
				
			||||||
 | 
					     * @return mixed | 
				
			||||||
 | 
					     */ | 
				
			||||||
 | 
					    public function getSms($additionalParameters); | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /** | 
				
			||||||
 | 
					     * buildSms (builds an SMS from a template and data) | 
				
			||||||
 | 
					     * @param   object  ClockworksmsPlugin object | 
				
			||||||
 | 
					     * @param   object  Template object | 
				
			||||||
 | 
					     * @param   string  Template file name | 
				
			||||||
 | 
					     * @param   string  Text key from lang file | 
				
			||||||
 | 
					     * @param   array   Data to fill message variables (if any) | 
				
			||||||
 | 
					     * @return  object  Template object with message property updated | 
				
			||||||
 | 
					     */ | 
				
			||||||
 | 
					    public function buildSms($plugin, $tpl, $templateName, $messageKey, $parameters = null); | 
				
			||||||
 | 
					} | 
				
			||||||
					Loading…
					
					
				
		Reference in new issue