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
1.10.x
Julio Montoya 11 years ago
parent 1a25bc7c4d
commit 5c3e02b47e
  1. 3
      main/dropbox/dropbox_functions.inc.php
  2. 5
      main/inc/ajax/user_manager.ajax.php
  3. 144
      main/inc/lib/SmsPlugin.php
  4. 43
      main/inc/lib/SmsPluginLibraryInterface.php
  5. 7
      main/inc/lib/add_course.lib.inc.php
  6. 12
      main/inc/lib/api.lib.php
  7. 3
      main/inc/lib/course.lib.php
  8. 48
      main/inc/lib/course_request.lib.php
  9. 49
      main/inc/lib/plugin.lib.php
  10. 3
      main/inc/lib/usermanager.lib.php
  11. 10
      main/user/user_add.php
  12. 3
      main/work/work.lib.php
  13. 1
      plugin/clockworksms/config.php
  14. 123
      plugin/clockworksms/lib/clockworksms.lib.php
  15. 138
      plugin/clockworksms/lib/clockworksms_plugin.class.php
  16. 91
      plugin/kannelsms/lib/kannelsms.lib.php
  17. 137
      plugin/kannelsms/lib/kannelsms_plugin.class.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']

@ -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
);

@ -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);
}

@ -1499,12 +1499,9 @@ class AddCourse
$message .= get_lang('Language') . ' ' . $course_language;
$userInfo = api_get_user_info($user_id);
$plugin = new AppPlugin();
$additionalParameters = array(
'smsType' => constant(
$plugin->getSMSPluginName(
) . '::NEW_COURSE_BEEN_CREATED'
),
'smsType' => SmsPlugin::NEW_COURSE_BEEN_CREATED,
'userId' => $user_id,
'courseName' => $title,
'creatorUsername' => $userInfo['username']

@ -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);
}
}

@ -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

@ -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
);

@ -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', '<div><h3>'.$icon.' '.Security::remove_XSS($pluginTitle).'</h3><div>');
$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;
}
}

@ -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

@ -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')."<a href=\"user.php\">".get_lang('BackUser')."</a>\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
);

@ -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
);

@ -8,7 +8,6 @@
* @author Imanol Losada <imanol.losada@beeznest.com>
*/
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';

@ -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 <imanol.losada@beeznest.com>
*
* 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,

@ -4,59 +4,13 @@
/**
* Class ClockworksmsPlugin
* This script contains SMS type constants and basic plugin functions
*
*
* @package chamilo.plugin.clockworksms.lib
* @author Imanol Losada <imanol.losada@beeznest.com>
* @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

@ -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,

@ -4,59 +4,13 @@
/**
* Class KannelsmsPlugin
* This script contains SMS type constants and basic plugin functions
*
*
* @package chamilo.plugin.kannelsms.lib
* @author Imanol Losada <imanol.losada@beeznest.com>
* @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

Loading…
Cancel
Save