From 5c3e02b47e4dd76e2f8d4ee258b3e28733a350c7 Mon Sep 17 00:00:00 2001 From: Julio Montoya Date: Wed, 1 Apr 2015 14:22:34 +0200 Subject: [PATCH] Fix PHP warnings - Use constants of class SmsPlugin to call SMS types. The SmsPlugin is a common class for clockwork and Kannel. Code is now more simple. Add SmsPluginLibraryInterface --- main/dropbox/dropbox_functions.inc.php | 3 +- main/inc/ajax/user_manager.ajax.php | 5 +- main/inc/lib/SmsPlugin.php | 144 ++++++++++++++++++ main/inc/lib/SmsPluginLibraryInterface.php | 43 ++++++ main/inc/lib/add_course.lib.inc.php | 7 +- main/inc/lib/api.lib.php | 12 +- main/inc/lib/course.lib.php | 3 +- main/inc/lib/course_request.lib.php | 48 +++--- main/inc/lib/plugin.lib.php | 49 +++++- main/inc/lib/usermanager.lib.php | 3 +- main/user/user_add.php | 10 +- main/work/work.lib.php | 3 +- plugin/clockworksms/config.php | 1 - plugin/clockworksms/lib/clockworksms.lib.php | 123 ++++++++------- .../lib/clockworksms_plugin.class.php | 138 +---------------- plugin/kannelsms/lib/kannelsms.lib.php | 91 ++++++----- .../kannelsms/lib/kannelsms_plugin.class.php | 137 +---------------- 17 files changed, 390 insertions(+), 430 deletions(-) create mode 100644 main/inc/lib/SmsPlugin.php create mode 100644 main/inc/lib/SmsPluginLibraryInterface.php diff --git a/main/dropbox/dropbox_functions.inc.php b/main/dropbox/dropbox_functions.inc.php index 7e8ccbbca1..8092e42e12 100755 --- a/main/dropbox/dropbox_functions.inc.php +++ b/main/dropbox/dropbox_functions.inc.php @@ -879,9 +879,8 @@ function store_add_dropbox() if ($b_send_mail) { foreach ($new_work_recipients as $recipient_id) { $recipent_temp = UserManager :: get_user_info_by_id($recipient_id); - $plugin = new AppPlugin(); $additionalParameters = array( - 'smsType' => constant($plugin->getSMSPluginName().'::NEW_FILE_SHARED_COURSE_BY'), + 'smsType' => SmsPlugin::NEW_FILE_SHARED_COURSE_BY, 'userId' => $recipient_id, 'courseTitle' => $_course['title'], 'userUsername' => $recipent_temp['username'] diff --git a/main/inc/ajax/user_manager.ajax.php b/main/inc/ajax/user_manager.ajax.php index fbff6ae91c..e294fdc9c4 100755 --- a/main/inc/ajax/user_manager.ajax.php +++ b/main/inc/ajax/user_manager.ajax.php @@ -94,9 +94,8 @@ switch ($action) { //$emailbody.=get_lang('Problem'). "\n\n". get_lang('SignatureFormula'); $emailbody.=api_get_person_name(api_get_setting('administratorName'), api_get_setting('administratorSurname'))."\n". get_lang('Manager'). " ".api_get_setting('siteName')."\nT. ".api_get_setting('administratorTelephone')."\n" .get_lang('Email') ." : ".api_get_setting('emailAdministrator'); - $plugin = new AppPlugin(); - $additionalParameters = array( - 'smsType' => constant($plugin->getSMSPluginName().'::ACCOUNT_APPROVED_CONNECT'), + $additionalParameters = array( + 'smsType' => SmsPlugin::ACCOUNT_APPROVED_CONNECT, 'userId' => $user_id ); diff --git a/main/inc/lib/SmsPlugin.php b/main/inc/lib/SmsPlugin.php new file mode 100644 index 0000000000..b588dd6982 --- /dev/null +++ b/main/inc/lib/SmsPlugin.php @@ -0,0 +1,144 @@ +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(); + } +} diff --git a/main/inc/lib/SmsPluginLibraryInterface.php b/main/inc/lib/SmsPluginLibraryInterface.php new file mode 100644 index 0000000000..5ad6800575 --- /dev/null +++ b/main/inc/lib/SmsPluginLibraryInterface.php @@ -0,0 +1,43 @@ + constant( - $plugin->getSMSPluginName( - ) . '::NEW_COURSE_BEEN_CREATED' - ), + 'smsType' => SmsPlugin::NEW_COURSE_BEEN_CREATED, 'userId' => $user_id, 'courseName' => $title, 'creatorUsername' => $userInfo['username'] diff --git a/main/inc/lib/api.lib.php b/main/inc/lib/api.lib.php index 7d39789989..8f47aec2b2 100644 --- a/main/inc/lib/api.lib.php +++ b/main/inc/lib/api.lib.php @@ -8017,13 +8017,11 @@ function api_mail_html( return 0; } - $plugin = new AppPlugin(); - $installedPluginsList = $plugin->getInstalledPluginListObject(); - foreach ($installedPluginsList as $installedPlugin) { - if ($installedPlugin->isMailPlugin and array_key_exists("smsType", $additionalParameters)) { - $className = str_replace("Plugin", "", get_class($installedPlugin)); - $smsObject = new $className; - $smsObject->send($additionalParameters); + if (!empty($additionalParameters)) { + $plugin = new AppPlugin(); + $smsPlugin = $plugin->getSMSPluginLibrary(); + if ($smsPlugin) { + $smsPlugin->send($additionalParameters); } } diff --git a/main/inc/lib/course.lib.php b/main/inc/lib/course.lib.php index 8176e136a5..f9e75b0189 100755 --- a/main/inc/lib/course.lib.php +++ b/main/inc/lib/course.lib.php @@ -2465,9 +2465,8 @@ class CourseManager api_get_setting('administratorSurname'), null, PERSON_NAME_EMAIL_ADDRESS); $email_admin = api_get_setting('emailAdministrator'); - $plugin = new AppPlugin(); $additionalParameters = array( - 'smsType' => constant($plugin->getSMSPluginName() . '::NEW_USER_SUBSCRIBED_COURSE'), + 'smsType' => SmsPlugin::NEW_USER_SUBSCRIBED_COURSE, 'userId' => $tutor['user_id'], 'userUsername' => $student['username'], 'courseCode' => $course_code diff --git a/main/inc/lib/course_request.lib.php b/main/inc/lib/course_request.lib.php index 573e6c9518..8370c9d5a1 100755 --- a/main/inc/lib/course_request.lib.php +++ b/main/inc/lib/course_request.lib.php @@ -59,7 +59,6 @@ class CourseRequestManager $user_id, $exemplary_content ) { - global $_configuration; $wanted_code = trim($wanted_code); $user_id = (int)$user_id; $exemplary_content = (bool)$exemplary_content ? 1 : 0; @@ -95,7 +94,8 @@ class CourseRequestManager $db_name = isset($keys['currentCourseDbName']) ? $keys['currentCourseDbName'] : null; $directory = $keys['currentCourseRepository']; - $sql = sprintf('INSERT INTO %s ( + $sql = sprintf( + 'INSERT INTO %s ( code, user_id, directory, db_name, course_language, title, description, category_code, tutor_name, visual_code, request_date, @@ -104,23 +104,37 @@ class CourseRequestManager "%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s", - "%s", "%s", "%s", "%s", "%s");', Database::get_main_table(TABLE_MAIN_COURSE_REQUEST), - Database::escape_string($code), Database::escape_string($user_id), Database::escape_string($directory), Database::escape_string($db_name), - Database::escape_string($course_language), Database::escape_string($title), Database::escape_string($description), Database::escape_string($category_code), - Database::escape_string($tutor_name), Database::escape_string($visual_code), Database::escape_string($request_date), - Database::escape_string($objetives), Database::escape_string($target_audience), Database::escape_string($status), Database::escape_string($info), Database::escape_string($exemplary_content)); + "%s", "%s", "%s", "%s", "%s");', + Database::get_main_table(TABLE_MAIN_COURSE_REQUEST), + Database::escape_string($code), + Database::escape_string($user_id), + Database::escape_string($directory), + Database::escape_string($db_name), + Database::escape_string($course_language), + Database::escape_string($title), + Database::escape_string($description), + Database::escape_string($category_code), + Database::escape_string($tutor_name), + Database::escape_string($visual_code), + Database::escape_string($request_date), + Database::escape_string($objetives), + Database::escape_string($target_audience), + Database::escape_string($status), + Database::escape_string($info), + Database::escape_string($exemplary_content) + ); + $result_sql = Database::query($sql); if (!$result_sql) { return false; } + $last_insert_id = Database::insert_id(); // E-mail notifications. // E-mail language: The platform language seems to be the best choice. - //$email_language = $course_language; - //$email_language = api_get_interface_language(); $email_language = api_get_setting('platformLanguage'); $email_subject = sprintf(get_lang('CourseRequestEmailSubject', null, $email_language), '['.api_get_setting('siteName').']', $code); @@ -149,10 +163,9 @@ class CourseRequestManager $recipient_email_admin = get_setting('emailAdministrator'); $userInfo = api_get_user_info($user_id); - $plugin = new AppPlugin(); - $className = $plugin->getSMSPluginName(); + $additionalParameters = array( - 'smsType' => constant($className.'::NEW_COURSE_SUGGESTED_TEACHER'), + 'smsType' => SmsPlugin::NEW_COURSE_SUGGESTED_TEACHER, 'userId' => $user_id, 'userUsername' => $userInfo['username'] ); @@ -189,7 +202,7 @@ class CourseRequestManager $recipient_email_teacher = $sender_email_teacher; $additionalParameters = array( - 'smsType' => constant($className.'::COURSE_OPENING_REQUEST_CODE_REGISTERED'), + 'smsType' => SmsPlugin::COURSE_OPENING_REQUEST_CODE_REGISTERED, 'userId' => $user_info['user_id'], 'courseCode' => $wanted_code ); @@ -469,9 +482,8 @@ class CourseRequestManager $recipient_email = $user_info['mail']; $extra_headers = 'Bcc: '.$sender_email; - $plugin = new AppPlugin(); $additionalParameters = array( - 'smsType' => constant($plugin->getSMSPluginName().'::COURSE_OPENING_REQUEST_CODE_APPROVED'), + 'smsType' => SmsPlugin::COURSE_OPENING_REQUEST_CODE_APPROVED, 'userId' => $user_id, 'courseCode' => $course_info['code'] ); @@ -548,9 +560,8 @@ class CourseRequestManager $recipient_email = $user_info['mail']; $extra_headers = 'Bcc: '.$sender_email; - $plugin = new AppPlugin(); $additionalParameters = array( - 'smsType' => constant($plugin->getSMSPluginName().'::COURSE_OPENING_REQUEST_CODE_REJECTED'), + 'smsType' => SmsPlugin::COURSE_OPENING_REQUEST_CODE_REJECTED, 'userId' => $user_id, 'courseCode' => $code ); @@ -626,9 +637,8 @@ class CourseRequestManager $recipient_email = $user_info['mail']; $extra_headers = 'Bcc: '.$sender_email; - $plugin = new AppPlugin(); $additionalParameters = array( - 'smsType' => constant($plugin->getSMSPluginName().'::COURSE_OPENING_REQUEST_CODE'), + 'smsType' => SmsPlugin::COURSE_OPENING_REQUEST_CODE, 'userId' => $user_id, 'courseCode' => $code ); diff --git a/main/inc/lib/plugin.lib.php b/main/inc/lib/plugin.lib.php index 4b4b70eba0..758dfe1c48 100755 --- a/main/inc/lib/plugin.lib.php +++ b/main/inc/lib/plugin.lib.php @@ -29,7 +29,7 @@ class AppPlugin public $installedPluginListObject = array(); /** - * + * Constructor */ public function __construct() { @@ -183,6 +183,7 @@ class AppPlugin } else { $urlId = intval($urlId); } + // First call the custom uninstall to allow full access to global settings $pluginPath = api_get_path(SYS_PLUGIN_PATH).$pluginName.'/uninstall.php'; if (is_file($pluginPath) && is_readable($pluginPath)) { @@ -271,7 +272,8 @@ class AppPlugin } /** - * Loads the translation files inside a plugin if exists. It loads by default english see the hello world plugin + * Loads the translation files inside a plugin if exists. + * It loads by default english see the hello world plugin * * @param string $plugin_name * @@ -350,11 +352,11 @@ class AppPlugin $_template['plugin_info'] = $plugin_info; } - //Setting the plugin info available in the template if exists + // Setting the plugin info available in the template if exists $template->assign($plugin_name, $_template); - //Loading the Twig template plugin files if exists + // Loading the Twig template plugin files if exists $template_list = array(); if (isset($plugin_info) && isset($plugin_info['templates'])) { $template_list = $plugin_info['templates']; @@ -372,6 +374,7 @@ class AppPlugin } } } + return true; } @@ -422,6 +425,7 @@ class AppPlugin } $plugin_info['settings'] = $settings_filtered; $plugin_data[$plugin_name] = $plugin_info; + return $plugin_info; } } @@ -464,7 +468,19 @@ class AppPlugin public function add_to_region($plugin, $region) { $access_url_id = api_get_current_access_url_id(); - api_add_setting($plugin, $region, $plugin, 'region', 'Plugins', $plugin, null, null, null, $access_url_id, 1); + api_add_setting( + $plugin, + $region, + $plugin, + 'region', + 'Plugins', + $plugin, + null, + null, + null, + $access_url_id, + 1 + ); } /** @@ -516,7 +532,7 @@ class AppPlugin ICON_SIZE_SMALL ); } - //$icon = null; + $form->addElement('html', '

'.$icon.' '.Security::remove_XSS($pluginTitle).'

'); $groups = array(); @@ -555,6 +571,7 @@ class AppPlugin $courseSettings = array_merge($courseSettings, $pluginCourseSetting); } } + return $courseSettings; } @@ -591,13 +608,31 @@ class AppPlugin * Get first SMS plugin name * @return string|boolean */ - public function getSMSPluginName() { + public function getSMSPluginName() + { $installedPluginsList = $this->getInstalledPluginListObject(); foreach ($installedPluginsList as $installedPlugin) { if ($installedPlugin->isMailPlugin) { + return get_class($installedPlugin); } } + + return false; + } + + /** + * @return SmsPluginLibraryInterface + */ + public function getSMSPluginLibrary() + { + $className = $this->getSMSPluginName(); + $className = str_replace("Plugin", "", $className); + + if (class_exists($className)) { + return new $className; + } + return false; } } diff --git a/main/inc/lib/usermanager.lib.php b/main/inc/lib/usermanager.lib.php index 72691c2dfe..f233324f94 100755 --- a/main/inc/lib/usermanager.lib.php +++ b/main/inc/lib/usermanager.lib.php @@ -238,10 +238,9 @@ class UserManager EventsDispatcher::events('user_registration', $values); } else { $phoneNumber = isset($extra['mobile_phone_number']) ? $extra['mobile_phone_number'] : null; - $plugin = new AppPlugin(); $additionalParameters = array( - 'smsType' => constant($plugin->getSMSPluginName().':: WELCOME_LOGIN_PASSWORD'), + 'smsType' => SmsPlugin::WELCOME_LOGIN_PASSWORD, 'userId' => $return, 'mobilePhoneNumber' => $phoneNumber, 'password' => $original_password diff --git a/main/user/user_add.php b/main/user/user_add.php index f00c2af9d8..4430a4da84 100755 --- a/main/user/user_add.php +++ b/main/user/user_add.php @@ -186,21 +186,17 @@ if($register) { } } - if ($courseRegSucceed) - { + if ($courseRegSucceed) { $emailbody = get_lang('Dear')." ".stripslashes(api_get_person_name($firstname_form, $lastname_form)).",\n".get_lang('OneResp')." $currentCourseName ".get_lang('RegYou')." ".api_get_setting('siteName')." ".get_lang('WithTheFollowingSettings')."\n\n".get_lang('Username')." : $username_form\n".get_lang('Pass').": $password_form\n".get_lang('Address')." ".api_get_setting('siteName')." ".get_lang('Is').": ".$portal_url."\n".get_lang('Problem')."\n".get_lang('SignatureFormula').",\n".api_get_person_name(api_get_setting('administratorName'), api_get_setting('administratorSurname'))."\n".get_lang('Manager')." ".api_get_setting('siteName')." \nT. ".api_get_setting('administratorTelephone')."\n".get_lang('Email').": ".api_get_setting('emailAdministrator')."\n"; $message = get_lang('TheU')." ".stripslashes(api_get_person_name($firstname_form, $lastname_form))." ".get_lang('AddedToCourse')."".get_lang('BackUser')."\n"; - } - else - { + } else { $emailbody = get_lang('Dear')." ".api_get_person_name($firstname_form, $lastname_form).",\n ".get_lang('YouAreReg')." ".api_get_setting('siteName')." ".get_lang('WithTheFollowingSettings')."\n\n".get_lang('Username')." : $username_form\n".get_lang('Pass').": $password_form\n".get_lang('Address')." ".api_get_setting('siteName')." ".get_lang('Is').": ".$portal_url."\n".get_lang('Problem')."\n".get_lang('SignatureFormula').",\n".api_get_person_name(api_get_setting('administratorName'), api_get_setting('administratorSurname'))."\n".get_lang('Manager')." ".api_get_setting('siteName')." \nT. ".api_get_setting('administratorTelephone')."\n".get_lang('Email').": ".api_get_setting('emailAdministrator')."\n"; $message = stripslashes(api_get_person_name($firstname_form, $lastname_form))." ".get_lang('AddedU'); } - $plugin = new AppPlugin(); $additionalParameters = array( - 'smsType' => constant($plugin->getSMSPluginName().'::BEEN_SUBSCRIBED_COURSE'), + 'smsType' => SmsPlugin::BEEN_SUBSCRIBED_COURSE, 'userId' => $user_id, 'courseTitle' => $currentCourseName ); diff --git a/main/work/work.lib.php b/main/work/work.lib.php index b90f94e40a..c9061ecce6 100755 --- a/main/work/work.lib.php +++ b/main/work/work.lib.php @@ -2527,9 +2527,8 @@ function send_email_on_homework_creation($course_id) $emailbody .= get_lang('HomeworkHasBeenCreatedForTheCourse')." ".$course_id.". "."\n\n".get_lang('PleaseCheckHomeworkPage'); $emailbody .= "\n\n".api_get_person_name($currentUser["firstname"], $currentUser["lastname"]); - $plugin = new AppPlugin(); $additionalParameters = array( - 'smsType' => constant($plugin->getSMSPluginName().'::ASSIGNMENT_BEEN_CREATED_COURSE'), + 'smsType' => SmsPlugin::ASSIGNMENT_BEEN_CREATED_COURSE, 'userId' => $student["user_id"], 'courseTitle' => $course_id ); diff --git a/plugin/clockworksms/config.php b/plugin/clockworksms/config.php index 52017f034b..fd2a790e06 100755 --- a/plugin/clockworksms/config.php +++ b/plugin/clockworksms/config.php @@ -8,7 +8,6 @@ * @author Imanol Losada */ require_once __DIR__ . '/../../main/inc/global.inc.php'; -require_once api_get_path(LIBRARY_PATH).'plugin.class.php'; require_once 'lib/clockworksms.lib.php'; require_once 'vendor/clockworksms_api.php'; diff --git a/plugin/clockworksms/lib/clockworksms.lib.php b/plugin/clockworksms/lib/clockworksms.lib.php index d8d2c5312d..daef0384fc 100755 --- a/plugin/clockworksms/lib/clockworksms.lib.php +++ b/plugin/clockworksms/lib/clockworksms.lib.php @@ -4,14 +4,14 @@ /** * Class Clockworksms * This script handles incoming SMS information, process it and sends an SMS if everything is right - * + * * @package chamilo.plugin.clockworksms.lib * @author Imanol Losada * * Clockworksms-Chamilo connector class */ -class Clockworksms +class Clockworksms implements SmsPluginLibraryInterface { public $apiKey; public $api; @@ -35,7 +35,9 @@ class Clockworksms if ($clockWorkSMSPlugin == true) { $this->apiKey = $clockWorkSMSApiKey; // Setting Clockworksms api - define('CONFIG_SECURITY_API_KEY', $this->apiKey); + if (!defined('CONFIG_SECURITY_API_KEY')) { + define('CONFIG_SECURITY_API_KEY', $this->apiKey); + } $trimmedApiKey = trim(CONFIG_SECURITY_API_KEY); if (!empty($trimmedApiKey)) { $this->api = new Clockwork(CONFIG_SECURITY_API_KEY); @@ -52,22 +54,24 @@ class Clockworksms $emailbody = 'Key cannot be blank'; $sender_name = $recipient_name; $email_admin = $email_form; - api_mail_html($recipient_name, $email_form, $emailsubject, $emailbody, $sender_name, $email_admin); + api_mail_html( + $recipient_name, + $email_form, + $emailsubject, + $emailbody, + $sender_name, + $email_admin + ); } $this->plugin_enabled = true; } } /** - * getMobilePhoneNumberById (retrieves a user mobile phone number by user id) - * @param int User id - * @return int User's mobile phone number + * @inheritdoc */ - private function getMobilePhoneNumberById($userId) + public function getMobilePhoneNumberById($userId) { - require_once api_get_path(LIBRARY_PATH).'extra_field.lib.php'; - require_once api_get_path(LIBRARY_PATH).'extra_field_value.lib.php'; - $mobilePhoneNumberExtraField = new ExtraField('user'); $mobilePhoneNumberExtraField = $mobilePhoneNumberExtraField->get_handler_field_info_by_field_variable('mobile_phone_number'); @@ -93,10 +97,11 @@ class Clockworksms { $trimmedKey = trim(CONFIG_SECURITY_API_KEY); if (!empty($trimmedKey)) { + $phoneExists = array_key_exists("mobilePhoneNumber", $additionalParameters); + $to = $phoneExists ? $additionalParameters['mobilePhoneNumber'] : $this->getMobilePhoneNumberById($additionalParameters['userId']); + $message = array( - "to" => array_key_exists("mobilePhoneNumber",$additionalParameters) ? - $additionalParameters['mobilePhoneNumber'] : - $this->getMobilePhoneNumberById($additionalParameters['userId']), + "to" => $to, "message" => $this->getSms($additionalParameters) ); @@ -104,7 +109,7 @@ class Clockworksms $result = $this->api->send($message); // Commented for future message logging / tracking purposes - /*if( $result["success"] ) { + /*if ($result["success"]) { echo "Message sent - ID: " . $result["id"]; } else { echo "Message failed - Error: " . $result["error_message"]; @@ -166,8 +171,8 @@ class Clockworksms $tool_name = $plugin->get_lang('plugin_title'); $tpl = new Template($tool_name); - switch (constant('ClockworksmsPlugin::'.$additionalParameters['smsType'])) { - case ClockworksmsPlugin::WELCOME_LOGIN_PASSWORD: + switch ($additionalParameters['smsType']) { + case SmsPlugin::WELCOME_LOGIN_PASSWORD: $userInfo = api_get_user_info($additionalParameters['userId']); return $this->buildSms( $plugin, @@ -181,7 +186,7 @@ class Clockworksms ) ); break; - case ClockworksmsPlugin::NEW_FILE_SHARED_COURSE_BY: + case SmsPlugin::NEW_FILE_SHARED_COURSE_BY: return $this->buildSms( $plugin, $tpl, @@ -194,7 +199,7 @@ class Clockworksms ) ); break; - case ClockworksmsPlugin::ACCOUNT_APPROVED_CONNECT: + case SmsPlugin::ACCOUNT_APPROVED_CONNECT: return $this->buildSms( $plugin, $tpl, @@ -206,7 +211,7 @@ class Clockworksms ) ); break; - case ClockworksmsPlugin::NEW_COURSE_BEEN_CREATED: + case SmsPlugin::NEW_COURSE_BEEN_CREATED: return $this->buildSms( $plugin, $tpl, @@ -219,7 +224,7 @@ class Clockworksms ) ); break; - case ClockworksmsPlugin::NEW_USER_SUBSCRIBED_COURSE: + case SmsPlugin::NEW_USER_SUBSCRIBED_COURSE: return $this->buildSms( $plugin, $tpl, @@ -232,7 +237,7 @@ class Clockworksms ) ); break; - case ClockworksmsPlugin::NEW_COURSE_SUGGESTED_TEACHER: + case SmsPlugin::NEW_COURSE_SUGGESTED_TEACHER: return $this->buildSms( $plugin, $tpl, @@ -244,7 +249,7 @@ class Clockworksms ) ); break; - case ClockworksmsPlugin::COURSE_OPENING_REQUEST_CODE_REGISTERED: + case SmsPlugin::COURSE_OPENING_REQUEST_CODE_REGISTERED: return $this->buildSms( $plugin, $tpl, @@ -256,7 +261,7 @@ class Clockworksms ) ); break; - case ClockworksmsPlugin::COURSE_OPENING_REQUEST_CODE_APPROVED: + case SmsPlugin::COURSE_OPENING_REQUEST_CODE_APPROVED: return $this->buildSms( $plugin, $tpl, @@ -268,7 +273,7 @@ class Clockworksms ) ); break; - case ClockworksmsPlugin::COURSE_OPENING_REQUEST_CODE_REJECTED: + case SmsPlugin::COURSE_OPENING_REQUEST_CODE_REJECTED: return $this->buildSms( $plugin, $tpl, @@ -280,7 +285,7 @@ class Clockworksms ) ); break; - case ClockworksmsPlugin::COURSE_OPENING_REQUEST_CODE: + case SmsPlugin::COURSE_OPENING_REQUEST_CODE: return $this->buildSms( $plugin, $tpl, @@ -292,7 +297,7 @@ class Clockworksms ) ); break; - case ClockworksmsPlugin::BEEN_SUBSCRIBED_COURSE: + case SmsPlugin::BEEN_SUBSCRIBED_COURSE: return $this->buildSms( $plugin, $tpl, @@ -304,7 +309,7 @@ class Clockworksms ) ); break; - case ClockworksmsPlugin::ASSIGNMENT_BEEN_CREATED_COURSE: + case SmsPlugin::ASSIGNMENT_BEEN_CREATED_COURSE: return $this->buildSms( $plugin, $tpl, @@ -317,7 +322,7 @@ class Clockworksms ); break; // Message types to be implemented. Fill the array parameter with arguments. - /*case ClockworksmsPlugin::ACCOUNT_CREATED_UPDATED_LOGIN_PASSWORD: + /*case SmsPlugin::ACCOUNT_CREATED_UPDATED_LOGIN_PASSWORD: return $this->buildSms( $plugin, $tpl, @@ -328,7 +333,7 @@ class Clockworksms ) ); break;*/ - /*case ClockworksmsPlugin::PASSWORD_UPDATED_LOGIN_PASSWORD: + /*case SmsPlugin::PASSWORD_UPDATED_LOGIN_PASSWORD: return $this->buildSms( $plugin, $tpl, @@ -339,7 +344,7 @@ class Clockworksms ) ); break;*/ - /*case ClockworksmsPlugin::REQUESTED_PASSWORD_CHANGE: + /*case SmsPlugin::REQUESTED_PASSWORD_CHANGE: return $this->buildSms( $plugin, $tpl, @@ -350,7 +355,7 @@ class Clockworksms ) ); break;*/ - /*case ClockworksmsPlugin::RECEIVED_NEW_PERSONAL_MESSAGES: + /*case SmsPlugin::RECEIVED_NEW_PERSONAL_MESSAGES: return $this->buildSms( $plugin, $tpl, @@ -361,7 +366,7 @@ class Clockworksms ) ); break;*/ - /*case ClockworksmsPlugin::NEW_USER_PENDING_APPROVAL: + /*case SmsPlugin::NEW_USER_PENDING_APPROVAL: return $this->buildSms( $plugin, $tpl, @@ -372,7 +377,7 @@ class Clockworksms ) ); break;*/ - /*case ClockworksmsPlugin::POSTED_FORUM_COURSE: + /*case SmsPlugin::POSTED_FORUM_COURSE: return $this->buildSms( $plugin, $tpl, @@ -383,7 +388,7 @@ class Clockworksms ) ); break;*/ - /*case ClockworksmsPlugin::CHECK_EMAIL_CONNECT_MORE_INFO: + /*case SmsPlugin::CHECK_EMAIL_CONNECT_MORE_INFO: return $this->buildSms( $plugin, $tpl, @@ -394,7 +399,7 @@ class Clockworksms ) ); break;*/ - /*case ClockworksmsPlugin::STUDENT_ANSWERED_TEST: + /*case SmsPlugin::STUDENT_ANSWERED_TEST: return $this->buildSms( $plugin, $tpl, @@ -405,7 +410,7 @@ class Clockworksms ) ); break;*/ - /*case ClockworksmsPlugin::STUDENT_ANSWERED_TEST_OPEN_QUESTION: + /*case SmsPlugin::STUDENT_ANSWERED_TEST_OPEN_QUESTION: return $this->buildSms( $plugin, $tpl, @@ -416,7 +421,7 @@ class Clockworksms ) ); break;*/ - /*case ClockworksmsPlugin::STUDENT_ANSWERED_TEST_VOICE_QUESTION: + /*case SmsPlugin::STUDENT_ANSWERED_TEST_VOICE_QUESTION: return $this->buildSms( $plugin, $tpl, @@ -427,7 +432,7 @@ class Clockworksms ) ); break;*/ - /*case ClockworksmsPlugin::ANSWER_OPEN_QUESTION_TEST_REVIEWED: + /*case SmsPlugin::ANSWER_OPEN_QUESTION_TEST_REVIEWED: return $this->buildSms( $plugin, $tpl, @@ -438,7 +443,7 @@ class Clockworksms ) ); break;*/ - /*case ClockworksmsPlugin::NEW_THREAD_STARTED_FORUM: + /*case SmsPlugin::NEW_THREAD_STARTED_FORUM: return $this->buildSms( $plugin, $tpl, @@ -449,7 +454,7 @@ class Clockworksms ) ); break;*/ - /*case ClockworksmsPlugin::NEW_ANSWER_POSTED_FORUM: + /*case SmsPlugin::NEW_ANSWER_POSTED_FORUM: return $this->buildSms( $plugin, $tpl, @@ -460,7 +465,7 @@ class Clockworksms ) ); break;*/ - /*case ClockworksmsPlugin::NEW_SYSTEM_ANNOUNCEMENT_ADDED: + /*case SmsPlugin::NEW_SYSTEM_ANNOUNCEMENT_ADDED: return $this->buildSms( $plugin, $tpl, @@ -471,7 +476,7 @@ class Clockworksms ) ); break;*/ - /*case ClockworksmsPlugin::TEST_NEW_SYSTEM_ANNOUNCEMENT_ADDED: + /*case SmsPlugin::TEST_NEW_SYSTEM_ANNOUNCEMENT_ADDED: return $this->buildSms( $plugin, $tpl, @@ -482,7 +487,7 @@ class Clockworksms ) ); break;*/ - /*case ClockworksmsPlugin::SYSTEM_ANNOUNCEMENT_UPDATE: + /*case SmsPlugin::SYSTEM_ANNOUNCEMENT_UPDATE: return $this->buildSms( $plugin, $tpl, @@ -493,7 +498,7 @@ class Clockworksms ) ); break;*/ - /*case ClockworksmsPlugin::TEST_SYSTEM_ANNOUNCEMENT_UPDATE: + /*case SmsPlugin::TEST_SYSTEM_ANNOUNCEMENT_UPDATE: return $this->buildSms( $plugin, $tpl, @@ -504,7 +509,7 @@ class Clockworksms ) ); break;*/ - /*case ClockworksmsPlugin::USER_UPLOADED_ASSIGNMENT_COURSE_STUDENT_SUBMITS_PAPER: + /*case SmsPlugin::USER_UPLOADED_ASSIGNMENT_COURSE_STUDENT_SUBMITS_PAPER: return $this->buildSms( $plugin, $tpl, @@ -515,7 +520,7 @@ class Clockworksms ) ); break;*/ - /*case ClockworksmsPlugin::USER_UPLOADED_ASSIGNMENT_CHECK_STUDENT_SUBMITS_PAPER: + /*case SmsPlugin::USER_UPLOADED_ASSIGNMENT_CHECK_STUDENT_SUBMITS_PAPER: return $this->buildSms( $plugin, $tpl, @@ -526,7 +531,7 @@ class Clockworksms ) ); break;*/ - /*case ClockworksmsPlugin::USER_UPLOADED_ASSIGNMENT_COURSE: + /*case SmsPlugin::USER_UPLOADED_ASSIGNMENT_COURSE: return $this->buildSms( $plugin, $tpl, @@ -537,7 +542,7 @@ class Clockworksms ) ); break;*/ - /*case ClockworksmsPlugin::USER_UPLOADED_ASSIGNMENT_CHECK: + /*case SmsPlugin::USER_UPLOADED_ASSIGNMENT_CHECK: return $this->buildSms( $plugin, $tpl, @@ -548,7 +553,7 @@ class Clockworksms ) ); break;*/ - /*case ClockworksmsPlugin::SUBSCRIBED_SESSION: + /*case SmsPlugin::SUBSCRIBED_SESSION: return $this->buildSms( $plugin, $tpl, @@ -559,7 +564,7 @@ class Clockworksms ) ); break;*/ - /*case ClockworksmsPlugin::SUBSCRIBED_SESSION_CSV: + /*case SmsPlugin::SUBSCRIBED_SESSION_CSV: return $this->buildSms( $plugin, $tpl, @@ -570,7 +575,7 @@ class Clockworksms ) ); break;*/ - /*case ClockworksmsPlugin::USER_SUGGESTED_BE_FRIENDS: + /*case SmsPlugin::USER_SUGGESTED_BE_FRIENDS: return $this->buildSms( $plugin, $tpl, @@ -581,7 +586,7 @@ class Clockworksms ) ); break;*/ - /*case ClockworksmsPlugin::USER_ANSWERED_INBOX_MESSAGE: + /*case SmsPlugin::USER_ANSWERED_INBOX_MESSAGE: return $this->buildSms( $plugin, $tpl, @@ -592,7 +597,7 @@ class Clockworksms ) ); break;*/ - /*case ClockworksmsPlugin::BEEN_INVITED_JOIN_GROUP: + /*case SmsPlugin::BEEN_INVITED_JOIN_GROUP: return $this->buildSms( $plugin, $tpl, @@ -603,7 +608,7 @@ class Clockworksms ) ); break;*/ - /*case ClockworksmsPlugin::MESSAGES_SENT_EDITED_GROUP_EDITED: + /*case SmsPlugin::MESSAGES_SENT_EDITED_GROUP_EDITED: return $this->buildSms( $plugin, $tpl, @@ -614,7 +619,7 @@ class Clockworksms ) ); break;*/ - /*case ClockworksmsPlugin::MESSAGES_SENT_EDITED_GROUP_ADDED: + /*case SmsPlugin::MESSAGES_SENT_EDITED_GROUP_ADDED: return $this->buildSms( $plugin, $tpl, @@ -625,7 +630,7 @@ class Clockworksms ) ); break;*/ - /*case ClockworksmsPlugin::BEEN_INVITED_COMPLETE_SURVEY_COURSE: + /*case SmsPlugin::BEEN_INVITED_COMPLETE_SURVEY_COURSE: return $this->buildSms( $plugin, $tpl, @@ -636,7 +641,7 @@ class Clockworksms ) ); break;*/ - /*case ClockworksmsPlugin::REMINDER_ASSIGNMENT_COURSE_DUE: + /*case SmsPlugin::REMINDER_ASSIGNMENT_COURSE_DUE: return $this->buildSms( $plugin, $tpl, @@ -647,7 +652,7 @@ class Clockworksms ) ); break;*/ - /*case ClockworksmsPlugin::USER_DETAILS_MODIFIED: + /*case SmsPlugin::USER_DETAILS_MODIFIED: return $this->buildSms( $plugin, $tpl, diff --git a/plugin/clockworksms/lib/clockworksms_plugin.class.php b/plugin/clockworksms/lib/clockworksms_plugin.class.php index 12bbacfcfb..c8635aaa8f 100755 --- a/plugin/clockworksms/lib/clockworksms_plugin.class.php +++ b/plugin/clockworksms/lib/clockworksms_plugin.class.php @@ -4,59 +4,13 @@ /** * Class ClockworksmsPlugin * This script contains SMS type constants and basic plugin functions - * + * * @package chamilo.plugin.clockworksms.lib * @author Imanol Losada + * @author Julio Montoya - Refactor code */ -class ClockworksmsPlugin extends Plugin +class ClockworksmsPlugin extends SmsPlugin { - 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; - /** * create (a singleton function that ensures ClockworksmsPlugin instance is * created only once. If it is already created, it returns the instance) @@ -72,7 +26,7 @@ class ClockworksmsPlugin extends Plugin * Constructor * @return void */ - protected function __construct() + public function __construct() { $fields = array('tool_enable' => 'boolean', 'api_key' => 'text'); $smsTypeOptions = $this->getSmsTypeOptions(); @@ -82,91 +36,7 @@ class ClockworksmsPlugin extends Plugin parent::__construct('0.1', 'Imanol Losada', $fields); } - /** - * addMobilePhoneNumberField (adds a mobile phone number field if it is not - * already created) - * @return void - */ - private function addMobilePhoneNumberField() - { - $result = Database::select('mobile_phone_number', 'user_field'); - if (empty($result)) { - require_once api_get_path(LIBRARY_PATH).'extra_field.lib.php'; - $extraField = new Extrafield('user'); - $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 - )); - } - } - - /** - * getSmsTypeOptions (returns all SMS types) - * @return array SMS types - */ - private 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' - ); - } - /** - * install (installs the plugin) - * @return void - */ - public function install() - { - $this->addMobilePhoneNumberField(); - } /** * install (uninstalls the plugin and removes all plugin's tables and/or rows) * @return void diff --git a/plugin/kannelsms/lib/kannelsms.lib.php b/plugin/kannelsms/lib/kannelsms.lib.php index 84a61cf3af..b32589f822 100644 --- a/plugin/kannelsms/lib/kannelsms.lib.php +++ b/plugin/kannelsms/lib/kannelsms.lib.php @@ -10,8 +10,7 @@ * * Kannelsms-Chamilo connector class */ - -class Kannelsms +class Kannelsms implements SmsPluginLibraryInterface { public $api; public $hostAddress; @@ -45,7 +44,7 @@ class Kannelsms * @param int $userId User id * @return int User's mobile phone number */ - private function getMobilePhoneNumberById($userId) + public function getMobilePhoneNumberById($userId) { $mobilePhoneNumberExtraField = new ExtraField('user'); $mobilePhoneNumberExtraField = $mobilePhoneNumberExtraField->get_handler_field_info_by_field_variable('mobile_phone_number'); @@ -153,7 +152,7 @@ class Kannelsms $tpl = new Template($tool_name); switch ($additionalParameters['smsType']) { - case KannelsmsPlugin::WELCOME_LOGIN_PASSWORD: + case SmsPlugin::WELCOME_LOGIN_PASSWORD: $userInfo = api_get_user_info($additionalParameters['userId']); return $this->buildSms( $plugin, @@ -167,7 +166,7 @@ class Kannelsms ) ); break; - case KannelsmsPlugin::NEW_FILE_SHARED_COURSE_BY: + case SmsPlugin::NEW_FILE_SHARED_COURSE_BY: return $this->buildSms( $plugin, $tpl, @@ -180,7 +179,7 @@ class Kannelsms ) ); break; - case KannelsmsPlugin::ACCOUNT_APPROVED_CONNECT: + case SmsPlugin::ACCOUNT_APPROVED_CONNECT: return $this->buildSms( $plugin, $tpl, @@ -192,7 +191,7 @@ class Kannelsms ) ); break; - case KannelsmsPlugin::NEW_COURSE_BEEN_CREATED: + case SmsPlugin::NEW_COURSE_BEEN_CREATED: return $this->buildSms( $plugin, $tpl, @@ -205,7 +204,7 @@ class Kannelsms ) ); break; - case KannelsmsPlugin::NEW_USER_SUBSCRIBED_COURSE: + case SmsPlugin::NEW_USER_SUBSCRIBED_COURSE: return $this->buildSms( $plugin, $tpl, @@ -218,7 +217,7 @@ class Kannelsms ) ); break; - case KannelsmsPlugin::NEW_COURSE_SUGGESTED_TEACHER: + case SmsPlugin::NEW_COURSE_SUGGESTED_TEACHER: return $this->buildSms( $plugin, $tpl, @@ -230,7 +229,7 @@ class Kannelsms ) ); break; - case KannelsmsPlugin::COURSE_OPENING_REQUEST_CODE_REGISTERED: + case SmsPlugin::COURSE_OPENING_REQUEST_CODE_REGISTERED: return $this->buildSms( $plugin, $tpl, @@ -242,7 +241,7 @@ class Kannelsms ) ); break; - case KannelsmsPlugin::COURSE_OPENING_REQUEST_CODE_APPROVED: + case SmsPlugin::COURSE_OPENING_REQUEST_CODE_APPROVED: return $this->buildSms( $plugin, $tpl, @@ -254,7 +253,7 @@ class Kannelsms ) ); break; - case KannelsmsPlugin::COURSE_OPENING_REQUEST_CODE_REJECTED: + case SmsPlugin::COURSE_OPENING_REQUEST_CODE_REJECTED: return $this->buildSms( $plugin, $tpl, @@ -266,7 +265,7 @@ class Kannelsms ) ); break; - case KannelsmsPlugin::COURSE_OPENING_REQUEST_CODE: + case SmsPlugin::COURSE_OPENING_REQUEST_CODE: return $this->buildSms( $plugin, $tpl, @@ -278,7 +277,7 @@ class Kannelsms ) ); break; - case KannelsmsPlugin::BEEN_SUBSCRIBED_COURSE: + case SmsPlugin::BEEN_SUBSCRIBED_COURSE: return $this->buildSms( $plugin, $tpl, @@ -290,7 +289,7 @@ class Kannelsms ) ); break; - case KannelsmsPlugin::ASSIGNMENT_BEEN_CREATED_COURSE: + case SmsPlugin::ASSIGNMENT_BEEN_CREATED_COURSE: return $this->buildSms( $plugin, $tpl, @@ -303,7 +302,7 @@ class Kannelsms ); break; // Message types to be implemented. Fill the array parameter with arguments. - /*case KannelsmsPlugin::ACCOUNT_CREATED_UPDATED_LOGIN_PASSWORD: + /*case SmsPlugin::ACCOUNT_CREATED_UPDATED_LOGIN_PASSWORD: return $this->buildSms( $plugin, $tpl, @@ -314,7 +313,7 @@ class Kannelsms ) ); break;*/ - /*case KannelsmsPlugin::PASSWORD_UPDATED_LOGIN_PASSWORD: + /*case SmsPlugin::PASSWORD_UPDATED_LOGIN_PASSWORD: return $this->buildSms( $plugin, $tpl, @@ -325,7 +324,7 @@ class Kannelsms ) ); break;*/ - /*case KannelsmsPlugin::REQUESTED_PASSWORD_CHANGE: + /*case SmsPlugin::REQUESTED_PASSWORD_CHANGE: return $this->buildSms( $plugin, $tpl, @@ -336,7 +335,7 @@ class Kannelsms ) ); break;*/ - /*case KannelsmsPlugin::RECEIVED_NEW_PERSONAL_MESSAGES: + /*case SmsPlugin::RECEIVED_NEW_PERSONAL_MESSAGES: return $this->buildSms( $plugin, $tpl, @@ -347,7 +346,7 @@ class Kannelsms ) ); break;*/ - /*case KannelsmsPlugin::NEW_USER_PENDING_APPROVAL: + /*case SmsPlugin::NEW_USER_PENDING_APPROVAL: return $this->buildSms( $plugin, $tpl, @@ -358,7 +357,7 @@ class Kannelsms ) ); break;*/ - /*case KannelsmsPlugin::POSTED_FORUM_COURSE: + /*case SmsPlugin::POSTED_FORUM_COURSE: return $this->buildSms( $plugin, $tpl, @@ -369,7 +368,7 @@ class Kannelsms ) ); break;*/ - /*case KannelsmsPlugin::CHECK_EMAIL_CONNECT_MORE_INFO: + /*case SmsPlugin::CHECK_EMAIL_CONNECT_MORE_INFO: return $this->buildSms( $plugin, $tpl, @@ -380,7 +379,7 @@ class Kannelsms ) ); break;*/ - /*case KannelsmsPlugin::STUDENT_ANSWERED_TEST: + /*case SmsPlugin::STUDENT_ANSWERED_TEST: return $this->buildSms( $plugin, $tpl, @@ -391,7 +390,7 @@ class Kannelsms ) ); break;*/ - /*case KannelsmsPlugin::STUDENT_ANSWERED_TEST_OPEN_QUESTION: + /*case SmsPlugin::STUDENT_ANSWERED_TEST_OPEN_QUESTION: return $this->buildSms( $plugin, $tpl, @@ -402,7 +401,7 @@ class Kannelsms ) ); break;*/ - /*case KannelsmsPlugin::STUDENT_ANSWERED_TEST_VOICE_QUESTION: + /*case SmsPlugin::STUDENT_ANSWERED_TEST_VOICE_QUESTION: return $this->buildSms( $plugin, $tpl, @@ -413,7 +412,7 @@ class Kannelsms ) ); break;*/ - /*case KannelsmsPlugin::ANSWER_OPEN_QUESTION_TEST_REVIEWED: + /*case SmsPlugin::ANSWER_OPEN_QUESTION_TEST_REVIEWED: return $this->buildSms( $plugin, $tpl, @@ -424,7 +423,7 @@ class Kannelsms ) ); break;*/ - /*case KannelsmsPlugin::NEW_THREAD_STARTED_FORUM: + /*case SmsPlugin::NEW_THREAD_STARTED_FORUM: return $this->buildSms( $plugin, $tpl, @@ -435,7 +434,7 @@ class Kannelsms ) ); break;*/ - /*case KannelsmsPlugin::NEW_ANSWER_POSTED_FORUM: + /*case SmsPlugin::NEW_ANSWER_POSTED_FORUM: return $this->buildSms( $plugin, $tpl, @@ -446,7 +445,7 @@ class Kannelsms ) ); break;*/ - /*case KannelsmsPlugin::NEW_SYSTEM_ANNOUNCEMENT_ADDED: + /*case SmsPlugin::NEW_SYSTEM_ANNOUNCEMENT_ADDED: return $this->buildSms( $plugin, $tpl, @@ -457,7 +456,7 @@ class Kannelsms ) ); break;*/ - /*case KannelsmsPlugin::TEST_NEW_SYSTEM_ANNOUNCEMENT_ADDED: + /*case SmsPlugin::TEST_NEW_SYSTEM_ANNOUNCEMENT_ADDED: return $this->buildSms( $plugin, $tpl, @@ -468,7 +467,7 @@ class Kannelsms ) ); break;*/ - /*case KannelsmsPlugin::SYSTEM_ANNOUNCEMENT_UPDATE: + /*case SmsPlugin::SYSTEM_ANNOUNCEMENT_UPDATE: return $this->buildSms( $plugin, $tpl, @@ -479,7 +478,7 @@ class Kannelsms ) ); break;*/ - /*case KannelsmsPlugin::TEST_SYSTEM_ANNOUNCEMENT_UPDATE: + /*case SmsPlugin::TEST_SYSTEM_ANNOUNCEMENT_UPDATE: return $this->buildSms( $plugin, $tpl, @@ -490,7 +489,7 @@ class Kannelsms ) ); break;*/ - /*case KannelsmsPlugin::USER_UPLOADED_ASSIGNMENT_COURSE_STUDENT_SUBMITS_PAPER: + /*case SmsPlugin::USER_UPLOADED_ASSIGNMENT_COURSE_STUDENT_SUBMITS_PAPER: return $this->buildSms( $plugin, $tpl, @@ -501,7 +500,7 @@ class Kannelsms ) ); break;*/ - /*case KannelsmsPlugin::USER_UPLOADED_ASSIGNMENT_CHECK_STUDENT_SUBMITS_PAPER: + /*case SmsPlugin::USER_UPLOADED_ASSIGNMENT_CHECK_STUDENT_SUBMITS_PAPER: return $this->buildSms( $plugin, $tpl, @@ -512,7 +511,7 @@ class Kannelsms ) ); break;*/ - /*case KannelsmsPlugin::USER_UPLOADED_ASSIGNMENT_COURSE: + /*case SmsPlugin::USER_UPLOADED_ASSIGNMENT_COURSE: return $this->buildSms( $plugin, $tpl, @@ -523,7 +522,7 @@ class Kannelsms ) ); break;*/ - /*case KannelsmsPlugin::USER_UPLOADED_ASSIGNMENT_CHECK: + /*case SmsPlugin::USER_UPLOADED_ASSIGNMENT_CHECK: return $this->buildSms( $plugin, $tpl, @@ -534,7 +533,7 @@ class Kannelsms ) ); break;*/ - /*case KannelsmsPlugin::SUBSCRIBED_SESSION: + /*case SmsPlugin::SUBSCRIBED_SESSION: return $this->buildSms( $plugin, $tpl, @@ -545,7 +544,7 @@ class Kannelsms ) ); break;*/ - /*case KannelsmsPlugin::SUBSCRIBED_SESSION_CSV: + /*case SmsPlugin::SUBSCRIBED_SESSION_CSV: return $this->buildSms( $plugin, $tpl, @@ -556,7 +555,7 @@ class Kannelsms ) ); break;*/ - /*case KannelsmsPlugin::USER_SUGGESTED_BE_FRIENDS: + /*case SmsPlugin::USER_SUGGESTED_BE_FRIENDS: return $this->buildSms( $plugin, $tpl, @@ -567,7 +566,7 @@ class Kannelsms ) ); break;*/ - /*case KannelsmsPlugin::USER_ANSWERED_INBOX_MESSAGE: + /*case SmsPlugin::USER_ANSWERED_INBOX_MESSAGE: return $this->buildSms( $plugin, $tpl, @@ -578,7 +577,7 @@ class Kannelsms ) ); break;*/ - /*case KannelsmsPlugin::BEEN_INVITED_JOIN_GROUP: + /*case SmsPlugin::BEEN_INVITED_JOIN_GROUP: return $this->buildSms( $plugin, $tpl, @@ -589,7 +588,7 @@ class Kannelsms ) ); break;*/ - /*case KannelsmsPlugin::MESSAGES_SENT_EDITED_GROUP_EDITED: + /*case SmsPlugin::MESSAGES_SENT_EDITED_GROUP_EDITED: return $this->buildSms( $plugin, $tpl, @@ -600,7 +599,7 @@ class Kannelsms ) ); break;*/ - /*case KannelsmsPlugin::MESSAGES_SENT_EDITED_GROUP_ADDED: + /*case SmsPlugin::MESSAGES_SENT_EDITED_GROUP_ADDED: return $this->buildSms( $plugin, $tpl, @@ -611,7 +610,7 @@ class Kannelsms ) ); break;*/ - /*case KannelsmsPlugin::BEEN_INVITED_COMPLETE_SURVEY_COURSE: + /*case SmsPlugin::BEEN_INVITED_COMPLETE_SURVEY_COURSE: return $this->buildSms( $plugin, $tpl, @@ -622,7 +621,7 @@ class Kannelsms ) ); break;*/ - /*case KannelsmsPlugin::REMINDER_ASSIGNMENT_COURSE_DUE: + /*case SmsPlugin::REMINDER_ASSIGNMENT_COURSE_DUE: return $this->buildSms( $plugin, $tpl, @@ -633,7 +632,7 @@ class Kannelsms ) ); break;*/ - /*case KannelsmsPlugin::USER_DETAILS_MODIFIED: + /*case SmsPlugin::USER_DETAILS_MODIFIED: return $this->buildSms( $plugin, $tpl, diff --git a/plugin/kannelsms/lib/kannelsms_plugin.class.php b/plugin/kannelsms/lib/kannelsms_plugin.class.php index eaf6b65a00..ece978cc61 100644 --- a/plugin/kannelsms/lib/kannelsms_plugin.class.php +++ b/plugin/kannelsms/lib/kannelsms_plugin.class.php @@ -4,59 +4,13 @@ /** * Class KannelsmsPlugin * This script contains SMS type constants and basic plugin functions - * + * * @package chamilo.plugin.kannelsms.lib * @author Imanol Losada + * @author Julio Montoya Refactor code */ -class KannelsmsPlugin extends Plugin +class KannelsmsPlugin extends SmsPlugin { - 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; - /** * create (a singleton function that ensures KannelsmsPlugin instance is * created only once. If it is already created, it returns the instance) @@ -88,91 +42,6 @@ class KannelsmsPlugin extends Plugin parent::__construct('0.1', 'Imanol Losada', $fields); } - /** - * addMobilePhoneNumberField (adds a mobile phone number field if it is not - * already created) - * @return void - */ - private function addMobilePhoneNumberField() - { - $result = Database::select('mobile_phone_number', 'user_field'); - if (empty($result)) { - require_once api_get_path(LIBRARY_PATH).'extra_field.lib.php'; - $extraField = new Extrafield('user'); - $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 - )); - } - } - - /** - * getSmsTypeOptions (returns all SMS types) - * @return array SMS types - */ - private 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' - ); - } - - /** - * install (installs the plugin) - * @return void - */ - public function install() - { - $this->addMobilePhoneNumberField(); - } /** * install (uninstalls the plugin and removes all plugin's tables and/or rows) * @return void